<?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: Ilogic; BOM Qty; need help with code in Inventor Programming Forum</title>
    <link>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-bom-qty-need-help-with-code/m-p/7501706#M96669</link>
    <description>&lt;P&gt;You need to use recursion.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Samples of recursion found here:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://modthemachine.typepad.com/my_weblog/2009/03/accessing-assembly-components.html" target="_blank"&gt;http://modthemachine.typepad.com/my_weblog/2009/03/accessing-assembly-components.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;Sub Main()&lt;BR /&gt;&lt;BR /&gt;    doc = ThisDoc.Document
    Dim oAssyDef As AssemblyComponentDefinition = doc.ComponentDefinition
    Dim oBOM As BOM = oAssyDef.BOM

    oBOM.StructuredViewEnabled = True

    Dim oBOMView As BOMView = oBOM.BOMViews.Item("Structured")

    Dim oBOMRow As BOMRow
    Dim oCompDef As ComponentDefinition&lt;BR /&gt;&lt;BR /&gt;    For Each oBOMRow In oBOMView.BOMRows&lt;BR /&gt;&lt;BR /&gt;      oCompDef = oBOMRow.ComponentDefinitions.Item(1)&lt;BR /&gt;&lt;BR /&gt;      Call SetRowProps(oCompDef As ComponentDefinition, QTY As String)&lt;BR /&gt;      &lt;BR /&gt;      If Not oBOMRow.ChildRows is Nothing&lt;BR /&gt;          Call RecurseBOMRow(oBOMRow)&lt;BR /&gt;      End if&lt;BR /&gt;    Next&lt;BR /&gt;End Sub&lt;BR /&gt;&lt;BR /&gt;Sub RecurseBOMRow(oBOMRow As BOMRow)&lt;BR /&gt;   For Each oBOMRow In oBOMRow.ChildRows&lt;BR /&gt;     Dim oCompDef As ComponentDefinition&lt;BR /&gt;     oCompDef = oBOMRow.ComponentDefinitions.Item(1)&lt;BR /&gt;&lt;BR /&gt;     Call SetRowProps(oCompDef, oBOMRow.TotalQuantity)&lt;BR /&gt;&lt;BR /&gt;     If Not oBOMRow.ChildRows is Nothing&lt;BR /&gt;          Call RecurseBOMRow(oBOMRow)&lt;BR /&gt;     End ig&lt;BR /&gt;   Next&lt;BR /&gt;End Sub&lt;BR /&gt;&lt;BR /&gt;Sub SetRowProps(oCompDef As ComponentDefinition, QTY As String)&lt;BR /&gt; Dim CompFullDocumentName As String = oCompDef.Document.FullDocumentName&lt;BR /&gt; Dim CompFileNameOnly As String&lt;BR /&gt; Dim index As Integer = CompFullDocumentName.lastindexof("\")&lt;BR /&gt; CompFileNameOnly = CompFullDocumentName.substring(index+1)&lt;BR /&gt;&lt;BR /&gt; 'MessageBox.Show(CompFileNameOnly)&lt;BR /&gt;&lt;BR /&gt; iProperties.Value(CompFileNameOnly, "Custom", "PartQty") = QTY&lt;BR /&gt; iProperties.Value(CompFileNameOnly, "Custom", "SO") = iProperties.Value("Custom", "SO") &lt;BR /&gt;End Sub&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 30 Oct 2017 13:53:50 GMT</pubDate>
    <dc:creator>MechMachineMan</dc:creator>
    <dc:date>2017-10-30T13:53:50Z</dc:date>
    <item>
      <title>Ilogic; BOM Qty; need help with code</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-bom-qty-need-help-with-code/m-p/7501221#M96668</link>
      <description>&lt;P&gt;I modified a code for BOM qty across all parts. The previous code only works with "Parts only"...&lt;/P&gt;&lt;P&gt;The modified code works on the Structured BOM.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;That said it does not go through all sub assemblies "levels".&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can some one help me so it runs on all levels?&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Josh&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Inventor 2017&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;SyntaxEditor Code Snippet&lt;/STRONG&gt;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;doc&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;ThisDoc&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Document&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oAssyDef&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;AssemblyComponentDefinition&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;doc&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oBOM&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;BOM&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;oAssyDef&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;BOM&lt;/SPAN&gt;

&lt;SPAN&gt;oBOM&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;StructuredViewEnabled&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;True&lt;/SPAN&gt;

&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oBOMView&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;BOMView&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;oBOM&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;BOMViews&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Item&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;Structured&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;

&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oBOMRow&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;BOMRow&lt;/SPAN&gt;

&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oBOMRow&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oBOMView&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;BOMRows&lt;/SPAN&gt;
    &lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN&gt;Set a reference to the primary ComponentDefinition of the row&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oCompDef&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;
    &lt;SPAN&gt;oCompDef&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;oBOMRow&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;ComponentDefinitions&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Item&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;
    
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;CompFullDocumentName&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;oCompDef&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Document&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;FullDocumentName&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;CompFileNameOnly&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;index&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Integer&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;CompFullDocumentName&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;lastindexof&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;\&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;
    
    &lt;SPAN&gt;CompFileNameOnly&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;CompFullDocumentName&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;substring&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;index&lt;/SPAN&gt;&lt;SPAN&gt;+&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;
    
    &lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN&gt;MessageBox.Show(CompFileNameOnly)&lt;/SPAN&gt;
    
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;Qty&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;
    &lt;SPAN&gt;Qty&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;oBOMRow&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;TotalQuantity&lt;/SPAN&gt;

    
    &lt;SPAN&gt;iProperties&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Value&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;CompFileNameOnly&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;Custom&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;PartQty&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;Qty&lt;/SPAN&gt;    
    &lt;SPAN&gt;iProperties&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Value&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;CompFileNameOnly&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;Custom&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;SO&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;iProperties&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Value&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;Custom&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;SO&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;
    
    
&lt;SPAN&gt;Next&lt;/SPAN&gt;
&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 30 Oct 2017 11:36:54 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-bom-qty-need-help-with-code/m-p/7501221#M96668</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2017-10-30T11:36:54Z</dc:date>
    </item>
    <item>
      <title>Re: Ilogic; BOM Qty; need help with code</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-bom-qty-need-help-with-code/m-p/7501706#M96669</link>
      <description>&lt;P&gt;You need to use recursion.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Samples of recursion found here:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://modthemachine.typepad.com/my_weblog/2009/03/accessing-assembly-components.html" target="_blank"&gt;http://modthemachine.typepad.com/my_weblog/2009/03/accessing-assembly-components.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;Sub Main()&lt;BR /&gt;&lt;BR /&gt;    doc = ThisDoc.Document
    Dim oAssyDef As AssemblyComponentDefinition = doc.ComponentDefinition
    Dim oBOM As BOM = oAssyDef.BOM

    oBOM.StructuredViewEnabled = True

    Dim oBOMView As BOMView = oBOM.BOMViews.Item("Structured")

    Dim oBOMRow As BOMRow
    Dim oCompDef As ComponentDefinition&lt;BR /&gt;&lt;BR /&gt;    For Each oBOMRow In oBOMView.BOMRows&lt;BR /&gt;&lt;BR /&gt;      oCompDef = oBOMRow.ComponentDefinitions.Item(1)&lt;BR /&gt;&lt;BR /&gt;      Call SetRowProps(oCompDef As ComponentDefinition, QTY As String)&lt;BR /&gt;      &lt;BR /&gt;      If Not oBOMRow.ChildRows is Nothing&lt;BR /&gt;          Call RecurseBOMRow(oBOMRow)&lt;BR /&gt;      End if&lt;BR /&gt;    Next&lt;BR /&gt;End Sub&lt;BR /&gt;&lt;BR /&gt;Sub RecurseBOMRow(oBOMRow As BOMRow)&lt;BR /&gt;   For Each oBOMRow In oBOMRow.ChildRows&lt;BR /&gt;     Dim oCompDef As ComponentDefinition&lt;BR /&gt;     oCompDef = oBOMRow.ComponentDefinitions.Item(1)&lt;BR /&gt;&lt;BR /&gt;     Call SetRowProps(oCompDef, oBOMRow.TotalQuantity)&lt;BR /&gt;&lt;BR /&gt;     If Not oBOMRow.ChildRows is Nothing&lt;BR /&gt;          Call RecurseBOMRow(oBOMRow)&lt;BR /&gt;     End ig&lt;BR /&gt;   Next&lt;BR /&gt;End Sub&lt;BR /&gt;&lt;BR /&gt;Sub SetRowProps(oCompDef As ComponentDefinition, QTY As String)&lt;BR /&gt; Dim CompFullDocumentName As String = oCompDef.Document.FullDocumentName&lt;BR /&gt; Dim CompFileNameOnly As String&lt;BR /&gt; Dim index As Integer = CompFullDocumentName.lastindexof("\")&lt;BR /&gt; CompFileNameOnly = CompFullDocumentName.substring(index+1)&lt;BR /&gt;&lt;BR /&gt; 'MessageBox.Show(CompFileNameOnly)&lt;BR /&gt;&lt;BR /&gt; iProperties.Value(CompFileNameOnly, "Custom", "PartQty") = QTY&lt;BR /&gt; iProperties.Value(CompFileNameOnly, "Custom", "SO") = iProperties.Value("Custom", "SO") &lt;BR /&gt;End Sub&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 30 Oct 2017 13:53:50 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-bom-qty-need-help-with-code/m-p/7501706#M96669</guid>
      <dc:creator>MechMachineMan</dc:creator>
      <dc:date>2017-10-30T13:53:50Z</dc:date>
    </item>
    <item>
      <title>Re: Ilogic; BOM Qty; need help with code</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-bom-qty-need-help-with-code/m-p/7502057#M96670</link>
      <description>&lt;P&gt;Thanks for the additional info! I will read this thoroughly&amp;nbsp; today.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I tired your code. I am getting errors in line 19&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;SyntaxEditor Code Snippet&lt;/P&gt;&lt;PRE&gt; &lt;SPAN&gt;Call&lt;/SPAN&gt; &lt;SPAN&gt;SetRowProps&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;oCompDef&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;&lt;SPAN&gt;. &lt;/SPAN&gt;&lt;SPAN&gt;QTY&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;any thoughts?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 30 Oct 2017 15:30:15 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-bom-qty-need-help-with-code/m-p/7502057#M96670</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2017-10-30T15:30:15Z</dc:date>
    </item>
    <item>
      <title>Re: Ilogic; BOM Qty; need help with code</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-bom-qty-need-help-with-code/m-p/7502105#M96671</link>
      <description>&lt;P&gt;If you are digging this far into code/iLogic, it would really benefit you to read some more about programming and basic debugging.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You would quickly find that the only place an "As" should occur is when declaring a variable or function, and not in a function call.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This is like 101 level programming bugs.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;Sub Main()

    doc = ThisDoc.Document
    Dim oAssyDef As AssemblyComponentDefinition = doc.ComponentDefinition
    Dim oBOM As BOM = oAssyDef.BOM

    oBOM.StructuredViewEnabled = True

    Dim oBOMView As BOMView = oBOM.BOMViews.Item("Structured")

    Dim oBOMRow As BOMRow
    Dim oCompDef As ComponentDefinition

    For Each oBOMRow In oBOMView.BOMRows

      oCompDef = oBOMRow.ComponentDefinitions.Item(1)
      
&lt;STRONG&gt;       'OLD : NOTICE THE 'AS' KEYWORD INCORRECTLY THERE.
      'Call SetRowProps(oCompDef As ComponentDefinition, QTY As String)
&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;      'New Line. Notice the LACK of 'As' Keyword.
      Call SetRowProps(oCompDef, oBOMRow.TotalQuantity)&lt;/STRONG&gt;
      
      If Not oBOMRow.ChildRows is Nothing
          Call RecurseBOMRow(oBOMRow)
      End if
    Next
End Sub

Sub RecurseBOMRow(oBOMRow As BOMRow)
   For Each oBOMRow In oBOMRow.ChildRows
     Dim oCompDef As ComponentDefinition
     oCompDef = oBOMRow.ComponentDefinitions.Item(1)

     Call SetRowProps(oCompDef, oBOMRow.TotalQuantity)

     If Not oBOMRow.ChildRows is Nothing
          Call RecurseBOMRow(oBOMRow)
     End ig
   Next
End Sub

Sub SetRowProps(oCompDef As ComponentDefinition, QTY As String)
 Dim CompFullDocumentName As String = oCompDef.Document.FullDocumentName
 Dim CompFileNameOnly As String
 Dim index As Integer = CompFullDocumentName.lastindexof("\")
 CompFileNameOnly = CompFullDocumentName.substring(index+1)

 'MessageBox.Show(CompFileNameOnly)

 iProperties.Value(CompFileNameOnly, "Custom", "PartQty") = QTY
 iProperties.Value(CompFileNameOnly, "Custom", "SO") = iProperties.Value("Custom", "SO") 
End Sub&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 30 Oct 2017 15:45:30 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-bom-qty-need-help-with-code/m-p/7502105#M96671</guid>
      <dc:creator>MechMachineMan</dc:creator>
      <dc:date>2017-10-30T15:45:30Z</dc:date>
    </item>
  </channel>
</rss>

