Get Object's Persistent Reference ID Example (VBA)
This example shows how to get an object's persistent reference IDs.
'---------------------------------------------
' Preconditions: Parts document must be open and
' must
contain an Extrude1 feature.
'
' Postconditions: None
'----------------------------------------------
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim Part As SldWorks.ModelDoc2
Dim docext As SldWorks.ModelDocExtension
Dim pathname As String
Dim filetype As Long
Dim errors As Long
Dim warnings As Long
Dim options As Long
Dim obj As Object
Dim reference As Variant
Dim index As Integer
Dim boolstatus As Boolean
Dim errorCode as Long
Sub main()
Set swApp = Application.SldWorks
'Get the document
Set Part = swApp.ActiveDoc
Set docext = Part.Extension
'Get the object
boolstatus = Part.Extension.SelectByID2("Extrude1",
"BODYFEATURE", 0, 0, 0, False, 0, Nothing, swSelectOptionDefault)
Set obj = Part.SelectionManager.GetSelectedObject5(1)
'Get the object's reference id
reference = docext.GetPersistReference3(obj)
'After releasing the object with the document remaining
available
Set obj = Nothing
Set obj = docext.GetObjectByPersistReference3(reference,
errorCode)
'Rebuild the model
Set obj = Nothing
Call Part.Rebuild(swForceRebuildAll)
Set obj = docext.GetObjectByPersistReference3(reference,
errorCode)
'After closing the document
Set obj = Nothing
pathname = Part.GetPathName
swApp.CloseDoc
pathname
Set Part = Nothing
Set docext = Nothing
Set Part = swApp.GetOpenDocumentByName(pathname)
Set Part = swApp.OpenDoc6(pathname,
swDocPart, swOpenDocOptions_Silent, "", errors, warnings)
Set docext = Part.Extension
Set obj = docext.GetObjectByPersistReference3(reference,
errorCode)
End Sub