<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How to pick(CommandManager.Pick) sub assembly then apply a custom iProperty in Inventor Programming Forum</title>
    <link>https://forums.autodesk.com/t5/inventor-programming-forum/how-to-pick-commandmanager-pick-sub-assembly-then-apply-a-custom/m-p/12300100#M17925</link>
    <description>&lt;P&gt;That worked perfectly, thank you very much&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 11 Oct 2023 21:00:06 GMT</pubDate>
    <dc:creator>Preston_Reed</dc:creator>
    <dc:date>2023-10-11T21:00:06Z</dc:date>
    <item>
      <title>How to pick(CommandManager.Pick) sub assembly then apply a custom iProperty</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/how-to-pick-commandmanager-pick-sub-assembly-then-apply-a-custom/m-p/12299708#M17923</link>
      <description>&lt;P&gt;Hello, I am trying to make a rule where the user is prompted to select a particular sub assembly then it will apply values to its iProperties.&amp;nbsp; My issue is that if I use the method of CommandManager.Pick then I don't know how to apply a custom iproperty using oOccurrence.&amp;nbsp; Then if I want to use my typical method for applying custom iproperties via documents I don't know how to make the Pick in terms of document type.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So, is there a way to&lt;/P&gt;&lt;P&gt;a) apply custom iProperties through oOccurrence (Assembly to sub assembly/parts)&lt;/P&gt;&lt;P&gt;b) prompt a user to make a selection using document type&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;or if theres another way im all ears.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;Selection Method&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;' Selection&lt;/SPAN&gt;
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oOccurence&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentOccurrence&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;CommandManager&lt;/SPAN&gt;.&lt;SPAN&gt;Pick&lt;/SPAN&gt;(&lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;SelectionFilterEnum&lt;/SPAN&gt;.&lt;SPAN&gt;kAssemblyLeafOccurrenceFilter&lt;/SPAN&gt;, &lt;SPAN&gt;"select"&lt;/SPAN&gt;)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oAry&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Array&lt;/SPAN&gt; = &lt;SPAN&gt;Split&lt;/SPAN&gt;(&lt;SPAN&gt;oOccurence&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt;, &lt;SPAN&gt;":"&lt;/SPAN&gt;)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oAsmDoc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;AssemblyDocument&lt;/SPAN&gt; = &lt;SPAN&gt;ThisDoc&lt;/SPAN&gt;.&lt;SPAN&gt;Document&lt;/SPAN&gt;
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oSlct&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;SelectSet&lt;/SPAN&gt; = &lt;SPAN&gt;oAsmDoc&lt;/SPAN&gt;.&lt;SPAN&gt;SelectSet&lt;/SPAN&gt;
	
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oOccEnum&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;ComponentOccurrencesEnumerator&lt;/SPAN&gt; = &lt;SPAN&gt;oAsmDoc&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;.&lt;SPAN&gt;Occurrences&lt;/SPAN&gt;.&lt;SPAN&gt;AllReferencedOccurrences&lt;/SPAN&gt;(&lt;SPAN&gt;oOccurence&lt;/SPAN&gt;.&lt;SPAN&gt;Definition&lt;/SPAN&gt;) 
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oObjColl&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;ObjectCollection&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;TransientObjects&lt;/SPAN&gt;.&lt;SPAN&gt;CreateObjectCollection&lt;/SPAN&gt;
	&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oOcc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;ComponentOccurrence&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oOccEnum&lt;/SPAN&gt;
		&lt;SPAN&gt;oOcc&lt;/SPAN&gt;.&lt;SPAN&gt;PropertySets&lt;/SPAN&gt;(&lt;SPAN&gt;"Inventor User Defined Properties"&lt;/SPAN&gt;).&lt;SPAN&gt;Item&lt;/SPAN&gt;(&lt;SPAN&gt;"S0Class"&lt;/SPAN&gt;).&lt;SPAN&gt;Value&lt;/SPAN&gt; = &lt;SPAN&gt;"1"&lt;/SPAN&gt;
	&lt;SPAN&gt;Next&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Typically how I apply iprops to sub assemblies&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oRefDoc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Document&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oRefDocs&lt;/SPAN&gt;
		&lt;SPAN&gt;' Skipping any purchased or mfg parts / any parts that are not accessable &lt;/SPAN&gt;
		&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oRefDoc&lt;/SPAN&gt;.&lt;SPAN&gt;IsModifiable&lt;/SPAN&gt;() = &lt;SPAN&gt;True&lt;/SPAN&gt; &lt;SPAN&gt;AndAlso&lt;/SPAN&gt; &lt;SPAN&gt;oRefDoc&lt;/SPAN&gt;.&lt;SPAN&gt;DocumentType&lt;/SPAN&gt; = &lt;SPAN&gt;DocumentTypeEnum&lt;/SPAN&gt;.&lt;SPAN&gt;kAssemblyDocumentObject&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;	
			&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oCustomPropertySet&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;PropertySet&lt;/SPAN&gt;
			&lt;SPAN&gt;oCustomPropertySet&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;ActiveDocument&lt;/SPAN&gt;.&lt;SPAN&gt;PropertySets&lt;/SPAN&gt;.&lt;SPAN&gt;Item&lt;/SPAN&gt;(&lt;SPAN&gt;"Inventor User Defined Properties"&lt;/SPAN&gt;)
			&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oCustProp&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;Property&lt;/SPAN&gt;
		
			&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oCustProp&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oCustomPropertySet&lt;/SPAN&gt;
				&lt;SPAN&gt;oRefDoc&lt;/SPAN&gt;.&lt;SPAN&gt;PropertySets&lt;/SPAN&gt;(&lt;SPAN&gt;"Inventor User Defined Properties"&lt;/SPAN&gt;).&lt;SPAN&gt;Item&lt;/SPAN&gt;(&lt;SPAN&gt;"CUSTOMER NAME-1"&lt;/SPAN&gt;).&lt;SPAN&gt;Value&lt;/SPAN&gt; = &lt;SPAN&gt;CUSTOMERNAME1&lt;/SPAN&gt;
				&lt;SPAN&gt;oRefDoc&lt;/SPAN&gt;.&lt;SPAN&gt;PropertySets&lt;/SPAN&gt;(&lt;SPAN&gt;"Inventor User Defined Properties"&lt;/SPAN&gt;).&lt;SPAN&gt;Item&lt;/SPAN&gt;(&lt;SPAN&gt;"CUSTOMER PO#"&lt;/SPAN&gt;).&lt;SPAN&gt;Value&lt;/SPAN&gt; = &lt;SPAN&gt;CUSTOMERPO&lt;/SPAN&gt;
				&lt;SPAN&gt;oRefDoc&lt;/SPAN&gt;.&lt;SPAN&gt;PropertySets&lt;/SPAN&gt;(&lt;SPAN&gt;"Inventor User Defined Properties"&lt;/SPAN&gt;).&lt;SPAN&gt;Item&lt;/SPAN&gt;(&lt;SPAN&gt;"END USER-1"&lt;/SPAN&gt;).&lt;SPAN&gt;Value&lt;/SPAN&gt; = &lt;SPAN&gt;ENDUSER1&lt;/SPAN&gt;
			&lt;SPAN&gt;Next&lt;/SPAN&gt;
		&lt;SPAN&gt;Else&lt;/SPAN&gt;
			&lt;SPAN&gt;' Do Nothing&lt;/SPAN&gt;
		&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt; 
	&lt;SPAN&gt;Next&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 11 Oct 2023 18:23:36 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/how-to-pick-commandmanager-pick-sub-assembly-then-apply-a-custom/m-p/12299708#M17923</guid>
      <dc:creator>Preston_Reed</dc:creator>
      <dc:date>2023-10-11T18:23:36Z</dc:date>
    </item>
    <item>
      <title>Re: How to pick(CommandManager.Pick) sub assembly then apply a custom iProperty</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/how-to-pick-commandmanager-pick-sub-assembly-then-apply-a-custom/m-p/12300091#M17924</link>
      <description>&lt;P&gt;You could try something like this:&lt;/P&gt;
&lt;LI-CODE lang="visual-basic"&gt;Dim occ As ComponentOccurrence = ThisApplication.CommandManager.Pick(
    SelectionFilterEnum.kAssemblyOccurrenceFilter, "Select your sub assembly")

Dim refDoc As Document = occ.ReferencedDocumentDescriptor.ReferencedDocument
Dim propSet As PropertySet = refDoc.PropertySets.Item("Inventor User Defined Properties")

propSet.Item("CUSTOMER NAME-1").Value = CUSTOMERNAME1
propSet.Item("CUSTOMER PO#").Value = CUSTOMERPO
propSet.Item("END USER-1").Value = ENDUSER1&lt;/LI-CODE&gt;</description>
      <pubDate>Wed, 11 Oct 2023 20:55:59 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/how-to-pick-commandmanager-pick-sub-assembly-then-apply-a-custom/m-p/12300091#M17924</guid>
      <dc:creator>JelteDeJong</dc:creator>
      <dc:date>2023-10-11T20:55:59Z</dc:date>
    </item>
    <item>
      <title>Re: How to pick(CommandManager.Pick) sub assembly then apply a custom iProperty</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/how-to-pick-commandmanager-pick-sub-assembly-then-apply-a-custom/m-p/12300100#M17925</link>
      <description>&lt;P&gt;That worked perfectly, thank you very much&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 11 Oct 2023 21:00:06 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/how-to-pick-commandmanager-pick-sub-assembly-then-apply-a-custom/m-p/12300100#M17925</guid>
      <dc:creator>Preston_Reed</dc:creator>
      <dc:date>2023-10-11T21:00:06Z</dc:date>
    </item>
  </channel>
</rss>

