# 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