<?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: Structured BoM - all Levels in Inventor Forum</title>
    <link>https://forums.autodesk.com/t5/inventor-forum/structured-bom-all-levels/m-p/11639346#M100132</link>
    <description>&lt;P&gt;For Better BOM&lt;/P&gt;&lt;P&gt;&lt;A href="https://forums.autodesk.com/t5/inventor-ideas/new-bill-of-materials/idi-p/8358449" target="_blank"&gt;https://forums.autodesk.com/t5/inventor-ideas/new-bill-of-materials/idi-p/8358449&lt;/A&gt;&lt;/P&gt;</description>
    <pubDate>Sat, 24 Dec 2022 02:30:17 GMT</pubDate>
    <dc:creator>dusan.naus.trz</dc:creator>
    <dc:date>2022-12-24T02:30:17Z</dc:date>
    <item>
      <title>Structured BoM - all Levels</title>
      <link>https://forums.autodesk.com/t5/inventor-forum/structured-bom-all-levels/m-p/10533456#M100126</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;is it possible to export the&amp;nbsp;Structured BoM over all levels with correct Position-Numbers from Inventor?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;for e.g.:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Assembly 068487 has Pos. 1, 2, 10&lt;/P&gt;&lt;P&gt;When placing this assembly in top assembly, the Structured BoM over all levels says:&lt;/P&gt;&lt;P&gt;Pos. 1.1, 1.2, &lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;1.3&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;should be&lt;/P&gt;&lt;P&gt;Pos. 1.1, 1.2, &lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;1.10&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;Why is this behaviour?&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;How can I export it as needed?&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="BoM.jpg" style="width: 951px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/950622i553CC4507F5EC138/image-size/large?v=v2&amp;amp;px=999" role="button" title="BoM.jpg" alt="BoM.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 10 Aug 2021 09:16:59 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-forum/structured-bom-all-levels/m-p/10533456#M100126</guid>
      <dc:creator>MarkusGreifeneder3360</dc:creator>
      <dc:date>2021-08-10T09:16:59Z</dc:date>
    </item>
    <item>
      <title>Re: Structured BoM - all Levels</title>
      <link>https://forums.autodesk.com/t5/inventor-forum/structured-bom-all-levels/m-p/10534841#M100127</link>
      <description>&lt;P&gt;Hi Marcus,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This is because the item numbers for first level are different than all levels. The item numbers are stored in each iam file (BOM). There isn't inheritance between them.&lt;/P&gt;
&lt;P&gt;Many thanks!&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 10 Aug 2021 17:41:22 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-forum/structured-bom-all-levels/m-p/10534841#M100127</guid>
      <dc:creator>johnsonshiue</dc:creator>
      <dc:date>2021-08-10T17:41:22Z</dc:date>
    </item>
    <item>
      <title>Re: Structured BoM - all Levels</title>
      <link>https://forums.autodesk.com/t5/inventor-forum/structured-bom-all-levels/m-p/10535151#M100128</link>
      <description>&lt;P&gt;I encountered that limitation early in my use of Inventor and decided to make my own Mark No.&lt;/P&gt;&lt;P&gt;It is a composite number consisting of Custom iProperties: "SHAPE" + "MARK", or whatever you need.&lt;/P&gt;&lt;P&gt;Then I use the Inventor's native "Stock Number" to construct the part's Mark No:&amp;nbsp;=&amp;lt;SHAPE&amp;gt;&amp;lt;MARK&amp;gt;, or just =&amp;lt;MARK&amp;gt;. which shows up as a letter &amp;amp; number or just a number (depends on type of project). This occurs as an iProperty in all my ContentCenter parts, so the drawing PartsList automatically populates.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Example: Pipes are "P01" (etc.)&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Beams are "B01" (etc.)&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Weldments are "W01" (etc.)&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Concrete is "C01" (etc.)&lt;/P&gt;&lt;P&gt;You can make it anything you want, with as many place holders (iProperties) that you want.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Or, if you want to make a string of numbers that shows model structure, you can use iLogic to string together all the "MARK" numbers, separated by a "." (dot). But you have to be sure you don't over-write a number that you already created of a part that exists in a previous sub-assembly. That's where it gets tricky, and you have to decide on what rules you will use to do numbering. Numbering is never easy if you are in a complex modeling environment.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I do all my numbering manually.&amp;nbsp;But if you can make an iLogic rule, maybe you can automate the numbering process?&lt;/P&gt;</description>
      <pubDate>Tue, 10 Aug 2021 19:34:28 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-forum/structured-bom-all-levels/m-p/10535151#M100128</guid>
      <dc:creator>cadman777</dc:creator>
      <dc:date>2021-08-10T19:34:28Z</dc:date>
    </item>
    <item>
      <title>Re: Structured BoM - all Levels</title>
      <link>https://forums.autodesk.com/t5/inventor-forum/structured-bom-all-levels/m-p/10539500#M100129</link>
      <description>&lt;P&gt;Hi, for all who have the same problem.&lt;/P&gt;&lt;P&gt;I found following iLogic-rule&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;Sub&lt;/SPAN&gt; &lt;SPAN&gt;Main&lt;/SPAN&gt;()
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;sErrMsgBadDoc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;
&lt;SPAN&gt;sErrMsgBadDoc&lt;/SPAN&gt; = &lt;SPAN&gt;"This macro requires active assembly document."&lt;/SPAN&gt;
&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;ActiveDocument&lt;/SPAN&gt; &lt;SPAN&gt;Is&lt;/SPAN&gt; &lt;SPAN&gt;Nothing&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
    &lt;SPAN&gt;MessageBox&lt;/SPAN&gt;.&lt;SPAN&gt;Show&lt;/SPAN&gt;(&lt;SPAN&gt;sErrMsgBadDoc&lt;/SPAN&gt;)
    &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;

&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Not&lt;/SPAN&gt; &lt;SPAN&gt;TypeOf&lt;/SPAN&gt; &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;ActiveDocument&lt;/SPAN&gt; &lt;SPAN&gt;Is&lt;/SPAN&gt; &lt;SPAN&gt;AssemblyDocument&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
    &lt;SPAN&gt;MessageBox&lt;/SPAN&gt;.&lt;SPAN&gt;Show&lt;/SPAN&gt;(&lt;SPAN&gt;sErrMsgBadDoc&lt;/SPAN&gt;)
    &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;

&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oTxnMgr&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;TransactionManager&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;TransactionManager&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oTxn&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Transaction&lt;/SPAN&gt; = &lt;SPAN&gt;oTxnMgr&lt;/SPAN&gt;.&lt;SPAN&gt;StartTransaction&lt;/SPAN&gt;(&lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;ActiveDocument&lt;/SPAN&gt;, &lt;SPAN&gt;"BOM Sync"&lt;/SPAN&gt;)

&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oDoc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;AssemblyDocument&lt;/SPAN&gt;
&lt;SPAN&gt;oDoc&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;ActiveDocument&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;oDoc&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;.&lt;SPAN&gt;BOM&lt;/SPAN&gt;

&lt;SPAN&gt;oBOM&lt;/SPAN&gt;.&lt;SPAN&gt;StructuredViewEnabled&lt;/SPAN&gt; = &lt;SPAN&gt;True&lt;/SPAN&gt;
&lt;SPAN&gt;oBOM&lt;/SPAN&gt;.&lt;SPAN&gt;StructuredViewFirstLevelOnly&lt;/SPAN&gt; = &lt;SPAN&gt;False&lt;/SPAN&gt;
&lt;SPAN&gt;oBOM&lt;/SPAN&gt;.&lt;SPAN&gt;StructuredViewDelimiter&lt;/SPAN&gt; = &lt;SPAN&gt;"."&lt;/SPAN&gt;

&lt;SPAN&gt;' Find structured view&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oStructView&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;BOMView&lt;/SPAN&gt; = &lt;SPAN&gt;oBOM&lt;/SPAN&gt;.&lt;SPAN&gt;BOMViews&lt;/SPAN&gt;(&lt;SPAN&gt;"Structured"&lt;/SPAN&gt;)

&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oStructView&lt;/SPAN&gt; &lt;SPAN&gt;Is&lt;/SPAN&gt; &lt;SPAN&gt;Nothing&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
    &lt;SPAN&gt;' No struct view even if enabled? Probably because of LOD&lt;/SPAN&gt;
    &lt;SPAN&gt;MessageBox&lt;/SPAN&gt;.&lt;SPAN&gt;Show&lt;/SPAN&gt;(&lt;SPAN&gt;"Cannot get structured BOM view, make sure Master LOD is active"&lt;/SPAN&gt;)
	&lt;SPAN&gt;oTxn&lt;/SPAN&gt;.&lt;SPAN&gt;End&lt;/SPAN&gt;
    &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;

&lt;SPAN&gt;' Now get rows and update item numbers for sub assemblies recursively&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oRow&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;oRow&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oStructView&lt;/SPAN&gt;.&lt;SPAN&gt;BOMRows&lt;/SPAN&gt;
    &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Not&lt;/SPAN&gt; &lt;SPAN&gt;oRow&lt;/SPAN&gt;.&lt;SPAN&gt;ChildRows&lt;/SPAN&gt; &lt;SPAN&gt;Is&lt;/SPAN&gt; &lt;SPAN&gt;Nothing&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
        &lt;SPAN&gt;UpdateItemNumbers&lt;/SPAN&gt;(&lt;SPAN&gt;oRow&lt;/SPAN&gt;, &lt;SPAN&gt;oBOM&lt;/SPAN&gt;.&lt;SPAN&gt;StructuredViewDelimiter&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;SPAN&gt;oRow&lt;/SPAN&gt;

&lt;SPAN&gt;oStructView&lt;/SPAN&gt;.&lt;SPAN&gt;Sort&lt;/SPAN&gt;(&lt;SPAN&gt;"Item"&lt;/SPAN&gt;)

&lt;SPAN&gt;MessageBox&lt;/SPAN&gt;.&lt;SPAN&gt;Show&lt;/SPAN&gt;(&lt;SPAN&gt;"BOM item numbers have been synced"&lt;/SPAN&gt;, &lt;SPAN&gt;"BOM Sync"&lt;/SPAN&gt;)
&lt;SPAN&gt;oTxn&lt;/SPAN&gt;.&lt;SPAN&gt;End&lt;/SPAN&gt;
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;

&lt;SPAN&gt;Sub&lt;/SPAN&gt; &lt;SPAN&gt;UpdateItemNumbers&lt;/SPAN&gt;(&lt;SPAN&gt;oRow1&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;BOMRow&lt;/SPAN&gt;, &lt;SPAN&gt;sDelim&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;)
&lt;SPAN&gt;' assembly row expected as input&lt;/SPAN&gt;
&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oRow1&lt;/SPAN&gt;.&lt;SPAN&gt;ChildRows&lt;/SPAN&gt; &lt;SPAN&gt;Is&lt;/SPAN&gt; &lt;SPAN&gt;Nothing&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
    &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;

&lt;SPAN&gt;' get sub BOM and its structured view&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oBOM2&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;BOM&lt;/SPAN&gt; = &lt;SPAN&gt;oRow1&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinitions&lt;/SPAN&gt;(1).&lt;SPAN&gt;BOM&lt;/SPAN&gt;
&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oBOM2&lt;/SPAN&gt;.&lt;SPAN&gt;StructuredViewEnabled&lt;/SPAN&gt; = &lt;SPAN&gt;False&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
	&lt;SPAN&gt;Try&lt;/SPAN&gt;
		&lt;SPAN&gt;oBOM2&lt;/SPAN&gt;.&lt;SPAN&gt;StructuredViewEnabled&lt;/SPAN&gt; = &lt;SPAN&gt;True&lt;/SPAN&gt;
	&lt;SPAN&gt;Catch&lt;/SPAN&gt;
		&lt;SPAN&gt;'MessageBox.Show("Could not enable BOM on " &amp;amp; oRow1.ComponentDefinitions.Item(1).Document.PropertySets.Item("Design Tracking Properties").Item("Part Number").Value)&lt;/SPAN&gt;
		&lt;SPAN&gt;GoTo&lt;/SPAN&gt; &lt;SPAN&gt;NextRow&lt;/SPAN&gt;:
	&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Try&lt;/SPAN&gt;
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oStructView2&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;BOMView&lt;/SPAN&gt; = &lt;SPAN&gt;oBOM2&lt;/SPAN&gt;.&lt;SPAN&gt;BOMViews&lt;/SPAN&gt;(&lt;SPAN&gt;"Structured"&lt;/SPAN&gt;)

&lt;SPAN&gt;' No structured view in this sub bom? Nothing to do.&lt;/SPAN&gt;
&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oStructView2&lt;/SPAN&gt; &lt;SPAN&gt;Is&lt;/SPAN&gt; &lt;SPAN&gt;Nothing&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
    &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;

&lt;SPAN&gt;' Now iterate sub rows and match them to rows in sub bom. Transfer item number if needed&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oRow2&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;oRow2&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oRow1&lt;/SPAN&gt;.&lt;SPAN&gt;ChildRows&lt;/SPAN&gt;
	&lt;SPAN&gt;'MessageBox.Show(oRow2.ComponentDefinitions.Item(1).Document.PropertySets.Item("Design Tracking Properties").Item("Part Number").Value)&lt;/SPAN&gt;
    &lt;SPAN&gt;' Find this row in sub bom&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oRow3&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;BOMRow&lt;/SPAN&gt; = &lt;SPAN&gt;FindRow&lt;/SPAN&gt;(&lt;SPAN&gt;oStructView2&lt;/SPAN&gt;, &lt;SPAN&gt;oRow2&lt;/SPAN&gt;)

    &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Not&lt;/SPAN&gt; &lt;SPAN&gt;oRow3&lt;/SPAN&gt; &lt;SPAN&gt;Is&lt;/SPAN&gt; &lt;SPAN&gt;Nothing&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
        &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Not&lt;/SPAN&gt; &lt;SPAN&gt;oRow2&lt;/SPAN&gt;.&lt;SPAN&gt;ChildRows&lt;/SPAN&gt; &lt;SPAN&gt;Is&lt;/SPAN&gt; &lt;SPAN&gt;Nothing&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
            &lt;SPAN&gt;' Workaround for assembly renumbering to preserve parent numbers&lt;/SPAN&gt;
            &lt;SPAN&gt;ModifyAssemblyItemNumber&lt;/SPAN&gt;(&lt;SPAN&gt;oRow2&lt;/SPAN&gt;, &lt;SPAN&gt;oRow3&lt;/SPAN&gt;, &lt;SPAN&gt;sDelim&lt;/SPAN&gt;)
        &lt;SPAN&gt;ElseIf&lt;/SPAN&gt; &lt;SPAN&gt;TypeOf&lt;/SPAN&gt; &lt;SPAN&gt;oRow2&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinitions&lt;/SPAN&gt;.&lt;SPAN&gt;Item&lt;/SPAN&gt;(1) &lt;SPAN&gt;Is&lt;/SPAN&gt; &lt;SPAN&gt;VirtualComponentDefinition&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
			&lt;SPAN&gt;'MessageBox.Show(oRow2.ComponentDefinitions(1).PropertySets.Item("Design Tracking Properties").Item("Part Number").Value &amp;amp; vbCr &amp;amp; oRow3.ItemNumber)&lt;/SPAN&gt;
			&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oItem&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;&lt;SPAN&gt;' = VirtualItem(oRow3)&lt;/SPAN&gt;
			&lt;SPAN&gt;oItem&lt;/SPAN&gt; = &lt;SPAN&gt;oRow3&lt;/SPAN&gt;.&lt;SPAN&gt;ItemNumber&lt;/SPAN&gt;
			&lt;SPAN&gt;oRow2&lt;/SPAN&gt;.&lt;SPAN&gt;ItemNumber&lt;/SPAN&gt; = &lt;SPAN&gt;oItem&lt;/SPAN&gt;
		&lt;SPAN&gt;Else&lt;/SPAN&gt;
            &lt;SPAN&gt;oRow2&lt;/SPAN&gt;.&lt;SPAN&gt;ItemNumber&lt;/SPAN&gt; = &lt;SPAN&gt;oRow3&lt;/SPAN&gt;.&lt;SPAN&gt;ItemNumber&lt;/SPAN&gt;
        &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    &lt;SPAN&gt;'Recurse&lt;/SPAN&gt;
    &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Not&lt;/SPAN&gt; &lt;SPAN&gt;oRow2&lt;/SPAN&gt;.&lt;SPAN&gt;ChildRows&lt;/SPAN&gt; &lt;SPAN&gt;Is&lt;/SPAN&gt; &lt;SPAN&gt;Nothing&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
        &lt;SPAN&gt;UpdateItemNumbers&lt;/SPAN&gt;(&lt;SPAN&gt;oRow2&lt;/SPAN&gt;, &lt;SPAN&gt;sDelim&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;SPAN&gt;oRow2&lt;/SPAN&gt;
&lt;SPAN&gt;NextRow&lt;/SPAN&gt;:
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;

&lt;SPAN&gt;' compares two BOM rows from different BOMs if they refer to same components&lt;/SPAN&gt;
&lt;SPAN&gt;Function&lt;/SPAN&gt; &lt;SPAN&gt;MatchRows&lt;/SPAN&gt;(&lt;SPAN&gt;oRow1&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;BOMRow&lt;/SPAN&gt;, &lt;SPAN&gt;oRow2&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;BOMRow&lt;/SPAN&gt;) &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Boolean&lt;/SPAN&gt;
&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oRow1&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinitions&lt;/SPAN&gt;.&lt;SPAN&gt;Count&lt;/SPAN&gt; &amp;lt;&amp;gt; &lt;SPAN&gt;oRow2&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinitions&lt;/SPAN&gt;.&lt;SPAN&gt;Count&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
    &lt;SPAN&gt;MatchRows&lt;/SPAN&gt; = &lt;SPAN&gt;False&lt;/SPAN&gt;
    &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;Function&lt;/SPAN&gt;
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;i&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Integer&lt;/SPAN&gt;
&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;i&lt;/SPAN&gt; = 1 &lt;SPAN&gt;To&lt;/SPAN&gt; &lt;SPAN&gt;oRow1&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinitions&lt;/SPAN&gt;.&lt;SPAN&gt;Count&lt;/SPAN&gt;
    &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oRow1&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinitions&lt;/SPAN&gt;(&lt;SPAN&gt;i&lt;/SPAN&gt;).&lt;SPAN&gt;Document&lt;/SPAN&gt;.&lt;SPAN&gt;FullDocumentName&lt;/SPAN&gt; &amp;lt;&amp;gt; &lt;SPAN&gt;oRow2&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinitions&lt;/SPAN&gt;(&lt;SPAN&gt;i&lt;/SPAN&gt;).&lt;SPAN&gt;Document&lt;/SPAN&gt;.&lt;SPAN&gt;FullDocumentName&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
        &lt;SPAN&gt;MatchRows&lt;/SPAN&gt; = &lt;SPAN&gt;False&lt;/SPAN&gt;
        &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;Function&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;SPAN&gt;i&lt;/SPAN&gt;
&lt;SPAN&gt;'Fix for virtual components getting all the same item number&lt;/SPAN&gt;
&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;TypeOf&lt;/SPAN&gt; &lt;SPAN&gt;oRow1&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinitions&lt;/SPAN&gt;(1) &lt;SPAN&gt;Is&lt;/SPAN&gt; &lt;SPAN&gt;VirtualComponentDefinition&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
	&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oRow1&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinitions&lt;/SPAN&gt;(1).&lt;SPAN&gt;PropertySets&lt;/SPAN&gt;.&lt;SPAN&gt;Item&lt;/SPAN&gt;(&lt;SPAN&gt;"Design Tracking Properties"&lt;/SPAN&gt;).&lt;SPAN&gt;Item&lt;/SPAN&gt;(&lt;SPAN&gt;"Part Number"&lt;/SPAN&gt;) &lt;SPAN&gt;IsNot&lt;/SPAN&gt; &lt;SPAN&gt;oRow2&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinitions&lt;/SPAN&gt;(1).&lt;SPAN&gt;PropertySets&lt;/SPAN&gt;.&lt;SPAN&gt;Item&lt;/SPAN&gt;(&lt;SPAN&gt;"Design Tracking Properties"&lt;/SPAN&gt;).&lt;SPAN&gt;Item&lt;/SPAN&gt;(&lt;SPAN&gt;"Part Number"&lt;/SPAN&gt;)
		&lt;SPAN&gt;MatchRows&lt;/SPAN&gt; = &lt;SPAN&gt;False&lt;/SPAN&gt;
		&lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;Function&lt;/SPAN&gt;
	&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
&lt;SPAN&gt;MatchRows&lt;/SPAN&gt; = &lt;SPAN&gt;True&lt;/SPAN&gt;
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Function&lt;/SPAN&gt;

&lt;SPAN&gt;' finds BOM row in the specified BOM view which refer to same component as input row&lt;/SPAN&gt;
&lt;SPAN&gt;' no recursion, first level search only&lt;/SPAN&gt;
&lt;SPAN&gt;Function&lt;/SPAN&gt; &lt;SPAN&gt;FindRow&lt;/SPAN&gt;(&lt;SPAN&gt;oBOMView2&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;BOMView&lt;/SPAN&gt;, &lt;SPAN&gt;oRow2&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;BOMRow&lt;/SPAN&gt;) &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;BOMRow&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oRow&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;oRow&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oBOMView2&lt;/SPAN&gt;.&lt;SPAN&gt;BOMRows&lt;/SPAN&gt;
    &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;MatchRows&lt;/SPAN&gt;(&lt;SPAN&gt;oRow2&lt;/SPAN&gt;, &lt;SPAN&gt;oRow&lt;/SPAN&gt;) &lt;SPAN&gt;Then&lt;/SPAN&gt;
        &lt;SPAN&gt;FindRow&lt;/SPAN&gt; = &lt;SPAN&gt;oRow&lt;/SPAN&gt;
        &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;For&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;SPAN&gt;oRow&lt;/SPAN&gt;
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Function&lt;/SPAN&gt;

&lt;SPAN&gt;' Modyfing item numbers for assembly works differently than for parts.&lt;/SPAN&gt;
&lt;SPAN&gt;' For part, only last part of the number is modified (for example "3.4", when set to "10" will change to "3.10").&lt;/SPAN&gt;
&lt;SPAN&gt;' For assemblies, override is set which replaces everything (for example "3.4", when set to "10" will change to "10").&lt;/SPAN&gt;
&lt;SPAN&gt;' Looks like a defect in API, it should be consistent. Ideally, API should provide both ways of modifying the part number.&lt;/SPAN&gt;
&lt;SPAN&gt;' Workaround it to preserve the inherited part of the number (but it won't update when parent's number changes because of&lt;/SPAN&gt;
&lt;SPAN&gt;' override.&lt;/SPAN&gt;
&lt;SPAN&gt;Sub&lt;/SPAN&gt; &lt;SPAN&gt;ModifyAssemblyItemNumber&lt;/SPAN&gt;(&lt;SPAN&gt;oDestRow&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;BOMRow&lt;/SPAN&gt;, &lt;SPAN&gt;oSrcRow&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;BOMRow&lt;/SPAN&gt;, &lt;SPAN&gt;sDelim&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;)
&lt;SPAN&gt;' source item number is always 1st level only&lt;/SPAN&gt;
&lt;SPAN&gt;' get last part of current item number, use current delimiter&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;sItem&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;
&lt;SPAN&gt;sItem&lt;/SPAN&gt; = &lt;SPAN&gt;oDestRow&lt;/SPAN&gt;.&lt;SPAN&gt;Parent&lt;/SPAN&gt;.&lt;SPAN&gt;ItemNumber&lt;/SPAN&gt;
&lt;SPAN&gt;sItem&lt;/SPAN&gt; = &lt;SPAN&gt;sItem&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;sDelim&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;oSrcRow&lt;/SPAN&gt;.&lt;SPAN&gt;ItemNumber&lt;/SPAN&gt;
&lt;SPAN&gt;oDestRow&lt;/SPAN&gt;.&lt;SPAN&gt;ItemNumber&lt;/SPAN&gt; = &lt;SPAN&gt;sItem&lt;/SPAN&gt;
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
&lt;/PRE&gt;&lt;P&gt;, solving the problem&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 12 Aug 2021 07:42:39 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-forum/structured-bom-all-levels/m-p/10539500#M100129</guid>
      <dc:creator>MarkusGreifeneder3360</dc:creator>
      <dc:date>2021-08-12T07:42:39Z</dc:date>
    </item>
    <item>
      <title>Re: Structured BoM - all Levels</title>
      <link>https://forums.autodesk.com/t5/inventor-forum/structured-bom-all-levels/m-p/10974113#M100130</link>
      <description>&lt;P&gt;Hello&lt;/P&gt;&lt;P&gt;Please answer if You can to question in this link please. Because I see You are experienced user of Inventor&lt;/P&gt;&lt;P&gt;&lt;A href="https://forums.autodesk.com/t5/inventor-forum/inventor-bom-quantity-column-order-customize/td-p/10974090" target="_blank"&gt;https://forums.autodesk.com/t5/inventor-forum/inventor-bom-quantity-column-order-customize/td-p/10974090&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Sun, 27 Feb 2022 14:23:32 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-forum/structured-bom-all-levels/m-p/10974113#M100130</guid>
      <dc:creator>bionorica2015</dc:creator>
      <dc:date>2022-02-27T14:23:32Z</dc:date>
    </item>
    <item>
      <title>Re: Structured BoM - all Levels</title>
      <link>https://forums.autodesk.com/t5/inventor-forum/structured-bom-all-levels/m-p/11639322#M100131</link>
      <description>&lt;P&gt;Hi,&lt;BR /&gt;I wonder when there will be a link between the parts to what the user asks in the post? When will there be an inheritance between them?&lt;/P&gt;&lt;P&gt;I have been thinking about various things for a long time.&lt;BR /&gt;Mechanical Engineer design various machines and equipment, I mean the bigger machines in countries like USA, Japan, Germany, Czech Republic and many other countries, they have very similar drawing documentation, they all need a certain type of data. When I read the forum and search for information, many people ask the same thing. Bill Of Materials has been working pretty much the same since Inventor 6 (2002), with some very small functionality being added occasionally. I think it would be appropriate to make the Bill Of Materials and other things much better. Just to hint lightly, I would take all the code from the forum and put it in the new version. &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 24 Dec 2022 01:51:44 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-forum/structured-bom-all-levels/m-p/11639322#M100131</guid>
      <dc:creator>dusan.naus.trz</dc:creator>
      <dc:date>2022-12-24T01:51:44Z</dc:date>
    </item>
    <item>
      <title>Re: Structured BoM - all Levels</title>
      <link>https://forums.autodesk.com/t5/inventor-forum/structured-bom-all-levels/m-p/11639346#M100132</link>
      <description>&lt;P&gt;For Better BOM&lt;/P&gt;&lt;P&gt;&lt;A href="https://forums.autodesk.com/t5/inventor-ideas/new-bill-of-materials/idi-p/8358449" target="_blank"&gt;https://forums.autodesk.com/t5/inventor-ideas/new-bill-of-materials/idi-p/8358449&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 24 Dec 2022 02:30:17 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-forum/structured-bom-all-levels/m-p/11639346#M100132</guid>
      <dc:creator>dusan.naus.trz</dc:creator>
      <dc:date>2022-12-24T02:30:17Z</dc:date>
    </item>
  </channel>
</rss>

