# Create Highlight Selection Set Example (VB.NET)

This example shows how to create a highlight selection set.

    '--------------------------------------------------------------
    ' Preconditions:
    '  1. Create a VB.NET Windows console project.
    '  2. Copy and paste this example into the VB.NET IDE.
    '  3. Add a reference to:
    '     install_dir\APISDK\tlb\DraftSight.Interop.dsAutomation.dll.
    '  4. Add a reference to System.Windows.Forms.
    '  5. Start DraftSight.
    '  6. Press F5.
    '
    ' 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.
    '--------------------------------------------------------------

    Imports System
    Imports DraftSight.Interop.dsAutomation
    Imports System.Runtime.InteropServices
    Imports System.Windows.Forms

    Module Module1

        Sub Main()

            Dim dsApp As DraftSight.Interop.dsAutomation.Application

            'Connect to DraftSight application
            dsApp = DirectCast(Marshal.GetActiveObject("DraftSight.Application"), DraftSight.Interop.dsAutomation.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 Document = dsApp.GetActiveDocument()
            If dsDoc Is Nothing Then
                MessageBox.Show("There are no open documents in DraftSight.")
                Return
            End If

            'Get Sketch Manager
            Dim dsSketchMgr As SketchManager = dsDoc.GetModel().GetSketchManager()

            'Draw a Circle and Arc
            Dim dsCircle As Circle = dsSketchMgr.InsertCircle(5.0, 5.0, 0.0, 10.0)
            Dim dsCircleArc As CircleArc = dsSketchMgr.InsertArc(7.5, 7.5, 0.0, 10.0, 2.5, 5.0)
            dsApp.Zoom(dsZoomRange_e.dsZoomRange_Bounds, Nothing, Nothing)

            'Create highlight selection set
            Dim dsEntities As DispatchWrapper() = New DispatchWrapper(0) {}
            dsEntities(0) = New DispatchWrapper(dsCircleArc)

            Dim dsHighlightSet As HighlightSet = dsDoc.CreateHighlightSet(dsEntities)
            dsHighlightSet.Highlight = True
            dsDoc.Rebuild(dsRebuildType_e.dsRebuildType_AllViewports)

            System.Diagnostics.Debugger.Break()
            '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_e.dsRebuildType_AllViewports)

            'Add Circle to highlight selection set
            dsEntities.Initialize()
            dsEntities(0) = New DispatchWrapper(dsCircle)
            dsHighlightSet.AddEntities(dsEntities)
            dsHighlightSet.Highlight = True
            dsDoc.Rebuild(dsRebuildType_e.dsRebuildType_AllViewports)

            'Move pointer over the Arc and Circle
            'Only the Circle is highlighted

        End Sub
    End Module