This processes:
Sub Main
Dim oDoc As Inventor.Document
' oDoc = ThisApplication.ActiveDocument
'check for folder, create it if it does not exist
If Not System.IO.Directory.Exists("C:\TEMP") Then
System.IO.Directory.CreateDirectory("C:\TEMP")
End If
Dim oReport As String
oReport = "C:\TEMP\iLogic Files Report.txt"
'check for file, create it if it does not exist
If System.IO.File.Exists(oReport) Then
'do nothing
Else
Call Create_Report (oReport)
End If
Dim oNVM As NameValueMap
oNVM = ThisApplication.TransientObjects.CreateNameValueMap
i=0
For Each oItem In MultiValue.List("Part_Files_List")
'open the indexed file
Try
invDoc = ThisApplication.Documents.OpenWithOptions(MultiValue.List("Part_Files_List").Item(i), oNVM, False)
Trace.WriteLine(MultiValue.List("Part_Files_List").Item(i), "iLogic") 'debug
Catch
GoTo NextItem
End Try
'write to staus bar
ThisApplication.StatusBarText = MultiValue.List("Part_Files_List").Item(i)
Call Check_For_iLogic (oReport, invDoc)
i=i+1
If invDoc.FullFileName <> ThisDoc.Document.FullFileName Then
Try
invDoc.Close 'close the file
Catch
End Try
Else
End If
NextItem:
Next
']
MessageBox.Show("Batch processing files is complete.", _
"iLogic",MessageBoxButtons.OK,MessageBoxIcon.Information)
Process.Start(oReport)
End Sub
Sub Check_For_iLogic (oReport As String, oDoc As Document)
Auto = iLogicVb.Automation
Dim iLogicAuto As Object
iLogicAuto = Auto
'Dim oDoc As Document
'oDoc = ThisApplication.ActiveEditDocument
'get collection of rules
Dim rules As Object
rules = iLogicAuto.rules(oDoc)
'check for rules in the file
If Not (rules Is Nothing) Then
Call Write_To_Report (oReport, oDoc)
End If
End Sub
Sub Create_Report (oReport As String)
sDots = "....................."
Dim oStreamWriter As System.IO.StreamWriter
oStreamWriter = IO.File.CreateText(oReport)
oStreamWriter.WriteLine("Report created: " & vbTab & Now() )
oStreamWriter.WriteLine(vbTab & vbTab & vbTab & "Files that contain iLogic Rules")
oStreamWriter.WriteLine(sDots & vbTab & sDots & sDots )
oStreamWriter.Close()
End Sub
Sub Write_To_Report (oReport As String, oDoc As Document)
'oDocName = ThisApplication.ActiveEditDocument.FullFileName
oDocName = oDoc.FullFileName
sDots = "....................."
Dim oStreamWriter As System.IO.StreamWriter
oStreamWriter = IO.File.AppendText(oReport)
oStreamWriter.WriteLine(oDocName)
oStreamWriter.Flush()
oStreamWriter.Close()
End Sub