'document.subtype list for Inventor Pro 2021 'Parts: 'Normal Part = "Autodesk Inventor Part" = "4D29B490-49B2-11D0-93C3-7E0706000000" 'SheetMetal Part = "Autodesk Inventor Sheet Metal Part" = "9C464203-9BAE-11D3-8BAD-0060B0CE6BB4" 'Gereric Proxy = "Autodesk Inventor Generic Proxy Part" = "92055419-B3FA-11D3-A479-00C04F6B9531" 'Compatibility Proxy = "Autodesk Inventor Compatibility Proxy Part" = "9C464204-9BAE-11D3-8BAD-0060B0CE6BB4" 'Catalog Proxy = "Autodesk Inventor Catalog Proxy Part" = "9C88D3AF-C3EB-11D3-B79E-0060B0F159EF" 'Molded Part = "Autodesk Inventor Molded Part Document" = "4D8D80D4-F5B0-4460-8CEA-4CD222684469" 'Assemblies: 'Normal Assembly = "Autodesk Inventor Assembly" = "E60F81E1-49B3-11D0-93C3-7E0706000000" 'Weldment Assembly = "Autodesk Inventor Weldment" = "28EC8354-9024-440F-A8A2-0E0E55D635B0" 'DrawingDocument = "Autodesk Inventor Drawing" = "BBF9FDF1-52DC-11D0-8C04-0800090BE8EC" 'Design Element = "Autodesk Inventor iFeature" = "62FBB030-24C7-11D3-B78D-0060B0F159EF" 'Presentations: 'Normal Presentation = "Autodesk Inventor Presentation" = "76283A80-50DD-11D3-A7E3-00C04F79D7BC" 'Composite Presentation = "Autodesk Inventor Composite Presentation" = "A2B4C17D-F0D2-4C0F-9799-DD5F71DFB291" 'Design View Document = "Autodesk Inventor Design View" = "81B95C5D-8E31-4F65-9790-CCF6ECABD141" Imports System Sub Main() Logger.Info("❍︎❍︎❍︎❍︎ [ START EXPORT PROPERTY LOGISTIC ]") 'Dim sourceFolder As String = "" 'ThisDoc.Document.FullFileName 'keep trailing slash!!!!! 'Dim defaultsourceFolder As String ="" '"C:\Users\Cesq\OneDrive - adhox.it\Operamed 2021\OM_Generator_2021D\Templates\Template Rivestimento\OM_L01_Pannello_Lamiera_Standard\" 'keep trailing slash!!!!! Dim defaultsourceFolder As String = "Input" Dim defaultDestinationFolder As String = "Destination" 'Dim sourceFolder As String = InputBox("Inserisci il percorso della cartella sorgente contenente tutti i dxf, ", "[OM COPYDXF] - COPYDXF Source Folder", defaultsourceFolder) Dim sourceFolder As String = "\\gob-fs02\archivi\Archivio Operamed\Doc. Tecnica\BIM\700_R&S\08_Nuovo processo Revit-Inventor\_Revit\Test Add-in 221004\Output_Modelli\" 'Dim destinationFolder As String = InputBox("Inserisci il percorso della cartella destinazione, ", "[OM COPYDXF] - COPYDXF Destination Folder", defaultDestinationFolder) 'keep trailing slash!!!!! 'If sourceFolder = vbCancel Or destinationFolder = vbCancel Then ' MsgBox("Esecuzione terminata dall'utente", "OM COPYDXF - Copia terminata dall'utente") ' Return 'End If If sourceFolder = "" Then MsgBox("Mi dispiace. Sembra tu abbia inserito un percorso vuoto. Controlla meglio!", "OM COPYDXF - Errore nelle stringhe di input") Return End If 'Dim destinationFolder As String = InputBox("Inserisci il percorso della cartella di destinazione dove vuoi che siano salvati tutti i dxf, ", "[OM COPYDXF] - COPYDXF Destination Folder", defaultdestinationFolder) logger.info("Destination Folder = " & destinationFolder) Dim iamResults As String iamResults = CreateObject("WScript.Shell").Exec("CMD /C DIR """ & sourceFolder & "*.iam*"" /S /B").StdOut.ReadAll 'results = CreateObject("WScript.Shell").Exec("CMD /C DIR """ & sourceFolder & "*.dxf*"" /S /B /A:-D").StdOut.ReadAll 'logger.info("Risultato di quello che è inserito = " & iamResults) Dim iptResults As String iptResults = CreateObject("WScript.Shell").Exec("CMD /C DIR """ & sourceFolder & "*.ipt*"" /B /A:-D").StdOut.ReadAll 'results = CreateObject("WScript.Shell").Exec("CMD /C DIR """ & sourceFolder & "*.dxf*"" /S /B /A:-D").StdOut.ReadAll 'logger.info("Risultato di quello che è inserito = " & iptResults) Dim iam_files_list As String() = iamResults.Split(New String() {vbCr, vbLf}, StringSplitOptions.RemoveEmptyEntries) Dim ipt_files_list As String() = iptResults.Split(New String() {vbCr, vbLf}, StringSplitOptions.RemoveEmptyEntries) 'If Not System.IO.Directory.Exists(destinationFolder) Then ' Logger.Info("❍︎❍︎❍︎❍︎ [ Cartella Output Modelli Inesistente ] ") ' System.IO.Directory.CreateDirectory(destinationFolder) ' Logger.Info("❍︎❍︎❍︎❍︎ [ Creata Cartella ] " & destinationFolder) 'End If 'Leggo iProperties del modello Dim counter = 0 For Each file In iam_files_list counter = counter + 1 Dim nome_file = System.IO.Path.GetFileName(file) if CStr(Right(file, 3)) <> "lck" Then Logger.Info(counter & " " & file) 'True is visible, false for invisible Logger.Info(counter & " " & sourceFolder & nome_file) 'True is visible, false for invisible Logger.Info(counter & " " & destinationFolder & nome_file) End If Call AddComponent(file) dim Codice as String Codice= iproperties.value(nome_file,"Custom","PR_Codice") logger.info(" Codice della parte : " & Codice) Call DeleteComponent() Logger.info ("Passa al nuovo elemento") Next ' Logger.info("--------------------------------------------------------------------") ' Logger.info("-------------------- START COPY DXF -------------------------") ' Logger.info("--------------------------------------------------------------------") ' ' counter = 0 ' For Each file In files_list ' Dim nome_file = System.IO.Path.GetFileName(file) ' if CStr(Right(file, 3)) <> "lck" Then ' counter = counter + 1 ' Logger.Info(counter & " " & file) 'True is visible, false for invisible ' Logger.Info(counter & " " & sourceFolder & nome_file) 'True is visible, false for invisible ' Logger.Info(counter & " " & destinationFolder & nome_file) ' ThisApplication.FileManager.FileSystemObject.copyFile(file, destinationFolder & nome_file, false) ' copy in new folder; set to True to overwrite ' Logger.info("----") ' End If ' Next ' 'Beep 'Logger.Info("❍︎❍︎❍︎❍︎ [ END COPY DXF ]") End Sub Sub ReadProp(file) dim Codice as string Codice = iproperties.Value(file, "Custom", "PR_Codice") Logger.info( "Codice = " & Codice) End Sub Sub AddComponent(file) 'Logger.Info("⃝⃝⃝⃝ [ Carico file da ] " & path) Dim path as string = file Dim oAsmCompDef As AssemblyComponentDefinition oAsmCompDef = ThisApplication.ActiveDocument.ComponentDefinition Dim oTG As TransientGeometry oTG = ThisApplication.TransientGeometry Dim oMatrix As Matrix oMatrix = oTG.CreateMatrix Dim oOccurrence As ComponentOccurrence oOccurrence = oAsmCompDef.Occurrences.Add(path, oMatrix) oOccurrence.Grounded = False For Each o0cc In oAsmCompDef.Occurrences Logger.Info("⃝⃝⃝⃝ [ Inserito come " & o0cc.Name & " ]") ' Dim oLeafOccs As ComponentOccurrencesEnumerator = oAsmCompDef.Occurrences.AllLeafOccurrences ' Logger.Info("⃝⃝⃝⃝ [ Formato da ]") ' For Each o1cc As ComponentOccurrence In oLeafOccs ' Logger.Info("⃝⃝⃝⃝ -" & o1cc.Name) ' Next Next End Sub Sub DeleteComponent() Dim oAsmCompDef As AssemblyComponentDefinition = ThisApplication.ActiveDocument.ComponentDefinition Dim oOcc As ComponentOccurrence 'Dim oOcc As ComponentOccurrence = oAsmCompDef.Occurrences.Add(path, oMatrix) 'oOcc.Grounded = False For Each oOcc In oAsmCompDef.Occurrences If oOcc.DefinitionDocumentType = kAssemblyDocumentObject Then Logger.Info("⃝⃝⃝⃝ [ Rimozione assieme " & oOcc.Name & " ]") oOcc.Delete() Logger.Info("⃝⃝⃝⃝ [ Fine rimozione dell'elemento " & oOcc.Name & " ]") End If 'Try ' oOcc.Delete() ' Logger.Info("⃝⃝⃝⃝ [ Rimozione elemento in corso " & oOcc.Name & " ]") 'Catch ' Logger.Info("◉◉◉◉ [ Rimozione fallita dell'elemento " & oOcc.Name & " ]") 'Finally ' Logger.Info("⃝⃝⃝⃝ [ Fine rimozione dell'elemento " & oOcc.Name & " ]") 'End Try Next End Sub