Traversing thru Assembly

Hi all,

I am fairly new with Solidworks API. Mostly I have been in forums and API Help to copy paste macro's and combining those for my needs. In below macro I traverse thru an Assembly and my purpose is to choose only SW parts(I want to do more but just for testing). I I get this to work with sub assemblies(swDocASSEMBLY) but with parts(swDocPART) debugger just prints top level assembly. Could anyone help me to understand why it does not work?

Option Explicit

Sub main()

 

  Dim swApp                  As SldWorks.SldWorks

  Dim swModel               As SldWorks.ModelDoc2

  Dim swConfigMgr        As SldWorks.ConfigurationManager

  Dim swAssy                 As SldWorks.AssemblyDoc

  Dim swConf                 As SldWorks.Configuration

  Dim swRootComp       As SldWorks.Component2

 

  Set swApp = Application.SldWorks

  Set swModel = swApp.ActiveDoc

  Set swConfigMgr = swModel.ConfigurationManager

  Set swConf = swConfigMgr.ActiveConfiguration

  Set swRootComp = swConf.GetRootComponent3(True)

  TraverseComponent swRootComp, 1

 

End Sub

Sub TraverseComponent(swComp As SldWorks.Component2, _

  nLevel As Long)

  Dim vChildComp                  As Variant

  Dim swChildComp                 As SldWorks.Component2

  Dim swCompConfig                As SldWorks.Configuration

  Dim i                           As Long

  Dim bRet                        As Boolean

  Dim swCompModel                 As SldWorks.ModelDoc2

 

  vChildComp = swComp.GetChildren

  For i = 0 To UBound(vChildComp)

    Set swChildComp = vChildComp(i)

          

    Set swCompModel = swComp.GetModelDoc2

        If swCompModel.GetType = swDocPART Then

        'If swCompModel.GetType = swDocASSEMBLY Then

                Debug.Print "Component: " & swComp.Name2

                bRet = swComp.Select4(True, Nothing, True)

        End If

     

    TraverseComponent swChildComp, nLevel + 1

  Next i

End Sub

SolidworksApi macros