Or use it this way.
fully independent of the BOM selves.
Public Sub Main
Dim a As Inventor.AssemblyDocument = ThisDoc.Document
Dim b As Inventor.BOM = a.ComponentDefinition.BOM
Dim d As Inventor.Document = b.BOMViews.Item(1).BOMRows.Item(1).ComponentDefinitions.Item(1).Document'.ReferencedFileDescriptor.FullFileName
'b.BOMViews.Item(2).Sort2("item",True)
Dim b1 As Inventor.BOMRowsEnumerator = b.BOMViews.Item(2).BOMRows
b.BOMViews.Item(2).Sort("Item",True)
Dim oWrite As System.IO.StreamWriter
oWrite = System.IO.File.CreateText(ThisDoc.PathAndFileName(False)& " Parts Only " &Today.Year & Today.Month & Today.Day & ".csv")
oWrite.WriteLine("Item" & ";" & "Part Number" & ";" & "Qty" & ";" & "Description" & ";" & "BE_Description" & ";" & "Length" & ";" & "Flat Pattern Area" & ";" & "Flat Pattern Length" & ";" & "Flat Pattern Width" & ";" & "Flat Pattern Thickness" & ";" & "Be_Weight")
rcbom(b1,owrite)
'Dim x As String = Replace(d1.PropertySets.Item("Design Tracking Properties").Item("Flat Pattern Area").Value,".",",")
oWrite.Close
'GoExcel.Open(ThisDoc.PathAndFileName(False)& " Parts Only " &Today.Year & Today.Month & Today.Day & ".csv")
'Dim x As Microsoft.Office.Interop.Excel.ApplicationClass = New Microsoft.Office.Interop.Excel.ApplicationClass
ThisDoc.Launch(ThisDoc.PathAndFileName(False) & " Parts Only " & Today.Year & Today.Month & Today.Day & ".csv")
'w.SaveAs (ThisDoc.Launch(ThisDoc.PathAndFileName(False) & " Parts Only " & Today.Year & Today.Month & Today.Day & ".xlsx"))
'Dim w As Microsoft.Office.Interop.Excel.Workbook = x.Workbooks.Open(ThisDoc.PathAndFileName(False) & " Parts Only " & Today.Year & Today.Month & Today.Day & ".csv",,,,,,,," ; ",,,,,,)
'x.Visible = True
End Sub
Public Sub rcbom( b As Inventor.BOMRowsEnumerator, oWrite As System.IO.StreamWriter)
For Each b1 As Inventor.BOMRow In b
Dim d1 As Inventor.Document = b1.ComponentDefinitions.Item(1).Document
Try
oWrite.WriteLine(b1.ItemNumber & " ; " _
& d1.PropertySets.Item("Design Tracking Properties").Item("Part Number").Value _
& " ; " & b1.TotalQuantity _
& " ; " & d1.PropertySets.Item("Design Tracking Properties").Item("Description").Value _
& " ; " & d1.PropertySets.Item("User Defined Properties").Item("Be_Description").Value _
& " ; " & d1.PropertySets.Item("User Defined Properties").Item("Length").Value _
& " ; " & replace(d1.PropertySets.Item("Design Tracking Properties").Item("Flat Pattern Area").Value,".",",") _
& " ; " & Replace(d1.PropertySets.Item("Design Tracking Properties").Item("Flat Pattern Length").Value,".",",") _
& " ; " & Replace(d1.PropertySets.Item("Design Tracking Properties").Item("Flat Pattern Width").Value,".",",") _
& " ; " & Replace(d1.PropertySets.Item("User Defined Properties").Item("Mfp_Thickness").Value,".",",") _
& " ; " & Replace(d1.ComponentDefinition.MassProperties.Mass, ".", ",") _
& " ;" & "")
'& ";" & (d1.PropertySets.Item("User Defined Properties").Item("Be_Weight").Value.ToString/ 1000) )
Catch
oWrite.WriteLine(b1.ItemNumber)
End Try
Try
Dim b2 As Inventor.BOMRowsEnumerator = b1.ChildRows
'MsgBox ("CH")
rcbom(b2,oWrite)
'Next
Catch
End Try
Next
End Sub