BOM EXPORT | EACH ASSEMBLY IN A CSV

BOM EXPORT | EACH ASSEMBLY IN A CSV

tpascual
Contributor Contributor
923 Views
6 Replies
Message 1 of 7

BOM EXPORT | EACH ASSEMBLY IN A CSV

tpascual
Contributor
Contributor

Hi Sirs,

Any idea about how to export BOM, but create a new csv for each assembly in the structure?

Of course via API.

Thanks,

0 Likes
924 Views
6 Replies
Replies (6)
Message 2 of 7

chandra.shekar.g
Autodesk Support
Autodesk Support

Hi tomas,

 

Please find the following code to export BOM in csv

 

    Dim oDoc As AssemblyDocument
    Set oDoc = ThisApplication.ActiveDocument

    ' Set a reference to the BOM
    Dim oBOM As BOM
    Set oBOM = oDoc.ComponentDefinition.BOM
    
    ' Set the structured view to 'all levels'
    oBOM.StructuredViewFirstLevelOnly = False

    ' Make sure that the structured view is enabled.
    oBOM.StructuredViewEnabled = True

    ' Set a reference to the "Structured" BOMView
    Dim oStructuredBOMView As BOMView
    Set oStructuredBOMView = oBOM.BOMViews.Item("Structured")
    
    ' Export the BOM view to an Excel file
    oStructuredBOMView.Export "C:\Temp\StructuredBOM.csv", kTextFileCommaDelimitedFormat

Please free to contact if there is any doubt.


CHANDRA SHEKAR G
Developer Advocate
Autodesk Developer Network



0 Likes
Message 3 of 7

MechMachineMan
Advisor
Advisor

vb.net (to use as a rule):

Sub Main()
Dim oDoc As Document
oDoc = ThisApplication.ActiveDocument

For Each oSubDoc in oDoc.AllReferencedDocuments
If oSubDoc.DocumentType = kAssemblyDocumentObject Then
Call ExportDocStructBOM(oSubDoc)
End if
Next

MsgBox("Rule Complete!")
End Sub

Sub ExportDocStructBOM(oDoc As Document)
Dim oBOM As BOM oBOM = oDoc.ComponentDefinition.BOM oBOM.StructuredViewFirstLevelOnly = False oBOM.StructuredViewEnabled = True Dim oStructuredBOMView As BOMView oStructuredBOMView = oBOM.BOMViews.Item("Structured") oStructuredBOMView.Export("C:\Temp\StructuredBOM.csv", kTextFileCommaDelimitedFormat)
End Sub

 

vba:

Sub Main()
Dim oDoc As Document
Set oDoc = ThisApplication.ActiveDocument

For Each oSubDoc in oDoc.AllReferencedDocuments
If oSubDoc.DocumentType = kAssemblyDocumentObject Then
Call ExportDocStructBOM(oSubDoc)
End if
Next

Call MsgBox("Rule Complete!")
End Sub

Sub ExportDocStructBOM(oDoc As Document)
Dim oBOM As BOM Set oBOM = oDoc.ComponentDefinition.BOM oBOM.StructuredViewFirstLevelOnly = False oBOM.StructuredViewEnabled = True Dim oStructuredBOMView As BOMView Set oStructuredBOMView = oBOM.BOMViews.Item("Structured") Call oStructuredBOMView.Export("C:\Temp\StructuredBOM.csv", kTextFileCommaDelimitedFormat)
End Sub 

 


--------------------------------------
Did you find this reply helpful ? If so please use the 'Accept as Solution' or 'Like' button below.

Justin K
Inventor 2018.2.3, Build 227 | Excel 2013+ VBA
ERP/CAD Communication | Custom Scripting
Machine Design | Process Optimization


iLogic/Inventor API: Autodesk Online Help | API Shortcut In Google Chrome | iLogic API Documentation
Vb.Net/VBA Programming: MSDN | Stackoverflow | Excel Object Model
Inventor API/VBA/Vb.Net Learning Resources: Forum Thread

Sample Solutions:Debugging in iLogic ( and Batch PDF Export Sample ) | API HasSaveCopyAs Issues |
BOM Export & Column Reorder | Reorient Skewed Part | Add Internal Profile Dogbones |
Run iLogic From VBA | Batch File Renaming| Continuous Pick/Rename Objects

Local Help: %PUBLIC%\Documents\Autodesk\Inventor 2018\Local Help

Ideas: Dockable/Customizable Property Browser | Section Line API/Thread Feature in Assembly/PartsList API Static Cells | Fourth BOM Type
0 Likes
Message 4 of 7

tpascual
Contributor
Contributor
Hi Chandra,
Thanks for your response, I have tried yet this code, but what I mean is to export each assembly in the structure to one csv.
Export first level, and if exist some assembly export too but in a different csv.
I'm now exporting first level into a csv.
Thanks,
0 Likes
Message 5 of 7

chandra.shekar.g
Autodesk Support
Autodesk Support

Hi Tomas,

 

Please find the updated code to export BOM in different csv file for each assembly.

 

 

Sub Main()
    Dim oDoc As Document
    Set oDoc = ThisApplication.ActiveDocument
    
    Call ExportDocStructBOM(oDoc)
    
    Dim oSubDoc As Document

    For Each oSubDoc In oDoc.AllReferencedDocuments
        If oSubDoc.DocumentType = kAssemblyDocumentObject Then
            Call ExportDocStructBOM(oSubDoc)
        End If
    Next

End Sub

Sub ExportDocStructBOM(oDoc As AssemblyDocument)

    Dim oBOM As BOM
    Set oBOM = oDoc.ComponentDefinition.BOM
    
    oBOM.StructuredViewFirstLevelOnly = False
    oBOM.StructuredViewEnabled = True

    Dim oStructuredBOMView As BOMView
    Set oStructuredBOMView = oBOM.BOMViews.Item("Structured")
    
    oStructuredBOMView.Export "C:\Temp\" & oDoc.DisplayName & "_StructuredBOM.csv", kTextFileCommaDelimitedFormat
End Sub

Please feel free to contact if there is any doubt.


CHANDRA SHEKAR G
Developer Advocate
Autodesk Developer Network



Message 6 of 7

tpascual
Contributor
Contributor

Hi Sirs,

I'm not yet tested, but it seems to work.

Thanks,

0 Likes
Message 7 of 7

tpascual
Contributor
Contributor

Great ¡¡¡

Now I'm trying to process only assemblies in Estructured BOM not in all document.

I have phantom ass.

Any idea wellcome.

Thanks,

0 Likes