<?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: Accessing the top level pattern name of an element that sits in a pattern within a pattern. in Inventor Programming - iLogic, Macros, AddIns &amp; Apprentice</title>
    <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/accessing-the-top-level-pattern-name-of-an-element-that-sits-in/m-p/11853390#M150636</link>
    <description>&lt;P&gt;Hello. You would need to loop through each occurrence in&amp;nbsp; the pattern. Heres an example&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oADoc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;AssemblyDocument&lt;/SPAN&gt; = &lt;SPAN&gt;ThisDoc&lt;/SPAN&gt;.&lt;SPAN&gt;Document&lt;/SPAN&gt;

&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oOccPat&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;OccurrencePattern&lt;/SPAN&gt;

&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oOccPat&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oADoc&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;.&lt;SPAN&gt;OccurrencePatterns&lt;/SPAN&gt;
	&lt;SPAN&gt;'top level patterns&lt;BR /&gt;&lt;/SPAN&gt;
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oOccPatEle&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;OccurrencePatternElement&lt;/SPAN&gt;
	&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oOccPatEle&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oOccPat&lt;/SPAN&gt;.&lt;SPAN&gt;OccurrencePatternElements&lt;/SPAN&gt;
		&lt;SPAN&gt;'pattern elements&lt;BR /&gt;&lt;/SPAN&gt;
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oOcc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;ComponentOccurrence&lt;/SPAN&gt;
		&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oOcc&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oOccPatEle&lt;/SPAN&gt;.&lt;SPAN&gt;Occurrences&lt;/SPAN&gt;
			&lt;SPAN&gt;'element components&lt;/SPAN&gt;

			&lt;SPAN&gt;'If criteria met&lt;/SPAN&gt;
			
			&lt;SPAN&gt;'if parent pattern is not top level pattern&lt;/SPAN&gt;
			&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Not&lt;/SPAN&gt; &lt;SPAN&gt;oOcc&lt;/SPAN&gt;.&lt;SPAN&gt;PatternElement&lt;/SPAN&gt;.&lt;SPAN&gt;Parent&lt;/SPAN&gt; &lt;SPAN&gt;Is&lt;/SPAN&gt; &lt;SPAN&gt;oOccPat&lt;/SPAN&gt;
				&lt;SPAN&gt;oOcc&lt;/SPAN&gt;.&lt;SPAN&gt;PatternElement&lt;/SPAN&gt;.&lt;SPAN&gt;Parent&lt;/SPAN&gt;.&lt;SPAN&gt;Suppress&lt;/SPAN&gt;
			&lt;SPAN&gt;Else&lt;/SPAN&gt;
				&lt;SPAN&gt;oOcc&lt;/SPAN&gt;.&lt;SPAN&gt;Suppress&lt;/SPAN&gt;
			&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
			
			&lt;SPAN&gt;'End If&lt;/SPAN&gt;
		&lt;SPAN&gt;Next&lt;/SPAN&gt;
	&lt;SPAN&gt;Next&lt;/SPAN&gt;
&lt;SPAN&gt;Next&lt;/SPAN&gt;&lt;/PRE&gt;</description>
    <pubDate>Tue, 28 Mar 2023 12:50:44 GMT</pubDate>
    <dc:creator>dalton98</dc:creator>
    <dc:date>2023-03-28T12:50:44Z</dc:date>
    <item>
      <title>Accessing the top level pattern name of an element that sits in a pattern within a pattern.</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/accessing-the-top-level-pattern-name-of-an-element-that-sits-in/m-p/11852947#M150627</link>
      <description>&lt;P&gt;Good day&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have iLogic code that loops through occurrences in my assembly and suppresses or un-suppresses them based on criteria. When I have an element within a pattern, I can access its parent pattern name and suppress it by using the following:&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;Component.IsActive(oOcc.PatternElement.Parent.Name) = False&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;But when I have a pattern of a pattern, and that element sits within the 'lower level' pattern, I can't use the same code. This code tries to suppress the lower-level pattern that sits within the top-level pattern and fails. So I need to access that top-level pattern name while looping to suppress it. But only if it is a multi-level pattern.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I found this post:&amp;nbsp;&lt;A href="https://forums.autodesk.com/t5/inventor-ilogic-and-vb-net-forum/pattern-of-a-pattern-using-ilogic/m-p/6347988/highlight/false#M64180" target="_blank"&gt;https://forums.autodesk.com/t5/inventor-ilogic-and-vb-net-forum/pattern-of-a-pattern-using-ilogic/m-p/6347988/highlight/false#M64180&lt;/A&gt;. But then I have to hardcode the parent pattern name, which I can't do.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Does anyone know how to do that?&lt;/P&gt;</description>
      <pubDate>Tue, 28 Mar 2023 10:39:35 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/accessing-the-top-level-pattern-name-of-an-element-that-sits-in/m-p/11852947#M150627</guid>
      <dc:creator>duans5FLJC</dc:creator>
      <dc:date>2023-03-28T10:39:35Z</dc:date>
    </item>
    <item>
      <title>Re: Accessing the top level pattern name of an element that sits in a pattern within a pattern.</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/accessing-the-top-level-pattern-name-of-an-element-that-sits-in/m-p/11853390#M150636</link>
      <description>&lt;P&gt;Hello. You would need to loop through each occurrence in&amp;nbsp; the pattern. Heres an example&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oADoc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;AssemblyDocument&lt;/SPAN&gt; = &lt;SPAN&gt;ThisDoc&lt;/SPAN&gt;.&lt;SPAN&gt;Document&lt;/SPAN&gt;

&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oOccPat&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;OccurrencePattern&lt;/SPAN&gt;

&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oOccPat&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oADoc&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;.&lt;SPAN&gt;OccurrencePatterns&lt;/SPAN&gt;
	&lt;SPAN&gt;'top level patterns&lt;BR /&gt;&lt;/SPAN&gt;
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oOccPatEle&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;OccurrencePatternElement&lt;/SPAN&gt;
	&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oOccPatEle&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oOccPat&lt;/SPAN&gt;.&lt;SPAN&gt;OccurrencePatternElements&lt;/SPAN&gt;
		&lt;SPAN&gt;'pattern elements&lt;BR /&gt;&lt;/SPAN&gt;
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oOcc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;ComponentOccurrence&lt;/SPAN&gt;
		&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oOcc&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oOccPatEle&lt;/SPAN&gt;.&lt;SPAN&gt;Occurrences&lt;/SPAN&gt;
			&lt;SPAN&gt;'element components&lt;/SPAN&gt;

			&lt;SPAN&gt;'If criteria met&lt;/SPAN&gt;
			
			&lt;SPAN&gt;'if parent pattern is not top level pattern&lt;/SPAN&gt;
			&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Not&lt;/SPAN&gt; &lt;SPAN&gt;oOcc&lt;/SPAN&gt;.&lt;SPAN&gt;PatternElement&lt;/SPAN&gt;.&lt;SPAN&gt;Parent&lt;/SPAN&gt; &lt;SPAN&gt;Is&lt;/SPAN&gt; &lt;SPAN&gt;oOccPat&lt;/SPAN&gt;
				&lt;SPAN&gt;oOcc&lt;/SPAN&gt;.&lt;SPAN&gt;PatternElement&lt;/SPAN&gt;.&lt;SPAN&gt;Parent&lt;/SPAN&gt;.&lt;SPAN&gt;Suppress&lt;/SPAN&gt;
			&lt;SPAN&gt;Else&lt;/SPAN&gt;
				&lt;SPAN&gt;oOcc&lt;/SPAN&gt;.&lt;SPAN&gt;Suppress&lt;/SPAN&gt;
			&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
			
			&lt;SPAN&gt;'End If&lt;/SPAN&gt;
		&lt;SPAN&gt;Next&lt;/SPAN&gt;
	&lt;SPAN&gt;Next&lt;/SPAN&gt;
&lt;SPAN&gt;Next&lt;/SPAN&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 28 Mar 2023 12:50:44 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/accessing-the-top-level-pattern-name-of-an-element-that-sits-in/m-p/11853390#M150636</guid>
      <dc:creator>dalton98</dc:creator>
      <dc:date>2023-03-28T12:50:44Z</dc:date>
    </item>
    <item>
      <title>Re: Accessing the top level pattern name of an element that sits in a pattern within a pattern.</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/accessing-the-top-level-pattern-name-of-an-element-that-sits-in/m-p/11853609#M150642</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/13694257"&gt;@duans5FLJC&lt;/a&gt;.&amp;nbsp; Here is one way to suppress the top level component pattern of a picked component that belongs to a lower level component pattern.&amp;nbsp; It may not be 100% error free and effective in every scenario, but it works in most simple scenarios, and is fairly easy to look at and understand.&lt;/P&gt;
&lt;LI-CODE lang="general"&gt;Sub Main
	oObj = ThisApplication.CommandManager.Pick(SelectionFilterEnum.kAssemblyOccurrenceFilter, "Select a Component.")
	If IsNothing(oObj) OrElse (TypeOf oObj Is ComponentOccurrence = False) Then Exit Sub
	Dim oOcc As ComponentOccurrence = oObj
	If oOcc.IsPatternElement Then
		SuppressTopOccPattern(oOcc.PatternElement)
	End If
End Sub

Sub SuppressTopOccPattern(oInputPE As OccurrencePatternElement)
	Dim oOP As OccurrencePattern = oInputPE.Parent
	If oOP.IsPatternElement Then
		SuppressTopOccPattern(oOP.PatternElement)
	Else
		oOP.Suppress
	End If
End Sub&lt;/LI-CODE&gt;
&lt;P&gt;If this solved your problem, or answered your question, please click &lt;SPAN&gt;&lt;STRONG&gt; ACCEPT SOLUTION &lt;/STRONG&gt;&lt;/SPAN&gt;.&lt;BR /&gt;Or, if this helped you, please click (LIKE or KUDOS) &lt;img class="lia-deferred-image lia-image-emoji" src="https://forums.autodesk.com/html/@7401B55A0A518861312A0F851CD29320/emoticons/1f44d.png" alt=":thumbs_up:" title=":thumbs_up:" /&gt;.&lt;/P&gt;</description>
      <pubDate>Tue, 28 Mar 2023 14:00:41 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/accessing-the-top-level-pattern-name-of-an-element-that-sits-in/m-p/11853609#M150642</guid>
      <dc:creator>WCrihfield</dc:creator>
      <dc:date>2023-03-28T14:00:41Z</dc:date>
    </item>
  </channel>
</rss>

