Select corresponding features in all drawing views

Edit ArticleEdit Article

Feature selected in the drawing view
Feature selected in the drawing view

This VBA macro demonstrates how to find the pointers for the input feature from the model space in each view in the drawing and select it.

  • Open the model drawing views are created from (i.e. assembly or part)
  • Select any feature
  • Run macro. Macro stops an execution
  • Activate drawing
  • Continue the macro. All corresponding features are selected in each view

Dim swApp As SldWorks.SldWorks

Sub main()

    Set swApp = Application.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Set swModel = swApp.ActiveDoc
    Dim swFeat As SldWorks.Feature
    Dim swSelMgr As SldWorks.SelectionMgr
    Set swSelMgr = swModel.SelectionManager
    Set swFeat = swSelMgr.GetSelectedObject6(1, -1)
    'activate drawing
    Dim swDraw As SldWorks.DrawingDoc
    Set swDraw = swApp.ActiveDoc
    Set swSelMgr = swDraw.SelectionManager
    Dim vViews As Variant
    vViews = swDraw.GetViews()(0)
    Dim i As Integer
    Dim swSelData As SldWorks.SelectData
    Set swSelData = swSelMgr.CreateSelectData
    swDraw.ClearSelection2 True
    For i = 0 To UBound(vViews)
        Dim swView As SldWorks.View
        Set swView = vViews(i)
        If swView.ReferencedDocument Is swModel Then
            Dim swViewFeat As SldWorks.Entity
            Set swViewFeat = swFeat
            Set swViewFeat = swView.GetCorresponding(swFeat)
            swSelData.View = swView
            If Not swViewFeat Is Nothing Then
                Debug.Print swViewFeat.Select4(True, swSelData)
                Debug.Print "Failed to get corresponding feature"
            End If
        End If
End Sub

Product of Xarial Product of Xarial