Create Highlight Selection Set Example (VBA)

This example shows how to create a highlight selection set.

'--------------------------------------------------------------
' Preconditions:
'  1. Create a VBA macro in a software product in which VBA is
'     embedded.
'  2. Copy and paste this example into the Visual Basic IDE.
'  3. Add a reference to the DraftSight type library,
'     install_dir\bin\dsAutomation.dll.
'  4. Start DraftSight.
'  5. Run the macro.
'
' Postconditions:
'  1. Connects to DraftSight.
'  2. Gets active document.
'  3. Gets Sketch Manager.
'  4. Inserts a Circle and an Arc.
'  5. Creates an instance of a highlight selection set.
'  6. Adds Arc to the highlight selection set.
'  7. Move the pointer over both the Arc and Circle. Only the Arc
'     is highlighted. Press F5 to continue.
'  8. Removes Arc from highlight selection set.
'  9. Adds Circle to highlight selection set.
' 10. Move the pointer over both the Arc and Circle. Only
'     the Circle is highlighted.
'--------------------------------------------------------------
Option Explicit
Sub main()
        Dim dsApp As DraftSight.Application
        'Connect to DraftSight application
        Set dsApp = GetObject(, "DraftSight.Application")
        If dsApp Is Nothing Then
            Return
        End If        
        'Abort any command currently running in DraftSight
        'to avoid nested commands
        dsApp.AbortRunningCommand        
        'Get active document
        Dim dsDoc As DraftSight.Document
        Set dsDoc = dsApp.GetActiveDocument()
        If dsDoc Is Nothing Then
            MsgBox ("There are no open documents in DraftSight.")
            Return
        End If        
        'Get Sketch Manager
        Dim dsSketchMgr As DraftSight.SketchManager
        Set dsSketchMgr = dsDoc.GetModel.GetSketchManager        
        'Construct Circle and Arc
        Dim dsCircle As DraftSight.Circle
        Dim dsCircleArc As DraftSight.CircleArc
        Set dsCircle = dsSketchMgr.InsertCircle(5#, 5#, 0#, 10#)
        Set dsCircleArc = dsSketchMgr.InsertArc(7.5, 7.5, 0#, 10#, 2.5, 5#)
        dsApp.Zoom dsZoomRange_Bounds, Nothing, Nothing        
        'Create highlight selection set
        Dim dsEntities(1) As Object
        Set dsEntities(0) = dsCircleArc        
        Dim dsHighlightSet As DraftSight.HighlightSet
        Set dsHighlightSet = dsDoc.CreateHighlightSet(dsEntities)
        dsHighlightSet.Highlight = True
        dsDoc.Rebuild dsRebuildType_AllViewports        
        Stop
        'Move pointer over the Arc and Circle
        'Only the Arc is highlighted
        'Press F5 to continue        
        'Remove entities from highlight selection set
        dsHighlightSet.RemoveEntities dsEntities
        dsDoc.Rebuild dsRebuildType_AllViewports        
        'Add Circle to highlight selection set
        Set dsEntities(0) = Nothing
        Set dsEntities(0) = dsCircle
        dsHighlightSet.AddEntities dsEntities
        dsHighlightSet.Highlight = True
        dsDoc.Rebuild dsRebuildType_AllViewports
        
        'Move pointer over the Arc and Circle
        'Only the Circle is highlighted
End Sub