Starting in December, we will archive content from the community that is 10 years and older. This FAQ provides more information.
I find this code. It's good work.
but Do not check Parts List exists.
I want to add a check function.
Public Sub CreatePartsList() 'On Error Resume Next ' Set a reference to the drawing document. ' This assumes a drawing document is active. Dim oDrawDoc As DrawingDocument Set oDrawDoc = ThisApplication.ActiveDocument 'Set a reference to the active sheet. Dim oSheet As Sheet Set oSheet = oDrawDoc.ActiveSheet ' 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 Set oDrawingView = oSheet.DrawingViews(1) ' Set a reference to th sheet's border Dim oBorder As Border Set oBorder = oSheet.Border Dim oPlacementPoint As Point2d If Not oBorder Is Nothing Then ' A border exists. The placement point ' is the top-right corner of the border. Set oPlacementPoint = oBorder.RangeBox.MaxPoint Else ' There is no border. The placement point ' is the top-right corner of the sheet. Set oPlacementPoint = ThisApplication.TransientGeometry.CreatePoint2d(oSheet.Width, oSheet.Height) End If ' Create the parts list. Dim oPartsList As PartsList Set oPartsList = oSheet.PartsLists.Add(oDrawingView, oPlacementPoint) End Sub
Thank you.
Solved! Go to Solution.
Solved by dgreatice. Go to Solution.
Hi,
To check if partslist table already exist add more code:
Public Sub CreatePartsList()
'On Error Resume Next
' Set a reference to the drawing document.
' This assumes a drawing document is active.
Dim oDrawDoc As DrawingDocument
Set oDrawDoc = ThisApplication.ActiveDocument
'Set a reference to the active sheet.
Dim oSheet As Sheet
Set oSheet = oDrawDoc.ActiveSheet
' 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
Set oDrawingView = oSheet.DrawingViews(1)
' Set a reference to th sheet's border
Dim oBorder As Border
Set oBorder = oSheet.Border
Dim oPlacementPoint As Point2d
If Not oBorder Is Nothing Then
' A border exists. The placement point
' is the top-right corner of the border.
Set oPlacementPoint = oBorder.RangeBox.MaxPoint
Else
' There is no border. The placement point
' is the top-right corner of the sheet.
Set oPlacementPoint = ThisApplication.TransientGeometry.CreatePoint2d(oSheet.Width, oSheet.Height)
End If
' Create the parts list.
Dim oPartsList As PartsList
on error resume next
Set oPartsList = oSheet.PartsLists.item(1)
if err.number <> 0 then
Set oPartsList = oSheet.PartsLists.Add(oDrawingView, oPlacementPoint)
else
'Do Nothing or if you want to edit existing partlist
end if
End Sub
Accept as solution?
Can't find what you're looking for? Ask the community or share your knowledge.