<?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: Pattern of a pattern using ilogic in Inventor Programming - iLogic, Macros, AddIns &amp; Apprentice</title>
    <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/pattern-of-a-pattern-using-ilogic/m-p/6347988#M64175</link>
    <description>&lt;P&gt;Hi, you can try this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;Dim PatternName As String = "&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;Component Pattern 1:1&lt;/STRONG&gt;&lt;/FONT&gt;" &lt;FONT color="#0000FF"&gt;&lt;STRONG&gt;' This is the Pattern you want to search for&lt;/STRONG&gt;&lt;/FONT&gt;
Dim OldFile As String = "&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;MyFile1&lt;/STRONG&gt;&lt;/FONT&gt;"                   &lt;FONT color="#0000FF"&gt;&lt;STRONG&gt;' This is the part you want to replace, without extension&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;Dim NewFile As String = "&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;C:/MyPath/MyFile2.ipt&lt;/STRONG&gt;&lt;/FONT&gt;"     &lt;FONT color="#0000FF"&gt;&lt;STRONG&gt;' This is the replacing part, full path&lt;/STRONG&gt;&lt;/FONT&gt;

Dim oDoc As Document = ThisApplication.ActiveDocument
Dim oOcc As ComponentOccurrence
For Each oOcc In oDoc.ComponentDefinition.Occurrences
    Dim oName As String = oOcc.Name&lt;BR /&gt;    Dim FNP As Integer = InStrRev(oName, ":", -1)&lt;BR /&gt;    oName = Left(oName, FNP - 1)&lt;BR /&gt;    If Not oName = OldFile Then Continue For&lt;BR /&gt;    Try
        If Not oOcc.PatternElement.Type.ToString = "kOccurrencePatternElementObject" Then Continue For
    Catch
        Continue For
    End Try
    Dim oElement As OccurrencePatternElement = oOcc.PatternElement
    Dim oParent As Object = oElement.Parent
    If oParent.Name = PatternName Then
        oOcc.Replace(NewFile, False) &lt;FONT color="#0000FF"&gt;&lt;STRONG&gt;' False to not replace all occurrences&lt;/STRONG&gt;&lt;/FONT&gt;
    End If
Next&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 25 May 2016 10:42:04 GMT</pubDate>
    <dc:creator>Owner2229</dc:creator>
    <dc:date>2016-05-25T10:42:04Z</dc:date>
    <item>
      <title>Pattern of a pattern using ilogic</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/pattern-of-a-pattern-using-ilogic/m-p/6347935#M64172</link>
      <description>&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a bolt which has been assembled 3 times in an assy. Then this bolt is patterned around the axis of the part using circular pattern command. Let's call this pattern A. So now, Pattern A has 2 instances Element 1 and Element 2 and each instance have 3 bolts in it.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Pattern A is again patterned "n" no of times around another axis using circular pattern command. So now, pattern A is sitting inside another pattern. Let's call it Pattern B.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So Pattern B is the top level pattern which contains pattern A as its instances "n" no of times. Pattern A&amp;nbsp;then contains 2 instance as given above. I also have same bolt existing in the model tree outisde pattern B.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I need iLogic code to do component replace on the bolt inside pattern B. The code should replace all instaces of the bolts but only inside the pattern B. Any bolt existing outside pattern B should remain unchanged.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can anyone help with this please? I have searched internet to find something similar but no luck.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in advance.&lt;/P&gt;</description>
      <pubDate>Wed, 25 May 2016 09:45:24 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/pattern-of-a-pattern-using-ilogic/m-p/6347935#M64172</guid>
      <dc:creator>Wind_Talker</dc:creator>
      <dc:date>2016-05-25T09:45:24Z</dc:date>
    </item>
    <item>
      <title>Re: Pattern of a pattern using ilogic</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/pattern-of-a-pattern-using-ilogic/m-p/6347988#M64175</link>
      <description>&lt;P&gt;Hi, you can try this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;Dim PatternName As String = "&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;Component Pattern 1:1&lt;/STRONG&gt;&lt;/FONT&gt;" &lt;FONT color="#0000FF"&gt;&lt;STRONG&gt;' This is the Pattern you want to search for&lt;/STRONG&gt;&lt;/FONT&gt;
Dim OldFile As String = "&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;MyFile1&lt;/STRONG&gt;&lt;/FONT&gt;"                   &lt;FONT color="#0000FF"&gt;&lt;STRONG&gt;' This is the part you want to replace, without extension&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;Dim NewFile As String = "&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;C:/MyPath/MyFile2.ipt&lt;/STRONG&gt;&lt;/FONT&gt;"     &lt;FONT color="#0000FF"&gt;&lt;STRONG&gt;' This is the replacing part, full path&lt;/STRONG&gt;&lt;/FONT&gt;

Dim oDoc As Document = ThisApplication.ActiveDocument
Dim oOcc As ComponentOccurrence
For Each oOcc In oDoc.ComponentDefinition.Occurrences
    Dim oName As String = oOcc.Name&lt;BR /&gt;    Dim FNP As Integer = InStrRev(oName, ":", -1)&lt;BR /&gt;    oName = Left(oName, FNP - 1)&lt;BR /&gt;    If Not oName = OldFile Then Continue For&lt;BR /&gt;    Try
        If Not oOcc.PatternElement.Type.ToString = "kOccurrencePatternElementObject" Then Continue For
    Catch
        Continue For
    End Try
    Dim oElement As OccurrencePatternElement = oOcc.PatternElement
    Dim oParent As Object = oElement.Parent
    If oParent.Name = PatternName Then
        oOcc.Replace(NewFile, False) &lt;FONT color="#0000FF"&gt;&lt;STRONG&gt;' False to not replace all occurrences&lt;/STRONG&gt;&lt;/FONT&gt;
    End If
Next&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 25 May 2016 10:42:04 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/pattern-of-a-pattern-using-ilogic/m-p/6347988#M64175</guid>
      <dc:creator>Owner2229</dc:creator>
      <dc:date>2016-05-25T10:42:04Z</dc:date>
    </item>
    <item>
      <title>Re: Pattern of a pattern using ilogic</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/pattern-of-a-pattern-using-ilogic/m-p/6348111#M64177</link>
      <description>&lt;P&gt;Hi Mike,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for your code. When using it, following line give me an error.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;oName&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;Left&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;oName&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;FNP&lt;/SPAN&gt; &lt;SPAN&gt;-&lt;/SPAN&gt; &lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;The error is&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Argument 'Length' must be greater or equal to zero.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My guess is this is happening because I am not using default inventor names for bolts. Rather I am using my own defined names as "BR BOLT 1" "BR BOLT 2" and "BR BOLT 3".&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any idea?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;regards&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 25 May 2016 11:59:49 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/pattern-of-a-pattern-using-ilogic/m-p/6348111#M64177</guid>
      <dc:creator>Wind_Talker</dc:creator>
      <dc:date>2016-05-25T11:59:49Z</dc:date>
    </item>
    <item>
      <title>Re: Pattern of a pattern using ilogic</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/pattern-of-a-pattern-using-ilogic/m-p/6348232#M64180</link>
      <description>&lt;P&gt;I have come up with the following code which works fine but I hate the fact that I have to hard code the names of each parent bolt in component.replace command. See the code below.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&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;=&lt;/SPAN&gt; &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;ActiveDocument&lt;/SPAN&gt;
 
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oPattern&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;OccurrencePattern&lt;/SPAN&gt;
    &lt;SPAN&gt;oPattern&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;oDoc&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;OccurrencePatterns&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Item&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;BR STRING FASTENER SET&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;
    
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oElement&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;OccurrencePatternElement&lt;/SPAN&gt;
    &lt;SPAN&gt;oElements&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;oPattern&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;OccurrencePatternElements&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; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;1&lt;/SPAN&gt; &lt;SPAN&gt;To&lt;/SPAN&gt; &lt;SPAN&gt;oElements&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Count&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;OCCS&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;OccurrencePatternElement&lt;/SPAN&gt;
        &lt;SPAN&gt;OCCS&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;oElements&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;i&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Components&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;OccurrencePatternElements&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;
        
    &lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;OCCS&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oElements&lt;/SPAN&gt;
        &lt;SPAN&gt;Try&lt;/SPAN&gt;
            &lt;SPAN&gt;Component&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Replace&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;BR BOLT 1&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"File name to replace with including path"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;False&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;
            &lt;SPAN&gt;Component&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Replace&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;BR BOLT 2&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;SPAN&gt;"File name to replace with including path"&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;False&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;
            &lt;SPAN&gt;Component&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Replace&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;BR BOLT 3&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;SPAN&gt;"File name to replace with including path"&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;False&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;
        &lt;SPAN&gt;Catch&lt;/SPAN&gt;
            'some code here&lt;BR /&gt;        &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Try&lt;/SPAN&gt;
    &lt;SPAN&gt;Next&lt;/SPAN&gt;
&lt;SPAN&gt;Next&lt;/SPAN&gt;

&lt;SPAN&gt;InventorVb&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;DocumentUpdate&lt;/SPAN&gt;&lt;SPAN&gt;()&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As I understand, this code is replacing only the parent or master component. The rest of the occurrances are replaced or updated due to fact that they are the pattern of this master component. In this case the master components are 3 bolts.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Anyway it works!!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Cheers&lt;/P&gt;</description>
      <pubDate>Wed, 25 May 2016 12:49:46 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/pattern-of-a-pattern-using-ilogic/m-p/6348232#M64180</guid>
      <dc:creator>Wind_Talker</dc:creator>
      <dc:date>2016-05-25T12:49:46Z</dc:date>
    </item>
    <item>
      <title>Re: Pattern of a pattern using ilogic</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/pattern-of-a-pattern-using-ilogic/m-p/11853053#M150630</link>
      <description>&lt;P&gt;Is there a way to not have to hard code the pattern name? So that I can loop through occurrences in an assembly and suppress that "top-level" pattern.&lt;/P&gt;</description>
      <pubDate>Tue, 28 Mar 2023 10:48:00 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/pattern-of-a-pattern-using-ilogic/m-p/11853053#M150630</guid>
      <dc:creator>duans5FLJC</dc:creator>
      <dc:date>2023-03-28T10:48:00Z</dc:date>
    </item>
  </channel>
</rss>

