Skip to main content

Traversing the components tree using SOLIDWORKS API

This example demonstrates how to traverse components tree in the assembly using SOLIDWORKS API and output the result using the specified indentation symbol.

Components Tree{ width=150 }

Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2

Const INDENT_SYMBOL As String = " "

Sub main()

Set swApp = Application.SldWorks

Set swModel = swApp.ActiveDoc

If Not swModel Is Nothing Then

Dim swRootComp As SldWorks.Component2

Set swRootComp = swModel.ConfigurationManager.ActiveConfiguration.GetRootComponent

TraverseComponent swRootComp, ""

Else

MsgBox "Please open assembly"

End If

End Sub

Sub TraverseComponent(comp As SldWorks.Component2, indent As String)

Dim vChildComps As Variant

vChildComps = comp.GetChildren

Dim i As Integer

For i = 0 To UBound(vChildComps)

Dim swChildComp As SldWorks.Component2
Set swChildComp = vChildComps(i)

Debug.Print indent & swChildComp.Name2 & " (" & swChildComp.GetPathName() & ")"

TraverseComponent swChildComp, indent & INDENT_SYMBOL

Next

End Sub