<?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: To Retrieve Parent, Parent of Parent etc for phantom sub-assemblies in Inventor Programming - iLogic, Macros, AddIns &amp; Apprentice</title>
    <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/to-retrieve-parent-parent-of-parent-etc-for-phantom-sub/m-p/8630631#M95121</link>
    <description>&lt;P&gt;Thanks for the reply.&lt;/P&gt;
&lt;P&gt;A find the parents are the same for all the occurrences.&lt;/P&gt;
&lt;P&gt;I attached a simple fake-model &amp;nbsp;and the code revised to output what we are looking at.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Could you take a look at, please. Thanks.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Inventor Professional - 2018&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2019-03-01 08_2001.png" style="width: 884px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/608946i4CB8BAD0941624DD/image-size/large?v=v2&amp;amp;px=999" role="button" title="2019-03-01 08_2001.png" alt="2019-03-01 08_2001.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 01 Mar 2019 16:29:36 GMT</pubDate>
    <dc:creator>RoyWickrama_RWEI</dc:creator>
    <dc:date>2019-03-01T16:29:36Z</dc:date>
    <item>
      <title>To Retrieve Parent, Parent of Parent etc for phantom sub-assemblies</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/to-retrieve-parent-parent-of-parent-etc-for-phantom-sub/m-p/8616044#M94853</link>
      <description>&lt;P&gt;I am developing a rule shown below to extract all the data required for the product documentation in huge assembly environment (couple of thousand drawings).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The rule has following functionalities:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;reference documents (parts and assemblies) excluded&lt;/LI&gt;
&lt;LI&gt;phantom parts excluded&lt;/LI&gt;
&lt;LI&gt;phantom assemblies excluded&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;FONT color="#0000FF"&gt;&lt;STRONG&gt;However, I still have a problem connected with some parts reside in one or multiple phantom parents. If the parent of a document (part) is of phantom BOM structure, the true parent of the document is the parent of parent and so on until the parent of normal BOM structure is hit.&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;From my side, if I know the parent of parent, I can get around this issue &lt;STRONG&gt;&lt;FONT color="#800080"&gt;(at the bottom of this rule).&lt;/FONT&gt;&lt;/STRONG&gt; But, it looks like a lot to do!&lt;/P&gt;
&lt;P&gt;Could you help, please. Thanks.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN&gt;Public&lt;/SPAN&gt; &lt;SPAN&gt;Class&lt;/SPAN&gt; &lt;SPAN&gt;RWEI_0010BOM&lt;/SPAN&gt;
	&lt;SPAN&gt;Shared&lt;/SPAN&gt; &lt;SPAN&gt;oTextSave&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt; = &lt;SPAN&gt;"C:\Users\Public\Documents\iLogicBuffer.txt"&lt;/SPAN&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;oAssy_ThisDoc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;AssemblyDocument&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;Document&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;iL_NO&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt; = &lt;SPAN&gt;"0010-BOM"&lt;/SPAN&gt;
	&lt;SPAN&gt;oDelete_ex_Notepad&lt;/SPAN&gt;(&lt;SPAN&gt;oTextSave&lt;/SPAN&gt;, &lt;SPAN&gt;iL_NO&lt;/SPAN&gt;)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;HL1_Prefix&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt; = &lt;SPAN&gt;"FILE REFERENCE TREE RAN FROM: "&lt;/SPAN&gt;
	&lt;SPAN&gt;oHL1&lt;/SPAN&gt; = &lt;SPAN&gt;HL1_Prefix&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;oDoc&lt;/SPAN&gt;.&lt;SPAN&gt;FullFileName&lt;/SPAN&gt;
	&lt;SPAN&gt;oWrite_HeaderLines&lt;/SPAN&gt;(&lt;SPAN&gt;oTextSave&lt;/SPAN&gt;, &lt;SPAN&gt;oHL1&lt;/SPAN&gt;)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;iL_Name&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt; = &lt;SPAN&gt;"All Occurrences with BOM Structure"&lt;/SPAN&gt;
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oHL2&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt; = &lt;SPAN&gt;"Rule "&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;iL_NO&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;": "&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;iL_Name&lt;/SPAN&gt;
	&lt;SPAN&gt;oWrite_HeaderLines&lt;/SPAN&gt;(&lt;SPAN&gt;oTextSave&lt;/SPAN&gt;, &lt;SPAN&gt;oHL2&lt;/SPAN&gt;)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oDashes&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;For&lt;/SPAN&gt; &lt;SPAN&gt;i&lt;/SPAN&gt; = 1 &lt;SPAN&gt;To&lt;/SPAN&gt; &lt;SPAN&gt;Len&lt;/SPAN&gt;(&lt;SPAN&gt;oHL2&lt;/SPAN&gt;)
	&lt;SPAN&gt;oDashes&lt;/SPAN&gt; = &lt;SPAN&gt;oDashes&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;"-"&lt;/SPAN&gt;
	&lt;SPAN&gt;Next&lt;/SPAN&gt; &lt;SPAN&gt;i&lt;/SPAN&gt;
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oHL3&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt; = &lt;SPAN&gt;oDashes&lt;/SPAN&gt;
	&lt;SPAN&gt;oWrite_HeaderLines&lt;/SPAN&gt;(&lt;SPAN&gt;oTextSave&lt;/SPAN&gt;, &lt;SPAN&gt;oHL3&lt;/SPAN&gt;)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oHL4&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;oWrite_HeaderLines&lt;/SPAN&gt;(&lt;SPAN&gt;oTextSave&lt;/SPAN&gt;, &lt;SPAN&gt;oHL4&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;oBOM&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;ActiveDocument&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;.&lt;SPAN&gt;BOM&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;oBOMView&lt;/SPAN&gt; = &lt;SPAN&gt;oBOM&lt;/SPAN&gt;.&lt;SPAN&gt;BOMViews&lt;/SPAN&gt;.&lt;SPAN&gt;Item&lt;/SPAN&gt;(&lt;SPAN&gt;"Unnamed"&lt;/SPAN&gt;)&lt;SPAN&gt;'Accesing to Model data Column&lt;/SPAN&gt;
&lt;SPAN&gt;'In English__"Unnamed"_"Structured"_"Parts Only"__In Spanish__"Sin nombre"_"Estructurado"_"Solo piezas"&lt;/SPAN&gt;

  &lt;SPAN&gt;Call&lt;/SPAN&gt; &lt;SPAN&gt;ListItems&lt;/SPAN&gt;(&lt;SPAN&gt;oBOMView&lt;/SPAN&gt;.&lt;SPAN&gt;BOMRows&lt;/SPAN&gt;, 0)
&lt;SPAN&gt;Process&lt;/SPAN&gt;.&lt;SPAN&gt;Start&lt;/SPAN&gt;(&lt;SPAN&gt;"Notepad.exe"&lt;/SPAN&gt;, &lt;SPAN&gt;oTextSave&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;ListItems&lt;/SPAN&gt;(&lt;SPAN&gt;Rows&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;BOMRowsEnumerator&lt;/SPAN&gt;, &lt;SPAN&gt;indent&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Integer&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;Rows&lt;/SPAN&gt;
		
			&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oDef&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;
			&lt;SPAN&gt;oDef&lt;/SPAN&gt; = &lt;SPAN&gt;oBOMRow&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinitions&lt;/SPAN&gt;(1)
			&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oLFN&lt;/SPAN&gt;  &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;
			&lt;SPAN&gt;oLFN&lt;/SPAN&gt;  = &lt;SPAN&gt;oDef&lt;/SPAN&gt;.&lt;SPAN&gt;Document&lt;/SPAN&gt;.&lt;SPAN&gt;Displayname&lt;/SPAN&gt;
			
			&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oDocFile&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Document&lt;/SPAN&gt;
			&lt;SPAN&gt;oDocFile&lt;/SPAN&gt; = &lt;SPAN&gt;oDef&lt;/SPAN&gt;.&lt;SPAN&gt;Document&lt;/SPAN&gt;
			
			&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oDocFile&lt;/SPAN&gt;.&lt;SPAN&gt;IsModifiable&lt;/SPAN&gt; = &lt;SPAN&gt;True&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt; 
				&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oBOMStructnumber&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;
			    &lt;SPAN&gt;oBOMStructnumber&lt;/SPAN&gt; = &lt;SPAN&gt;oBOMRow&lt;/SPAN&gt;.&lt;SPAN&gt;BOMStructure&lt;/SPAN&gt;
				&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;BOM_Structure&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;
				&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oBOMStructnumber&lt;/SPAN&gt; &amp;lt;&amp;gt; 51972 &lt;SPAN&gt;Then&lt;/SPAN&gt;
				
				&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oBOMStructnumber&lt;/SPAN&gt; = 51969 &lt;SPAN&gt;Then&lt;/SPAN&gt; &lt;SPAN&gt;BOM_Structure&lt;/SPAN&gt; = &lt;SPAN&gt;"Default"&lt;/SPAN&gt; 
				&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oBOMStructnumber&lt;/SPAN&gt; = 51974 &lt;SPAN&gt;Then&lt;/SPAN&gt; &lt;SPAN&gt;BOM_Structure&lt;/SPAN&gt; = &lt;SPAN&gt;"Inseparable"&lt;/SPAN&gt; 
				&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oBOMStructnumber&lt;/SPAN&gt; =  51970 &lt;SPAN&gt;Then&lt;/SPAN&gt; &lt;SPAN&gt;BOM_Structure&lt;/SPAN&gt; = &lt;SPAN&gt;"Normal"&lt;/SPAN&gt; 
				&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oBOMStructnumber&lt;/SPAN&gt; = 51971 &lt;SPAN&gt;Then&lt;/SPAN&gt; &lt;SPAN&gt;BOM_Structure&lt;/SPAN&gt; = &lt;SPAN&gt;"Phantom"&lt;/SPAN&gt; 
				&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oBOMStructnumber&lt;/SPAN&gt; =  51973 &lt;SPAN&gt;Then&lt;/SPAN&gt; &lt;SPAN&gt;BOM_Structure&lt;/SPAN&gt; = &lt;SPAN&gt;"Purchased"&lt;/SPAN&gt; 
				&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oBOMStructnumber&lt;/SPAN&gt; = 51972 &lt;SPAN&gt;Then&lt;/SPAN&gt; &lt;SPAN&gt;BOM_Structure&lt;/SPAN&gt; = &lt;SPAN&gt;"Reference"&lt;/SPAN&gt; 
				&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oBOMStructnumber&lt;/SPAN&gt; = 51975 &lt;SPAN&gt;Then&lt;/SPAN&gt; &lt;SPAN&gt;BOM_Structure&lt;/SPAN&gt; = &lt;SPAN&gt;"The Structure Type varies amongst references"&lt;/SPAN&gt; 
			
	&lt;SPAN&gt;'			Dim oDocFile As Document&lt;/SPAN&gt;
	&lt;SPAN&gt;'			oDocFile = oDef.Document&lt;/SPAN&gt;
				
	&lt;SPAN&gt;'			If oDocFile.IsModifiable = True Then &lt;/SPAN&gt;
				&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;Parent&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Document&lt;/SPAN&gt; = &lt;SPAN&gt;oDocFile&lt;/SPAN&gt;.&lt;SPAN&gt;ReferencingDocuments&lt;/SPAN&gt;.&lt;SPAN&gt;Item&lt;/SPAN&gt;(1)
				
				    &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Not&lt;/SPAN&gt; &lt;SPAN&gt;oBOMRow&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;Call&lt;/SPAN&gt; &lt;SPAN&gt;ListItems&lt;/SPAN&gt;(&lt;SPAN&gt;oBOMRow&lt;/SPAN&gt;.&lt;SPAN&gt;ChildRows&lt;/SPAN&gt;, &lt;SPAN&gt;indent&lt;/SPAN&gt; + 1)
				    &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
					
					&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oPhantomPart_ParentOfPhantomPart&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;If&lt;/SPAN&gt; &lt;SPAN&gt;Right&lt;/SPAN&gt;(&lt;SPAN&gt;oLFN&lt;/SPAN&gt;, 3) = &lt;SPAN&gt;"ipt"&lt;/SPAN&gt; &lt;SPAN&gt;And&lt;/SPAN&gt; &lt;SPAN&gt;BOM_Structure&lt;/SPAN&gt; = &lt;SPAN&gt;"Phantom"&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
						&lt;SPAN&gt;'Do nothing&lt;/SPAN&gt;
					&lt;SPAN&gt;Else&lt;/SPAN&gt;
						&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Right&lt;/SPAN&gt;(&lt;SPAN&gt;oLFN&lt;/SPAN&gt;, 3) = &lt;SPAN&gt;"iam"&lt;/SPAN&gt; &lt;SPAN&gt;And&lt;/SPAN&gt; &lt;SPAN&gt;BOM_Structure&lt;/SPAN&gt; = &lt;SPAN&gt;"Phantom"&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
							&lt;SPAN&gt;'Do nothing&lt;/SPAN&gt;
						&lt;SPAN&gt;Else&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Right&lt;/SPAN&gt;(&lt;SPAN&gt;oLFN&lt;/SPAN&gt;, 3 = &lt;SPAN&gt;"ipt"&lt;/SPAN&gt; &lt;SPAN&gt;And&lt;/SPAN&gt; &lt;SPAN&gt;BOM_Structure&lt;/SPAN&gt; = &lt;SPAN&gt;"Phantom"&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;BR /&gt;&lt;/SPAN&gt;
							'&lt;SPAN&gt;oPhantomPart_ParentOfPhantomPart&lt;/SPAN&gt; = &lt;SPAN&gt;oLFN&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;"$"&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;Parent&lt;/SPAN&gt;.&lt;SPAN&gt;DisplayName&lt;/SPAN&gt;
						&lt;SPAN&gt;Else&lt;/SPAN&gt;
						   	&lt;SPAN&gt;oName_Parent&lt;/SPAN&gt; = &lt;SPAN&gt;Parent&lt;/SPAN&gt;.&lt;SPAN&gt;DisplayName&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;"$"&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;BOM_Structure&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;"$"&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;oLFN&lt;/SPAN&gt;
							&lt;SPAN&gt;oWrite_Data&lt;/SPAN&gt;(&lt;SPAN&gt;oTextSave&lt;/SPAN&gt;, &lt;SPAN&gt;oName_Parent&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;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;Next&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;oWrite_HeaderLines&lt;/SPAN&gt;(&lt;SPAN&gt;oTextSave&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;, &lt;SPAN&gt;oHeaderLine&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;)
	&lt;SPAN&gt;oWrite&lt;/SPAN&gt; = &lt;SPAN&gt;System&lt;/SPAN&gt;.&lt;SPAN&gt;IO&lt;/SPAN&gt;.&lt;SPAN&gt;File&lt;/SPAN&gt;.&lt;SPAN&gt;AppendText&lt;/SPAN&gt;(&lt;SPAN&gt;oTextSave&lt;/SPAN&gt;)
	&lt;SPAN&gt;oWrite&lt;/SPAN&gt;.&lt;SPAN&gt;WriteLine&lt;/SPAN&gt;(&lt;SPAN&gt;oHeaderLine&lt;/SPAN&gt;)	
	&lt;SPAN&gt;oWrite&lt;/SPAN&gt;.&lt;SPAN&gt;Flush&lt;/SPAN&gt;()
	&lt;SPAN&gt;oWrite&lt;/SPAN&gt;.&lt;SPAN&gt;Close&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;oWrite_Data&lt;/SPAN&gt;(&lt;SPAN&gt;oTextSave&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;, &lt;SPAN&gt;oData&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;)
	&lt;SPAN&gt;oWrite&lt;/SPAN&gt; = &lt;SPAN&gt;System&lt;/SPAN&gt;.&lt;SPAN&gt;IO&lt;/SPAN&gt;.&lt;SPAN&gt;File&lt;/SPAN&gt;.&lt;SPAN&gt;AppendText&lt;/SPAN&gt;(&lt;SPAN&gt;oTextSave&lt;/SPAN&gt;)
	&lt;SPAN&gt;oWrite&lt;/SPAN&gt;.&lt;SPAN&gt;WriteLine&lt;/SPAN&gt;(&lt;SPAN&gt;oData&lt;/SPAN&gt;)	
	&lt;SPAN&gt;oWrite&lt;/SPAN&gt;.&lt;SPAN&gt;Flush&lt;/SPAN&gt;()
	&lt;SPAN&gt;oWrite&lt;/SPAN&gt;.&lt;SPAN&gt;Close&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;oDelete_ex_Notepad&lt;/SPAN&gt;(&lt;SPAN&gt;oTextSave&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;, &lt;SPAN&gt;iL_NO&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;)		&lt;SPAN&gt;'To delete oTextSave if existing.&lt;/SPAN&gt;
	&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;System&lt;/SPAN&gt;.&lt;SPAN&gt;IO&lt;/SPAN&gt;.&lt;SPAN&gt;File&lt;/SPAN&gt;.&lt;SPAN&gt;Exists&lt;/SPAN&gt;(&lt;SPAN&gt;oTextSave&lt;/SPAN&gt;) = &lt;SPAN&gt;True&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
	&lt;SPAN&gt;System&lt;/SPAN&gt;.&lt;SPAN&gt;IO&lt;/SPAN&gt;.&lt;SPAN&gt;File&lt;/SPAN&gt;.&lt;SPAN&gt;Delete&lt;/SPAN&gt;(&lt;SPAN&gt;oTextSave&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;Sub&lt;/SPAN&gt;
	
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Class&lt;/SPAN&gt;
&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 23 Feb 2019 08:47:21 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/to-retrieve-parent-parent-of-parent-etc-for-phantom-sub/m-p/8616044#M94853</guid>
      <dc:creator>RoyWickrama_RWEI</dc:creator>
      <dc:date>2019-02-23T08:47:21Z</dc:date>
    </item>
    <item>
      <title>Re: To Retrieve Parent, Parent of Parent etc for phantom sub-assemblies</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/to-retrieve-parent-parent-of-parent-etc-for-phantom-sub/m-p/8624321#M95025</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/2129088"&gt;@RoyWickrama_RWEI&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Sorry for delay response,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Could you please explain "parent of parent" with examples? It seems that attachments are missing.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please provide sample files to investigate and make sure that files are non confidential.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks and regards,&lt;/P&gt;</description>
      <pubDate>Wed, 27 Feb 2019 11:16:40 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/to-retrieve-parent-parent-of-parent-etc-for-phantom-sub/m-p/8624321#M95025</guid>
      <dc:creator>chandra.shekar.g</dc:creator>
      <dc:date>2019-02-27T11:16:40Z</dc:date>
    </item>
    <item>
      <title>Re: To Retrieve Parent, Parent of Parent etc for phantom sub-assemblies</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/to-retrieve-parent-parent-of-parent-etc-for-phantom-sub/m-p/8625881#M95048</link>
      <description>&lt;P&gt;Thanks for you are back.&lt;/P&gt;
&lt;P&gt;Currently, I am working on it and it is getting better.&lt;/P&gt;
&lt;P&gt;I may need further help and I will let you.&lt;/P&gt;
&lt;P&gt;Thanks for the reply.&lt;/P&gt;</description>
      <pubDate>Wed, 27 Feb 2019 20:16:08 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/to-retrieve-parent-parent-of-parent-etc-for-phantom-sub/m-p/8625881#M95048</guid>
      <dc:creator>RoyWickrama_RWEI</dc:creator>
      <dc:date>2019-02-27T20:16:08Z</dc:date>
    </item>
    <item>
      <title>Re: To Retrieve Parent, Parent of Parent etc for phantom sub-assemblies</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/to-retrieve-parent-parent-of-parent-etc-for-phantom-sub/m-p/8626869#M95062</link>
      <description>&lt;P&gt;Hi Chadra Shekar;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have a rule that scan through all the occurrences. I need to filter library parts.&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="2019-02-27 2332.png" style="width: 841px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/608340iA4E26BB0549B521A/image-size/large?v=v2&amp;amp;px=999" role="button" title="2019-02-27 2332.png" alt="2019-02-27 2332.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I tried with the following:&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;openDoc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Document&lt;/SPAN&gt;
&lt;SPAN&gt;openDoc&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;oDoc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Document&lt;/SPAN&gt;

&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oOcc&lt;/SPAN&gt;.&lt;SPAN&gt;IsModifiable&lt;/SPAN&gt; = &lt;SPAN&gt;True&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt; 
	&lt;SPAN&gt;'----------------&lt;/SPAN&gt;
	&lt;SPAN&gt;'-----------------&lt;/SPAN&gt;
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;It does not work for occurrences.&lt;/P&gt;
&lt;P&gt;I request you to help. Thanks.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 28 Feb 2019 07:39:19 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/to-retrieve-parent-parent-of-parent-etc-for-phantom-sub/m-p/8626869#M95062</guid>
      <dc:creator>RoyWickrama_RWEI</dc:creator>
      <dc:date>2019-02-28T07:39:19Z</dc:date>
    </item>
    <item>
      <title>Re: To Retrieve Parent, Parent of Parent etc for phantom sub-assemblies</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/to-retrieve-parent-parent-of-parent-etc-for-phantom-sub/m-p/8627354#M95070</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/2129088"&gt;@RoyWickrama_RWEI&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Try this&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;If oOcc.ReferencedDocumentDescriptor.ReferencedDocument.IsModifiable = False Then
	'It is library document
End If&lt;/PRE&gt;
&lt;P&gt;Thanks and regards,&lt;/P&gt;</description>
      <pubDate>Thu, 28 Feb 2019 11:52:26 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/to-retrieve-parent-parent-of-parent-etc-for-phantom-sub/m-p/8627354#M95070</guid>
      <dc:creator>chandra.shekar.g</dc:creator>
      <dc:date>2019-02-28T11:52:26Z</dc:date>
    </item>
    <item>
      <title>Re: To Retrieve Parent, Parent of Parent etc for phantom sub-assemblies</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/to-retrieve-parent-parent-of-parent-etc-for-phantom-sub/m-p/8629534#M95112</link>
      <description>&lt;P&gt;Hi Chandra Shekar;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In the interest of determining the parent of a standard part:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;if the parent is phantom, the true parent is the parent of the phantom parent. It is fine if the parent of parent is not phantom. I am OK up to this level.&lt;/LI&gt;
&lt;LI&gt;unfortunately, if the parent of parent is phantom, to find the parent of the standard part under consideration, I need to find the &lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;parent of parent of parent&lt;/STRONG&gt;&lt;/FONT&gt;! This is where I need help. Rule and fake-sample assembly are attached here to.&amp;nbsp;Could you help me to get this around.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;In the sample, p0026 has sa0017, sa0012. Now, it is hard to decide the parent of each occurrences. To get this around (generally speaking, in case the parent's BOM structure is phantom), I would like to find:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;parent of parent&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2019-02-28 2247.png" style="width: 892px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/608775i2AB839DE3973DD2A/image-size/large?v=v2&amp;amp;px=999" role="button" title="2019-02-28 2247.png" alt="2019-02-28 2247.png" /&gt;&lt;/span&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="2019-02-28 2254.png" style="width: 999px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/608776iD436BBC6F135EDE4/image-size/large?v=v2&amp;amp;px=999" role="button" title="2019-02-28 2254.png" alt="2019-02-28 2254.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I keep trying. Not sure will succeed. Please help.&lt;/P&gt;
&lt;P&gt;Thanks.&lt;/P&gt;</description>
      <pubDate>Fri, 01 Mar 2019 06:58:46 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/to-retrieve-parent-parent-of-parent-etc-for-phantom-sub/m-p/8629534#M95112</guid>
      <dc:creator>RoyWickrama_RWEI</dc:creator>
      <dc:date>2019-03-01T06:58:46Z</dc:date>
    </item>
    <item>
      <title>Re: To Retrieve Parent, Parent of Parent etc for phantom sub-assemblies</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/to-retrieve-parent-parent-of-parent-etc-for-phantom-sub/m-p/8629781#M95115</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/2129088"&gt;@RoyWickrama_RWEI&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hoping that below iLogic code may be helpful.&lt;/P&gt;
&lt;PRE&gt;Public Class RWEI_0001A
	Shared oTextSave As String = "C:\Users\Public\Documents\iLogicBuffer.txt"
	Shared oParent_ofParent As String = ""
	
Sub Main() 
	'Accessing Assembly Components $ https://modthemachine.typepad.com/my_weblog/2009/03/accessing-assembly-components.html
	Dim oDashes As String = ""
	Dim iL_NO As String = "BOM-XX WIP"
	Dim iL_Name As String = "All Occurrences with BOM Structure"
	Dim iL_FullName As String = "Rule " &amp;amp; iL_NO &amp;amp; ": " &amp;amp; iL_Name
	Dim oDoc As Document = ThisApplication.ActiveDocument
			
	oDelete_ex_Notepad(oTextSave, iL_NO)
	oHL1 = "FILE REFERENCE TREE RAN FROM: " &amp;amp; oDoc.FullFileName
	oWrite_HeaderLines(oTextSave, oHL1)
	oHL2 = iL_FullName
	oWrite_HeaderLines(oTextSave, oHL2)
	For i = 1 To Len(iL_FullName)
		oDashes = oDashes &amp;amp; "-"
	Next i
	oWrite_DashLine(oTextSave, oDashes)
	oHL3 = ""
	oWrite_HeaderLines(oTextSave, oHL3)
	
    ' Get the active assembly. 
    Dim oAsmDoc As AssemblyDocument 
    oAsmDoc = ThisApplication.ActiveDocument 
	
	oParent_ofParent = oAsmDoc.DisplayName

    ' Call the function that does the recursion. 
    Call TraverseAssembly(oAsmDoc.ComponentDefinition.Occurrences, 1) 
	Process.Start("Notepad.exe", oTextSave)
End Sub 

Private Sub TraverseAssembly(Occurrences As ComponentOccurrences, Level As Integer) 

    ' Iterate through all of the occurrence in this collection.  This 
    ' represents the occurrences at the top level of an assembly. 
    Dim oOcc As ComponentOccurrence 
	Dim oParent_BOM_Structure As String 
    For Each oOcc In Occurrences 
		If oOcc.ReferencedDocumentDescriptor.ReferencedDocument.IsModifiable = True Then
	        ' Print the name of the current occurrence. 
	        ' Check to see if this occurrence represents a subassembly 
	        ' and recursively call this function to traverse through it. 
	        If oOcc.DefinitionDocumentType = kAssemblyDocumentObject Then 
	            Call TraverseAssembly(oOcc.SubOccurrences, Level + 1) 
	        End If 

			oOccFFN_cw_EXT = oOcc.ReferencedDocumentDescriptor.ReferencedDocument.FullFileName	'cw file extension	
			oOccLFN_cwExt = oFnOccc_LocalName_WExt(iL_NO, oOccFFN_cw_EXT)
			oOcc_BOM_Structure = oFn_BOM_Structure_Occ(iL_NO, oOcc)

			'Start******************* Parent of Parent ******************
			 
			'------------------
			
			
			
			
			
			'End*************** Parent of Parent *******************
	'		oParent = oOcc.ReferencedDocumentDescriptor.ReferencedDocument.FullFileName
			Try
				Dim oParentocc As ComponentOccurrence
				oParentocc = oOcc.ParentOccurrence
				oParent_BOM_Structure = oFn_BOM_Structure_Occ("",oParentocc)
				
				docFile = oParentocc.Definition.Document
			    oParentFFN = System.IO.Path.GetFileNameWithoutExtension(docFile.FullFileName)
			    oParent = System.IO.Path.GetFileName(docFile.FullFileName)
			Catch
				oParentFFN = System.IO.Path.GetFileNameWithoutExtension(oOcc.Parent.Document.DisplayName)
				oParent = System.IO.Path.GetFileName(oOcc.Parent.Document.DisplayName)
			End Try
			
			If Level = 1 Then oParent_BOM_Structure = oFn_OccLevel1_BomStructure()
				
			oData_X = "Parent of Parent" &amp;amp; "$" &amp;amp; oParent_ofParent &amp;amp; oParent &amp;amp; "$" &amp;amp; oOccLFN_cwExt &amp;amp; "$" &amp;amp; oOcc.Name &amp;amp; "$" &amp;amp; "Level-" &amp;amp; Level &amp;amp; "$" &amp;amp; oOcc_BOM_Structure	
	'		oData_X = oParent &amp;amp; "$" &amp;amp; oOcc.Name &amp;amp; "$" &amp;amp; "Level-" &amp;amp; Level &amp;amp; "$" &amp;amp; oOcc_BOM_Structure
	'		oData_X = oOccLFN_cwExt &amp;amp; "$" &amp;amp; oOccFFN_cw_EXT &amp;amp; "$" &amp;amp; oOcc_BOM_Structure &amp;amp; " " &amp;amp; oParent &amp;amp; "$" &amp;amp; oOcc.Name &amp;amp; "$" &amp;amp; "Level-" &amp;amp; Level
			oWrite_Data(oTextSave, oData_X)
		End If

	Next 
End Sub

	Function oFnOccc_LocalName_WExt(iL_NO As String, oOccFFN_cw_EXT As String)
	oName_Sub = "oFnOccc_LocalName_WExt"
	oTitle = iL_NO &amp;amp; " $ SUB: " &amp;amp; oName_Sub
	oPos = Len(oOccFFN_cw_EXT) - InStrRev(oOccFFN_cw_EXT, "\", -1)
	oName_Local_cw_Ext = Right(oOccFFN_cw_EXT, oPos)
	Return oName_Local_cw_Ext 'Local file name complete with extension
	End Function


	Function oFn_BOM_Structure_Occ(iL_NO As String, oCompOcc As ComponentOccurrence)
		oName_Sub = "oOcc_BOM_Structure"
		oTitle = iL_NO &amp;amp; " $ SUB: " &amp;amp; oName_Sub
'		Dim oOccurrence As ComponentOccurrence
		BOM_X = oCompOcc.BOMStructure 'oCompOcc.Definition.BOMStructure
		If BOM_X = BOMStructureEnum.kDefaultBOMStructure Then oOcc_BOM_Structure = "Default"
		If BOM_X = BOMStructureEnum.kNormalBOMStructure Then oOcc_BOM_Structure = "Normal"
		If BOM_X = BOMStructureEnum.kReferenceBOMStructure Then oOcc_BOM_Structure = "Reference" 
		If BOM_X = BOMStructureEnum.kPhantomBOMStructure Then oOcc_BOM_Structure = "Phantom"
		If BOM_X = BOMStructureEnum.kPurchasedBOMStructure  Then oOcc_BOM_Structure = "Purchased"
		If BOM_X = BOMStructureEnum.kInseparableBOMStructure  Then oOcc_BOM_Structure = "Inseparable"
		If BOM_X = BOMStructureEnum.kVariesBOMStructure Then oOcc_BOM_Structure = "Varies" 
		'oOcc_BOM_Structure = oFnOccc_LocalName_WExt(iL_NO, oFFN_X) &amp;amp; " &amp;lt;- " &amp;amp; oOcc_BOM_Structure &amp;amp; "(BOM STATUS: Default)"
		Dim BOM_Structure_Return As String = oOcc_BOM_Structure
		Return BOM_Structure_Return
	End Function
	
Function GetOccurrenceParent(oOcc As ComponentOccurrence, oOccName As String)

	Return oOcc.Parent.Document.DisplayName
End Function

'Process.Start("Notepad.exe", oTextSave)	
Sub oWrite_Data(oTextSave As String, oData As String)
	oWrite = System.IO.File.AppendText(oTextSave)
	oWrite.WriteLine(oData)	
	oWrite.Flush()
	oWrite.Close
End Sub

Sub oWrite_HeaderLines(oTextSave As String, oHeaderLine As String)
	oWrite = System.IO.File.AppendText(oTextSave)
	oWrite.WriteLine(oHeaderLine)	
	oWrite.Flush()
	oWrite.Close
End Sub
	
Sub oWrite_DashLine(oTextSave As String, oDashes As String)
	oWrite = System.IO.File.AppendText(oTextSave)
	oWrite.WriteLine(oDashes)	
	oWrite.Flush()
	oWrite.Close
End Sub

Function oFn_OccLevel1_BomStructure()
	Dim doc = ThisDoc.Document
	oBOM = doc.ComponentDefinition.BOMStructure
	If oBOM = BOMStructureEnum.kDefaultBOMStructure Then oOcc_BOM_Structure = "Default"
	If oBOM = BOMStructureEnum.kNormalBOMStructure Then oOcc_BOM_Structure = "Normal"
	If oBOM = BOMStructureEnum.kReferenceBOMStructure Then oOcc_BOM_Structure = "Reference" 
	If oBOM = BOMStructureEnum.kPhantomBOMStructure Then oOcc_BOM_Structure = "Phantom"
	If oBOM = BOMStructureEnum.kPurchasedBOMStructure  Then oOcc_BOM_Structure = "Purchased"
	If oBOM = BOMStructureEnum.kInseparableBOMStructure  Then oOcc_BOM_Structure = "Inseparable"
	If oBOM = BOMStructureEnum.kVariesBOMStructure Then oOcc_BOM_Structure = "Varies" 
	Dim BOM_Structure_Return As String = oOcc_BOM_Structure
	Return BOM_Structure_Return
End Function




Sub oDelete_ex_Notepad(oTextSave As String, iL_NO As String)		'To delete oTextSave if existing.
 	If System.IO.File.Exists(oTextSave) = True Then
   	System.IO.File.Delete(oTextSave)
	End If
End Sub
End Class
&lt;/PRE&gt;
&lt;P&gt;Result of above iLogic code&lt;/P&gt;
&lt;PRE&gt;FILE REFERENCE TREE RAN FROM: D:\Chandra\Autodesk Cases\Inventor\Mar-2019\15098877\LAF Parents\LAF iLogic API and Forum\SBS-LAF-sa0013.iam
Rule BOM-XX WIP: All Occurrences with BOM Structure
---------------------------------------------------

Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0011.iam$SBS-LAF-p0024.ipt$SBS-LAF-p0024:1$Level-2$Normal
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0011.iam$SBS-LAF-p0026.ipt$SBS-LAF-p0026:1$Level-2$Normal
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0011.iam$SBS-LAF-p0025.ipt$SBS-LAF-p0025:1$Level-2$Phantom
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0011.iam$SBS-LAF-p0032.ipt$SBS-LAF-p0032:1$Level-2$Reference
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0013.iam$SBS-LAF-sa0011.iam$SBS-LAF-sa0011:1$Level-1$Normal
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0012.iam$SBS-LAF-p0024.ipt$SBS-LAF-p0024:1$Level-2$Normal
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0012.iam$SBS-LAF-p0026.ipt$SBS-LAF-p0026:1$Level-2$Reference
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0012.iam$SBS-LAF-p0025.ipt$SBS-LAF-p0025:1$Level-2$Phantom
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0017.iam$SBS-LAF-p0024.ipt$SBS-LAF-p0024:1$Level-3$Normal
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0017.iam$SBS-LAF-p0026.ipt$SBS-LAF-p0026:1$Level-3$Normal
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0017.iam$SBS-LAF-p0026.ipt$SBS-LAF-p0026:2$Level-3$Normal
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0012.iam$SBS-LAF-sa0017.iam$SBS-LAF-sa0017:1$Level-2$Phantom
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0013.iam$SBS-LAF-sa0012.iam$SBS-LAF-sa0012:1$Level-1$Phantom
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0013.iam$SBS-LAF-p0024.ipt$SBS-LAF-p0024:1$Level-1$Normal
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0011.iam$SBS-LAF-p0024.ipt$SBS-LAF-p0024:1$Level-2$Normal
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0011.iam$SBS-LAF-p0026.ipt$SBS-LAF-p0026:1$Level-2$Normal
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0011.iam$SBS-LAF-p0025.ipt$SBS-LAF-p0025:1$Level-2$Phantom
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0011.iam$SBS-LAF-p0032.ipt$SBS-LAF-p0032:1$Level-2$Reference
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0013.iam$SBS-LAF-sa0011.iam$SBS-LAF-sa0011:2$Level-1$Normal
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0018.iam$SBS-LAF-p0024.ipt$SBS-LAF-p0024:1$Level-2$Normal
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0017.iam$SBS-LAF-p0024.ipt$SBS-LAF-p0024:1$Level-3$Normal
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0017.iam$SBS-LAF-p0026.ipt$SBS-LAF-p0026:1$Level-3$Normal
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0017.iam$SBS-LAF-p0026.ipt$SBS-LAF-p0026:2$Level-3$Normal
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0018.iam$SBS-LAF-sa0017.iam$SBS-LAF-sa0017:1$Level-2$Phantom
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0013.iam$SBS-LAF-sa0018.iam$SBS-LAF-sa0018:1$Level-1$Phantom
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0019.iam$SBS-LAF-p0024.ipt$SBS-LAF-p0024:1$Level-2$Normal
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0012.iam$SBS-LAF-p0024.ipt$SBS-LAF-p0024:1$Level-3$Normal
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0012.iam$SBS-LAF-p0026.ipt$SBS-LAF-p0026:1$Level-3$Reference
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0012.iam$SBS-LAF-p0025.ipt$SBS-LAF-p0025:1$Level-3$Phantom
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0017.iam$SBS-LAF-p0024.ipt$SBS-LAF-p0024:1$Level-4$Normal
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0017.iam$SBS-LAF-p0026.ipt$SBS-LAF-p0026:1$Level-4$Normal
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0017.iam$SBS-LAF-p0026.ipt$SBS-LAF-p0026:2$Level-4$Normal
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0012.iam$SBS-LAF-sa0017.iam$SBS-LAF-sa0017:1$Level-3$Phantom
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0019.iam$SBS-LAF-sa0012.iam$SBS-LAF-sa0012:1$Level-2$Phantom
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0013.iam$SBS-LAF-sa0019.iam$SBS-LAF-sa0019:1$Level-1$Normal
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0020.iam$SBS-LAF-p0026.ipt$SBS-LAF-p0026:1$Level-2$Reference
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0012.iam$SBS-LAF-p0024.ipt$SBS-LAF-p0024:1$Level-3$Normal
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0012.iam$SBS-LAF-p0026.ipt$SBS-LAF-p0026:1$Level-3$Reference
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0012.iam$SBS-LAF-p0025.ipt$SBS-LAF-p0025:1$Level-3$Phantom
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0017.iam$SBS-LAF-p0024.ipt$SBS-LAF-p0024:1$Level-4$Normal
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0017.iam$SBS-LAF-p0026.ipt$SBS-LAF-p0026:1$Level-4$Normal
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0017.iam$SBS-LAF-p0026.ipt$SBS-LAF-p0026:2$Level-4$Normal
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0012.iam$SBS-LAF-sa0017.iam$SBS-LAF-sa0017:1$Level-3$Phantom
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0020.iam$SBS-LAF-sa0012.iam$SBS-LAF-sa0012:1$Level-2$Phantom
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0013.iam$SBS-LAF-sa0020.iam$SBS-LAF-sa0020:1$Level-1$Normal
Parent of Parent$SBS-LAF-sa0013.iamSBS-LAF-sa0013.iam$SBS-LAF-p0026.ipt$SBS-LAF-p0026:1$Level-1$Reference
&lt;/PRE&gt;
&lt;P&gt;Thanks and regards,&lt;/P&gt;</description>
      <pubDate>Fri, 01 Mar 2019 09:46:41 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/to-retrieve-parent-parent-of-parent-etc-for-phantom-sub/m-p/8629781#M95115</guid>
      <dc:creator>chandra.shekar.g</dc:creator>
      <dc:date>2019-03-01T09:46:41Z</dc:date>
    </item>
    <item>
      <title>Re: To Retrieve Parent, Parent of Parent etc for phantom sub-assemblies</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/to-retrieve-parent-parent-of-parent-etc-for-phantom-sub/m-p/8630631#M95121</link>
      <description>&lt;P&gt;Thanks for the reply.&lt;/P&gt;
&lt;P&gt;A find the parents are the same for all the occurrences.&lt;/P&gt;
&lt;P&gt;I attached a simple fake-model &amp;nbsp;and the code revised to output what we are looking at.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Could you take a look at, please. Thanks.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Inventor Professional - 2018&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2019-03-01 08_2001.png" style="width: 884px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/608946i4CB8BAD0941624DD/image-size/large?v=v2&amp;amp;px=999" role="button" title="2019-03-01 08_2001.png" alt="2019-03-01 08_2001.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 01 Mar 2019 16:29:36 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/to-retrieve-parent-parent-of-parent-etc-for-phantom-sub/m-p/8630631#M95121</guid>
      <dc:creator>RoyWickrama_RWEI</dc:creator>
      <dc:date>2019-03-01T16:29:36Z</dc:date>
    </item>
    <item>
      <title>Re: To Retrieve Parent, Parent of Parent etc for phantom sub-assemblies</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/to-retrieve-parent-parent-of-parent-etc-for-phantom-sub/m-p/8633762#M95155</link>
      <description>&lt;P&gt;Hi Chandra Shekar;&lt;/P&gt;
&lt;P&gt;It is kind of tricky. I spent my whole week (without giving up) to get this around, because I really need it.&lt;/P&gt;
&lt;P&gt;Finally, my new thinking ended with success.&lt;/P&gt;
&lt;P&gt;Thanks you for your help: your help incorporated throughout.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 04 Mar 2019 06:59:47 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/to-retrieve-parent-parent-of-parent-etc-for-phantom-sub/m-p/8633762#M95155</guid>
      <dc:creator>RoyWickrama_RWEI</dc:creator>
      <dc:date>2019-03-04T06:59:47Z</dc:date>
    </item>
    <item>
      <title>Re: To Retrieve Parent, Parent of Parent etc for phantom sub-assemblies</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/to-retrieve-parent-parent-of-parent-etc-for-phantom-sub/m-p/8633767#M95157</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/2129088"&gt;@RoyWickrama_RWEI&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks for letting me know that you have found a solution for issue.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks and regards,&lt;/P&gt;</description>
      <pubDate>Mon, 04 Mar 2019 07:02:23 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/to-retrieve-parent-parent-of-parent-etc-for-phantom-sub/m-p/8633767#M95157</guid>
      <dc:creator>chandra.shekar.g</dc:creator>
      <dc:date>2019-03-04T07:02:23Z</dc:date>
    </item>
    <item>
      <title>Re: To Retrieve Parent, Parent of Parent etc for phantom sub-assemblies</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/to-retrieve-parent-parent-of-parent-etc-for-phantom-sub/m-p/8647202#M95392</link>
      <description>&lt;P&gt;Hi &lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/2129088"&gt;@RoyWickrama_RWEI&lt;/a&gt;&amp;nbsp;, after a while I think I have found another method for what you were looking for, and it seems quite simple, it is one of your rules to which I have added a small function&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN&gt;Function&lt;/SPAN&gt; &lt;SPAN&gt;FindParent&lt;/SPAN&gt;(&lt;SPAN&gt;Parent&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Document&lt;/SPAN&gt;) &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;	&lt;SPAN&gt;'Find real parent&lt;/SPAN&gt;
	&lt;SPAN&gt;Line1&lt;/SPAN&gt; :
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oBOMStructnumber&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;
	    &lt;SPAN&gt;oBOMStructnumber&lt;/SPAN&gt; = &lt;SPAN&gt;Parent&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;.&lt;SPAN&gt;BOMStructure&lt;/SPAN&gt;

		&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oBOMStructnumber&lt;/SPAN&gt; = 51971 &lt;SPAN&gt;Then&lt;/SPAN&gt;
			&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;parent2&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Document&lt;/SPAN&gt; = &lt;SPAN&gt;Parent&lt;/SPAN&gt;.&lt;SPAN&gt;ReferencingDocuments&lt;/SPAN&gt;.&lt;SPAN&gt;Item&lt;/SPAN&gt;(1)
			&lt;SPAN&gt;Parent&lt;/SPAN&gt;=&lt;SPAN&gt;parent2&lt;/SPAN&gt;
			&lt;SPAN&gt;GoTo&lt;/SPAN&gt; &lt;SPAN&gt;Line1&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;ParentName&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt; = &lt;SPAN&gt;Parent&lt;/SPAN&gt;.&lt;SPAN&gt;DisplayName&lt;/SPAN&gt;
	&lt;SPAN&gt;Return&lt;/SPAN&gt; &lt;SPAN&gt;ParentName&lt;/SPAN&gt;
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Function&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;with a loop&amp;nbsp; that returns the value of the real father, the one that is not phantom For each occurrence of the list of materials, I hope you understand and be useful to you, greetings.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Final Rule&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN&gt;Public&lt;/SPAN&gt; &lt;SPAN&gt;Class&lt;/SPAN&gt; &lt;SPAN&gt;RWEI_0007BOM&lt;/SPAN&gt;
	&lt;SPAN&gt;Shared&lt;/SPAN&gt; &lt;SPAN&gt;oTextSave&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt; = &lt;SPAN&gt;"C:\Users\Public\Documents\iLogicBuffer.txt"&lt;/SPAN&gt;
&lt;SPAN&gt;Sub&lt;/SPAN&gt; &lt;SPAN&gt;Main&lt;/SPAN&gt;
	&lt;SPAN&gt;'on error resume next&lt;/SPAN&gt;
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oAssy_ThisDoc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;AssemblyDocument&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;Document&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;iL_NO&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt; = &lt;SPAN&gt;"0002-BOM"&lt;/SPAN&gt;
	&lt;SPAN&gt;oDelete_ex_Notepad&lt;/SPAN&gt;(&lt;SPAN&gt;oTextSave&lt;/SPAN&gt;, &lt;SPAN&gt;iL_NO&lt;/SPAN&gt;)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;HL1_Prefix&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt; = &lt;SPAN&gt;"FILE REFERENCE TREE RAN FROM: "&lt;/SPAN&gt;
	&lt;SPAN&gt;oHL1&lt;/SPAN&gt; = &lt;SPAN&gt;HL1_Prefix&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;oDoc&lt;/SPAN&gt;.&lt;SPAN&gt;FullFileName&lt;/SPAN&gt;
	&lt;SPAN&gt;oWrite_HeaderLines&lt;/SPAN&gt;(&lt;SPAN&gt;oTextSave&lt;/SPAN&gt;, &lt;SPAN&gt;oHL1&lt;/SPAN&gt;)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;iL_Name&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt; = &lt;SPAN&gt;"All Occurrences with BOM Structure"&lt;/SPAN&gt;
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oHL2&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt; = &lt;SPAN&gt;"Rule "&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;iL_NO&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;": "&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;iL_Name&lt;/SPAN&gt;
	&lt;SPAN&gt;oWrite_HeaderLines&lt;/SPAN&gt;(&lt;SPAN&gt;oTextSave&lt;/SPAN&gt;, &lt;SPAN&gt;oHL2&lt;/SPAN&gt;)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oDashes&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;For&lt;/SPAN&gt; &lt;SPAN&gt;i&lt;/SPAN&gt; = 1 &lt;SPAN&gt;To&lt;/SPAN&gt; &lt;SPAN&gt;Len&lt;/SPAN&gt;(&lt;SPAN&gt;oHL2&lt;/SPAN&gt;)
	&lt;SPAN&gt;oDashes&lt;/SPAN&gt; = &lt;SPAN&gt;oDashes&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;"-"&lt;/SPAN&gt;
	&lt;SPAN&gt;Next&lt;/SPAN&gt; &lt;SPAN&gt;i&lt;/SPAN&gt;
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oHL3&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt; = &lt;SPAN&gt;oDashes&lt;/SPAN&gt;
	&lt;SPAN&gt;oWrite_HeaderLines&lt;/SPAN&gt;(&lt;SPAN&gt;oTextSave&lt;/SPAN&gt;, &lt;SPAN&gt;oHL3&lt;/SPAN&gt;)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oHL4&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;oWrite_HeaderLines&lt;/SPAN&gt;(&lt;SPAN&gt;oTextSave&lt;/SPAN&gt;, &lt;SPAN&gt;oHL4&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;oBOM&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;ActiveDocument&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;.&lt;SPAN&gt;BOM&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;oBOMView&lt;/SPAN&gt; = &lt;SPAN&gt;oBOM&lt;/SPAN&gt;.&lt;SPAN&gt;BOMViews&lt;/SPAN&gt;.&lt;SPAN&gt;Item&lt;/SPAN&gt;(1)&lt;SPAN&gt;'Accesing to Model data Column&lt;/SPAN&gt;


  &lt;SPAN&gt;Call&lt;/SPAN&gt; &lt;SPAN&gt;ListItems&lt;/SPAN&gt;(&lt;SPAN&gt;oBOMView&lt;/SPAN&gt;.&lt;SPAN&gt;BOMRows&lt;/SPAN&gt;, 0)
&lt;SPAN&gt;Process&lt;/SPAN&gt;.&lt;SPAN&gt;Start&lt;/SPAN&gt;(&lt;SPAN&gt;"Notepad.exe"&lt;/SPAN&gt;, &lt;SPAN&gt;oTextSave&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;ListItems&lt;/SPAN&gt;(&lt;SPAN&gt;Rows&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;BOMRowsEnumerator&lt;/SPAN&gt;, &lt;SPAN&gt;indent&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Integer&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;Rows&lt;/SPAN&gt;
  
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oBOMStructnumber&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;
	    &lt;SPAN&gt;oBOMStructnumber&lt;/SPAN&gt; = &lt;SPAN&gt;oBOMRow&lt;/SPAN&gt;.&lt;SPAN&gt;BOMStructure&lt;/SPAN&gt;
		&lt;SPAN&gt;Dim&lt;/SPAN&gt;  &lt;SPAN&gt;BOM_Structure&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;
		&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oBOMStructnumber&lt;/SPAN&gt; = 51969 &lt;SPAN&gt;Then&lt;/SPAN&gt; &lt;SPAN&gt;BOM_Structure&lt;/SPAN&gt; = &lt;SPAN&gt;"The Default Structure Type"&lt;/SPAN&gt; 
		&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oBOMStructnumber&lt;/SPAN&gt; = 51974 &lt;SPAN&gt;Then&lt;/SPAN&gt; &lt;SPAN&gt;BOM_Structure&lt;/SPAN&gt; = &lt;SPAN&gt;"The inseparable Structure Type"&lt;/SPAN&gt; 
		&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oBOMStructnumber&lt;/SPAN&gt; =  51970 &lt;SPAN&gt;Then&lt;/SPAN&gt; &lt;SPAN&gt;BOM_Structure&lt;/SPAN&gt; = &lt;SPAN&gt;"The normal Structure Type"&lt;/SPAN&gt; 
		&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oBOMStructnumber&lt;/SPAN&gt; = 51971 &lt;SPAN&gt;Then&lt;/SPAN&gt; &lt;SPAN&gt;BOM_Structure&lt;/SPAN&gt; = &lt;SPAN&gt;"The phantom Structure Type"&lt;/SPAN&gt; 
		&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oBOMStructnumber&lt;/SPAN&gt; =  51973 &lt;SPAN&gt;Then&lt;/SPAN&gt; &lt;SPAN&gt;BOM_Structure&lt;/SPAN&gt; = &lt;SPAN&gt;"The purchased Structure Type"&lt;/SPAN&gt; 
		&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oBOMStructnumber&lt;/SPAN&gt; = 51972 &lt;SPAN&gt;Then&lt;/SPAN&gt; &lt;SPAN&gt;BOM_Structure&lt;/SPAN&gt; = &lt;SPAN&gt;"reference Structure Type"&lt;/SPAN&gt; 
		&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oBOMStructnumber&lt;/SPAN&gt; = 51975 &lt;SPAN&gt;Then&lt;/SPAN&gt; &lt;SPAN&gt;BOM_Structure&lt;/SPAN&gt; = &lt;SPAN&gt;"The Structure Type varies amongst references"&lt;/SPAN&gt; 

		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oDef&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;
		&lt;SPAN&gt;oDef&lt;/SPAN&gt; = &lt;SPAN&gt;oBOMRow&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinitions&lt;/SPAN&gt;(1)
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oFFN_X&lt;/SPAN&gt;  &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;
		&lt;SPAN&gt;oFFN_X&lt;/SPAN&gt;  = &lt;SPAN&gt;oDef&lt;/SPAN&gt;.&lt;SPAN&gt;Document&lt;/SPAN&gt;.&lt;SPAN&gt;Displayname&lt;/SPAN&gt;
		
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oDocFile&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Document&lt;/SPAN&gt;
		&lt;SPAN&gt;oDocFile&lt;/SPAN&gt; = &lt;SPAN&gt;oDef&lt;/SPAN&gt;.&lt;SPAN&gt;Document&lt;/SPAN&gt;
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;Parent&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Document&lt;/SPAN&gt; = &lt;SPAN&gt;oDocFile&lt;/SPAN&gt;.&lt;SPAN&gt;ReferencingDocuments&lt;/SPAN&gt;.&lt;SPAN&gt;Item&lt;/SPAN&gt;(1) &lt;SPAN&gt;'First parent, check that is not phantom&lt;/SPAN&gt;
		
		
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;RealParent&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt; = &lt;SPAN&gt;FindParent&lt;/SPAN&gt;(&lt;SPAN&gt;Parent&lt;/SPAN&gt;) &lt;SPAN&gt;'Real parent is not phantom&lt;/SPAN&gt;

		
	    &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Not&lt;/SPAN&gt; &lt;SPAN&gt;oBOMRow&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;Call&lt;/SPAN&gt; &lt;SPAN&gt;ListItems&lt;/SPAN&gt;(&lt;SPAN&gt;oBOMRow&lt;/SPAN&gt;.&lt;SPAN&gt;ChildRows&lt;/SPAN&gt;, &lt;SPAN&gt;indent&lt;/SPAN&gt; + 1)
	    &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
	   	&lt;SPAN&gt;oName_Parent&lt;/SPAN&gt; = &lt;SPAN&gt;RealParent&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;"@"&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;BOM_Structure&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;"@"&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;oFFN_X&lt;/SPAN&gt;
		&lt;SPAN&gt;oWrite_Data&lt;/SPAN&gt;(&lt;SPAN&gt;oTextSave&lt;/SPAN&gt;, &lt;SPAN&gt;oName_Parent&lt;/SPAN&gt;)
    &lt;SPAN&gt;Next&lt;/SPAN&gt;

&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
  
 
&lt;SPAN&gt;Function&lt;/SPAN&gt; &lt;SPAN&gt;FindParent&lt;/SPAN&gt;(&lt;SPAN&gt;Parent&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Document&lt;/SPAN&gt;) &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;	&lt;SPAN&gt;'Find real parent&lt;/SPAN&gt;
	&lt;SPAN&gt;Line1&lt;/SPAN&gt; :
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oBOMStructnumber&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;
	    &lt;SPAN&gt;oBOMStructnumber&lt;/SPAN&gt; = &lt;SPAN&gt;Parent&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;.&lt;SPAN&gt;BOMStructure&lt;/SPAN&gt;

		&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oBOMStructnumber&lt;/SPAN&gt; = 51971 &lt;SPAN&gt;Then&lt;/SPAN&gt;
			&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;parent2&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Document&lt;/SPAN&gt; = &lt;SPAN&gt;Parent&lt;/SPAN&gt;.&lt;SPAN&gt;ReferencingDocuments&lt;/SPAN&gt;.&lt;SPAN&gt;Item&lt;/SPAN&gt;(1)
			&lt;SPAN&gt;Parent&lt;/SPAN&gt;=&lt;SPAN&gt;parent2&lt;/SPAN&gt;
			&lt;SPAN&gt;GoTo&lt;/SPAN&gt; &lt;SPAN&gt;Line1&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;ParentName&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt; = &lt;SPAN&gt;Parent&lt;/SPAN&gt;.&lt;SPAN&gt;DisplayName&lt;/SPAN&gt;
	&lt;SPAN&gt;Return&lt;/SPAN&gt; &lt;SPAN&gt;ParentName&lt;/SPAN&gt;
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Function&lt;/SPAN&gt;
  
	&lt;SPAN&gt;Sub&lt;/SPAN&gt; &lt;SPAN&gt;oWrite_HeaderLines&lt;/SPAN&gt;(&lt;SPAN&gt;oTextSave&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;, &lt;SPAN&gt;oHeaderLine&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;)
	&lt;SPAN&gt;oWrite&lt;/SPAN&gt; = &lt;SPAN&gt;System&lt;/SPAN&gt;.&lt;SPAN&gt;IO&lt;/SPAN&gt;.&lt;SPAN&gt;File&lt;/SPAN&gt;.&lt;SPAN&gt;AppendText&lt;/SPAN&gt;(&lt;SPAN&gt;oTextSave&lt;/SPAN&gt;)
	&lt;SPAN&gt;oWrite&lt;/SPAN&gt;.&lt;SPAN&gt;WriteLine&lt;/SPAN&gt;(&lt;SPAN&gt;oHeaderLine&lt;/SPAN&gt;)	
	&lt;SPAN&gt;oWrite&lt;/SPAN&gt;.&lt;SPAN&gt;Flush&lt;/SPAN&gt;()
	&lt;SPAN&gt;oWrite&lt;/SPAN&gt;.&lt;SPAN&gt;Close&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;oWrite_Data&lt;/SPAN&gt;(&lt;SPAN&gt;oTextSave&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;, &lt;SPAN&gt;oData&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;)
	&lt;SPAN&gt;oWrite&lt;/SPAN&gt; = &lt;SPAN&gt;System&lt;/SPAN&gt;.&lt;SPAN&gt;IO&lt;/SPAN&gt;.&lt;SPAN&gt;File&lt;/SPAN&gt;.&lt;SPAN&gt;AppendText&lt;/SPAN&gt;(&lt;SPAN&gt;oTextSave&lt;/SPAN&gt;)
	&lt;SPAN&gt;oWrite&lt;/SPAN&gt;.&lt;SPAN&gt;WriteLine&lt;/SPAN&gt;(&lt;SPAN&gt;oData&lt;/SPAN&gt;)	
	&lt;SPAN&gt;oWrite&lt;/SPAN&gt;.&lt;SPAN&gt;Flush&lt;/SPAN&gt;()
	&lt;SPAN&gt;oWrite&lt;/SPAN&gt;.&lt;SPAN&gt;Close&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;oDelete_ex_Notepad&lt;/SPAN&gt;(&lt;SPAN&gt;oTextSave&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;, &lt;SPAN&gt;iL_NO&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;String&lt;/SPAN&gt;)		&lt;SPAN&gt;'To delete oTextSave if existing.&lt;/SPAN&gt;
	&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;System&lt;/SPAN&gt;.&lt;SPAN&gt;IO&lt;/SPAN&gt;.&lt;SPAN&gt;File&lt;/SPAN&gt;.&lt;SPAN&gt;Exists&lt;/SPAN&gt;(&lt;SPAN&gt;oTextSave&lt;/SPAN&gt;) = &lt;SPAN&gt;True&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
	&lt;SPAN&gt;System&lt;/SPAN&gt;.&lt;SPAN&gt;IO&lt;/SPAN&gt;.&lt;SPAN&gt;File&lt;/SPAN&gt;.&lt;SPAN&gt;Delete&lt;/SPAN&gt;(&lt;SPAN&gt;oTextSave&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;Sub&lt;/SPAN&gt;
	
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Class&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;Please check it, Regards!!&lt;/P&gt;
&lt;P&gt;&lt;div class="video-embed-center video-embed"&gt;&lt;iframe class="embedly-embed" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FDJZM4m8k5Aw%3Ffeature%3Doembed&amp;amp;display_name=YouTube&amp;amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DDJZM4m8k5Aw&amp;amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FDJZM4m8k5Aw%2Fhqdefault.jpg&amp;amp;type=text%2Fhtml&amp;amp;schema=youtube" width="200" height="112" scrolling="no" title="Parent of Parent" frameborder="0" allow="autoplay; fullscreen; encrypted-media; picture-in-picture;" allowfullscreen="true"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 09 Mar 2019 11:33:51 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/to-retrieve-parent-parent-of-parent-etc-for-phantom-sub/m-p/8647202#M95392</guid>
      <dc:creator>Sergio.D.Suárez</dc:creator>
      <dc:date>2019-03-09T11:33:51Z</dc:date>
    </item>
  </channel>
</rss>

