<?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: Perform a task, ignoring locked parts. in Inventor Programming - iLogic, Macros, AddIns &amp; Apprentice</title>
    <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/perform-a-task-ignoring-locked-parts/m-p/7526278#M76617</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is my complete Code to loop throught the assembly, only for files that are write enabled!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;Public Sub SaveAllDesign(oTopDoc As Document)
        Dim fioTop As System.IO.FileInfo = New System.IO.FileInfo(oTopDoc.FullFileName)
        If fioTop.IsReadOnly = False Then

            Dim oInvDoc As Document

            For Each oInvDoc In oTopDoc.ReferencedDocuments
                Dim fio As System.IO.FileInfo = New System.IO.FileInfo(oInvDoc.FullFileName)

                If fio.IsReadOnly = False Then
                    'MsgBox(oInvDoc.FullFileName)

                    oInvDoc.Save()

                    If oInvDoc.DocumentType = DocumentTypeEnum.kAssemblyDocumentObject Then
                        Try
                            SaveAllDesign(oInvDoc)
                        Catch ex As Exception

                        End Try
                    End If

                    If oInvDoc.DocumentType = DocumentTypeEnum.kPartDocumentObject Then

                        Try
                            SaveAllDesign(oInvDoc)
                        Catch ex As Exception

                        End Try

                    End If

                End If
            Next
        End If
    End Sub&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;</description>
    <pubDate>Wed, 08 Nov 2017 08:30:32 GMT</pubDate>
    <dc:creator>bradeneuropeArthur</dc:creator>
    <dc:date>2017-11-08T08:30:32Z</dc:date>
    <item>
      <title>Perform a task, ignoring locked parts.</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/perform-a-task-ignoring-locked-parts/m-p/7397456#M75144</link>
      <description>&lt;P&gt;I have a rule that looks through the parts in an assembly, and if it finds the rule its looking for, runs it in the part before moving on. Problem is it does it through locked parts too. How can I get it to skip the locked parts? Im guessing it has to do with adding the vault reference?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;SyntaxEditor Code Snippet&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;Sub&lt;/SPAN&gt; &lt;SPAN&gt;Main&lt;/SPAN&gt; &lt;SPAN&gt;RunPropertiesRule&lt;/SPAN&gt;&lt;SPAN&gt;()&lt;/SPAN&gt;


    &lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN&gt;Set reference to Document Counter&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oDocCount&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Integer&lt;/SPAN&gt;
    &lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN&gt;Set Document Counter to 0&lt;/SPAN&gt;
    &lt;SPAN&gt;oDocCount&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt;
    
    &lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN&gt; Get the active assembly document. &lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oAsmDoc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;AssemblyDocument&lt;/SPAN&gt;  
    &lt;SPAN&gt;oAsmDoc&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;Vault&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;AddReference&lt;/SPAN&gt; &lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;Autodesk.DataManagement.Addin.Vault.dll&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oVault&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Object&lt;/SPAN&gt;
    &lt;SPAN&gt;oVault&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;Vault&lt;/SPAN&gt;

    
    &lt;SPAN&gt;Auto&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;iLogicVb&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Automation&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;iLogicAuto&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Object&lt;/SPAN&gt;
    &lt;SPAN&gt;iLogicAuto&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;Auto&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;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;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oDoc&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oAsmDoc&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;AllReferencedDocuments&lt;/SPAN&gt;
    
        &lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN&gt;Increase oDocCount Counter by 1 within For loop&lt;/SPAN&gt;
        &lt;SPAN&gt;oDocCount&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;oDocCount&lt;/SPAN&gt; &lt;SPAN&gt;+&lt;/SPAN&gt; &lt;SPAN&gt;1&lt;/SPAN&gt;
        
            &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oDoc&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;DocumentType&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;DocumentTypeEnum&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;kPartDocumentObject&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
            
            &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;rules&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Object&lt;/SPAN&gt;
            &lt;SPAN&gt;rules&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;iLogicAuto&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;rules&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;'&lt;/SPAN&gt;&lt;SPAN&gt;Remove rules&lt;/SPAN&gt;
                &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Not&lt;/SPAN&gt; &lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;rules&lt;/SPAN&gt; &lt;SPAN&gt;Is&lt;/SPAN&gt; &lt;SPAN&gt;Nothing&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
                    &lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;rule&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;rules&lt;/SPAN&gt;
                    &lt;SPAN&gt;ruleName&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;rule&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Name&lt;/SPAN&gt;
                        &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Left&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;ruleName&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;ipr&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt; &lt;SPAN&gt;Or&lt;/SPAN&gt; &lt;SPAN&gt;Left&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;ruleName&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;Ipr&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
                            &lt;SPAN&gt;auto&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;RunRule&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;ruleName&lt;/SPAN&gt;&lt;SPAN&gt;)&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;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 Sub&lt;/SPAN&gt;
&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;In the code you can see where I tried to add the reference but it gives me an error "End of Statement Expected", It works fine without &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;    &lt;SPAN&gt;Vault&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;AddReference&lt;/SPAN&gt; &lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;Autodesk.DataManagement.Addin.Vault.dll&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oVault&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Object&lt;/SPAN&gt;
    &lt;SPAN&gt;oVault&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;Vault&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;Any suggestions?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 21 Sep 2017 10:13:58 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/perform-a-task-ignoring-locked-parts/m-p/7397456#M75144</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2017-09-21T10:13:58Z</dc:date>
    </item>
    <item>
      <title>Re: Perform a task, ignoring locked parts.</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/perform-a-task-ignoring-locked-parts/m-p/7397661#M75151</link>
      <description>&lt;P&gt;By a 'locked' part do you mean one that is read-only ?&lt;/P&gt;</description>
      <pubDate>Thu, 21 Sep 2017 11:43:06 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/perform-a-task-ignoring-locked-parts/m-p/7397661#M75151</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2017-09-21T11:43:06Z</dc:date>
    </item>
    <item>
      <title>Re: Perform a task, ignoring locked parts.</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/perform-a-task-ignoring-locked-parts/m-p/7400644#M75167</link>
      <description>&lt;P&gt;Yes, one that has been released in Vault.&lt;/P&gt;</description>
      <pubDate>Fri, 22 Sep 2017 07:02:29 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/perform-a-task-ignoring-locked-parts/m-p/7400644#M75167</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2017-09-22T07:02:29Z</dc:date>
    </item>
    <item>
      <title>Re: Perform a task, ignoring locked parts.</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/perform-a-task-ignoring-locked-parts/m-p/7401592#M75173</link>
      <description>&lt;P&gt;When you try to modify a part (by the macro), if you work with a Vault project you'll have the message to check it out. If it is already checked out, you can only modify it locally, you can not check it in. So even if your macro has modified the part, in Vault the part is not modified. Finally, you waste time to modify parts you cannot check in, but your Vault part is not modified.&lt;/P&gt;</description>
      <pubDate>Fri, 22 Sep 2017 13:42:01 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/perform-a-task-ignoring-locked-parts/m-p/7401592#M75173</guid>
      <dc:creator>TONELLAL</dc:creator>
      <dc:date>2017-09-22T13:42:01Z</dc:date>
    </item>
    <item>
      <title>Re: Perform a task, ignoring locked parts.</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/perform-a-task-ignoring-locked-parts/m-p/7521856#M76523</link>
      <description>Hi,&lt;BR /&gt;&lt;BR /&gt;Use the fileinfo object file readonly= true or false to slip the task. Like:&lt;BR /&gt;&lt;BR /&gt;Dim fio as fileinfo()&lt;BR /&gt;If fio.readonly = false&lt;BR /&gt;&lt;BR /&gt;Do the task&lt;BR /&gt;&lt;BR /&gt;End if</description>
      <pubDate>Mon, 06 Nov 2017 22:13:00 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/perform-a-task-ignoring-locked-parts/m-p/7521856#M76523</guid>
      <dc:creator>bradeneuropeArthur</dc:creator>
      <dc:date>2017-11-06T22:13:00Z</dc:date>
    </item>
    <item>
      <title>Re: Perform a task, ignoring locked parts.</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/perform-a-task-ignoring-locked-parts/m-p/7526278#M76617</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is my complete Code to loop throught the assembly, only for files that are write enabled!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;Public Sub SaveAllDesign(oTopDoc As Document)
        Dim fioTop As System.IO.FileInfo = New System.IO.FileInfo(oTopDoc.FullFileName)
        If fioTop.IsReadOnly = False Then

            Dim oInvDoc As Document

            For Each oInvDoc In oTopDoc.ReferencedDocuments
                Dim fio As System.IO.FileInfo = New System.IO.FileInfo(oInvDoc.FullFileName)

                If fio.IsReadOnly = False Then
                    'MsgBox(oInvDoc.FullFileName)

                    oInvDoc.Save()

                    If oInvDoc.DocumentType = DocumentTypeEnum.kAssemblyDocumentObject Then
                        Try
                            SaveAllDesign(oInvDoc)
                        Catch ex As Exception

                        End Try
                    End If

                    If oInvDoc.DocumentType = DocumentTypeEnum.kPartDocumentObject Then

                        Try
                            SaveAllDesign(oInvDoc)
                        Catch ex As Exception

                        End Try

                    End If

                End If
            Next
        End If
    End Sub&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;</description>
      <pubDate>Wed, 08 Nov 2017 08:30:32 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/perform-a-task-ignoring-locked-parts/m-p/7526278#M76617</guid>
      <dc:creator>bradeneuropeArthur</dc:creator>
      <dc:date>2017-11-08T08:30:32Z</dc:date>
    </item>
  </channel>
</rss>

