Announcements
Attention for Customers without Multi-Factor Authentication or Single Sign-On - OTP Verification rolls out April 2025. Read all about it here.

BOM EXPORT | EACH ASSEMBLY IN A CSV

tpascual
Contributor

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
Reply
860 Views
6 Replies
Replies (6)

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

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

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

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



tpascual
Contributor
Contributor

Hi Sirs,

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

Thanks,

0 Likes

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