Get External References Example (VB.NET)
This example shows how to get
all of the external references for the base part using the SolidWorks Document Manager API.
'-----------------------------------------
' Preconditions:
' 1. Read the SolidWorks Document Manager API
' Getting Started topic and ensure that the
' required DLLs have been registered.
' 2. Copy and paste this module into a VB.NET
' console application in
Microsoft Visual Studio.
' 3. Ensure that the specified part exists
' (or point to another assembly).
' 4. Add the Solidworks.Interop.swdocumentmgr.dll
'
reference
to
the project:
' a. Right-click the solution in Solution Explorer.
' b. Select Add Reference.
' c. Click the Browse tab.
' d. Load:
' <SolidWorks_install_dir>\api\redist\Solidworks.Interop.swdocumentmgr.dll.
' 5. Substitute <your_license_code> with your
' SolidWorks
Document Manager license key.
' 6. Compile and run this program in Debug mode.
'
' Postconditions: Inspect the Output Window and the
' code to see how the API is used.
'-----------------------------------------
Imports
SolidWorks.Interop.swdocumentmgr
Module
Module1
Sub
main()
Const
sLicenseKey As
String =
"<your_license_code>"
'Specify your license key
Const
sDocFileName As
String =
"C:\Program Files\SolidWorks Corp\SolidWorks\samples\tutorial\cosmosfloxpress\ball
valve\ball_valve.sldasm"
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 type of SolidWorks file based on file extension
If
InStr(LCase(sDocFileName), "sldprt")
> 0 Then
nDocType =
SwDmDocumentType.swDmDocumentPart
ElseIf
InStr(LCase(sDocFileName), "sldasm")
> 0 Then
nDocType =
SwDmDocumentType.swDmDocumentAssembly
ElseIf
InStr(LCase(sDocFileName), "slddrw")
> 0 Then
nDocType =
SwDmDocumentType.swDmDocumentDrawing
Else
'
Probably not a SolidWorks file
nDocType =
SwDmDocumentType.swDmDocumentUnknown
' so cannot 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