Manager API
Get All External References for Drawing Example (VB.NET)
This example shows how to get the external references for a drawing document.
'-----------------------------------------
' Preconditions:
' 1. Read the SolidWorks Document Manager API
' Getting Started topic and ensure that the
' required DLLs are registered.
' 2. Copy and paste this module into a VB.NET
' console application in Microsoft Visual Studio.
' 3. Substitute the name of your drawing document
' for drawing_document_with_external_references.
' 4. Add the SolidWorks.Interop.swdocumentmgr.dll
' reference to the project.
' 5. Substitute your_license_code with your
' SolidWorks Document Manager license key.
' 6. Compile and run this program in Debug mode.
'
' Postconditions: Inspect the Immediate window.
'-----------------------------------------
Imports
SolidWorks.Interop.swdocumentmgr
Module
Module1
Sub
main()
Const
sLicenseKey As
String =
"your_license_code"
'Specify your license key
Const
sDocFileName As
String =
"drawing_document_with_external_references"
Dim
swClassFact As
SwDMClassFactory
Dim
swDocMgr As
SwDMApplication
Dim
swDoc As
SwDMDocument13
Dim
swSearchOpt As
SwDMSearchOption
Dim
nDocType As
Long
Dim
nRetVal As
Long
Dim
vDependArr As
Object
Dim
vDepend As
Object
Dim
vBrokenRefs As
Object
Dim
vIsVirtuals As
Object
Dim
vTimeStamps As
Object
'
Determine if document is a drawing
If
InStr(LCase(sDocFileName), "slddrw")
> 0 Then
nDocType =
SwDmDocumentType.swDmDocumentDrawing
Else
'
Not a drawings file,
nDocType =
SwDmDocumentType.swDmDocumentUnknown
' so do not open
Exit
Sub
End
If
swClassFact = CreateObject("SwDocumentMgr.SwDMClassFactory")
swDocMgr = swClassFact.GetApplication(sLicenseKey)
swSearchOpt = swDocMgr.GetSearchOptionObject
swDoc = swDocMgr.GetDocument(sDocFileName, nDocType,
False, nRetVal) :
Debug.Assert(SwDmDocumentOpenError.swDmDocumentOpenErrorNone = nRetVal)
Debug.Print("File = "
& swDoc.FullName)
vBrokenRefs = Nothing
Dim
brokenRef As
SwDmReferenceStatus
vIsVirtuals = Nothing
Dim
isVirtual As
Boolean
vTimeStamps =
Nothing
Dim
timeStamp As
Double
vDependArr = swDoc.GetAllExternalReferences4(swSearchOpt,
vBrokenRefs, vIsVirtuals, vTimeStamps) : If
IsNothing(vDependArr) Then
Exit
Sub
Debug.Print("External
references")
For
Each
vDepend In
vDependArr
Debug.Print(" "
& vDepend)
Next
vDepend
Debug.Print("Reference statuses
as defined in swDmReferenceStatus")
For
Each
brokenRef In
vBrokenRefs
Debug.Print(" "
& brokenRef)
Next
brokenRef
Debug.Print("Virtual component?")
For
Each
isVirtual In
vIsVirtuals
Debug.Print(" "
& isVirtual)
Next
isVirtual
Debug.Print("Timestamps")
For
Each
timeStamp In
vTimeStamps
Debug.Print(" "
& timeStamp)
Next
timeStamp
End
Sub
End Module