0 Replies Latest reply on Jul 28, 2017 9:24 AM by Ed Horne

    Select all Inspection Balloons - Open Property manager

    Ed Horne


      I was asked to create a macro that would select all the Inspection balloons on a drawing. The reason for the selection is to be able to edit fonts, etc. I didn't find a lot of previous threads for something like this so I'll share what I have (feel free to offer suggestions for improvement also).

      I'm able to get all the balloons selected but it would be nice if the Property Manager panel was open after running the macro. As it works now, you have to click one of the balloons post macro to get the panel to open.

      Thanks in advance.


      ' ******************************************************************************
      ' SelectBalloons - written 07/27/17
      ' Macro will select all Notes on layer "Balloon"
      ' Some of the code comes from the "API: Delete All Notes on a Specified Layer"
      '   written by Cheryl O'Neill
      ' ******************************************************************************
      Option Explicit

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

      Sub main()
          Dim swView      As SldWorks.View
          Dim swDraw      As SldWorks.DrawingDoc
          Dim swAnn       As SldWorks.Annotation
          Dim bRet        As Boolean

          Set swApp = Application.SldWorks
          Set swModel = swApp.ActiveDoc
          Set swDraw = swModel
          Set swView = swDraw.GetFirstView

          swModel.ClearSelection2 True
          While Not swView Is Nothing
              Set swAnn = swView.GetFirstAnnotation2
              While Not swAnn Is Nothing

                  If swNote = swAnn.GetType Then
                      If swAnn.Layer = "Balloons" Then
                          bRet = swAnn.Select2(True, 0)
                      End If
                  End If
                  Set swAnn = swAnn.GetNext2
              Set swView = swView.GetNextView
      MsgBox (swModel.SelectionManager.GetSelectedObjectCount)
      End Sub