Message 1 of 9
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hello everyone and Happy New Year! 😎
I came across this thread about automatically placing a Parts List in a drawing.
After a few tweaks, got it *almost* working as I need it to.
Dim oDrawingDoc As DrawingDocument
oDrawingDoc = ThisApplication.ActiveDocument
Dim oSheet As Sheet
oSheet = oDrawingDoc.ActiveSheet
'Detect if the template has a parts list
Try
Dim oPartslistCheck As PartsList
oPartslistCheck = oSheet.PartsLists(1)
partslistpresent=True
Catch
partslistpresent=False
End Try
If partslistpresent=True
'Delete the current parts list
Dim oPartsList As PartsList
oPartsList = oDrawingDoc.ActiveSheet.PartsLists.Item(1)
oPartsList.Delete
End If
' Set a reference to the first drawing view on
' the sheet. This assumes the first drawing
' view on the sheet is not a draft view.
Dim oDrawingView As DrawingView
oDrawingView = oSheet.DrawingViews(1)
' Set a reference to the sheet's border
Dim oBorder As Border
oBorder = oSheet.Border
' Set a reference to the sheet's title block
Dim oTitleBlock As TitleBlock
oTitleBlock = oSheet.TitleBlock
'['Temporary Parts List
Dim oPlacementPoint As Point2d
xrev = 0
yrev = 0
oPlacementPoint = ThisApplication.TransientGeometry.CreatePoint2d(xrev, yrev)
' Create the parts list
Dim oPartsList1 As PartsList
oPartsList1 = oSheet.PartsLists.Add(oDrawingView, oPlacementPoint)
']
'['Definitive Parts List
Dim oPlacementPoint2 As Point2d
xrev2 = oTitleBlock.RangeBox.MaxPoint.X - 0.5
yrev2 = oTitleBlock.RangeBox.MaxPoint.Y - oPartsList1.RangeBox.MinPoint.Y
oPlacementPoint2 = ThisApplication.TransientGeometry.CreatePoint2d(xrev2, yrev2)
' Delete Temporary Parts List
oPartsList1 = oDrawingDoc.ActiveSheet.PartsLists.Item(1)
oPartsList1.Delete
' Create Definitive Parts List
Dim oPartsList2 As PartsList
oPartsList2 = oSheet.PartsLists.Add(oDrawingView, oPlacementPoint2, PartsListLevelEnum.kFirstLevelComponents)
']
oPartsList2.Sort("PART NUMBER")
oPartsList2.Renumber
oPartsList2.Style.UpdateFromGlobal
'Switch style back and forth to ensure style is up-to-date
oPartsList2.Style = oDrawingDoc.StylesManager.PartsListStyles.Item("Parts List (ISO-AIP)")
oPartsList2.Style = oDrawingDoc.StylesManager.PartsListStyles.Item("Parts List (ISO)")
InventorVb.DocumentUpdate()
Only thing left is to create a Parts List with a "Structured BOM View".
When I manually select "Structured (legacy)", I get to expand the Parts List and see all sub-assemblys:
But I can't find how to get the rule to do so:
Any thoughts?
João Silva
Mechanical Engineer
Solved! Go to Solution.