Change Color Using Color Picker Example (VB.NET)

This example shows how to change the Color of a Line using the color picker.

'--------------------------------------------------------------
' Preconditions:
' 1. Create a VB.NET Windows console project.
' 2. Copy and paste this code into the VB.NET project.
' 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. Gets the active document.
' 2. Constructs a Line.
' 3. Gets the Color of the Line.
' 4. Opens the color picker.
' 5. Select a Color in the color picker and click OK.
' 6. Sets the Color of the Line to the Color that you selected 
'    in the color picker.
'----------------------------------------------------------------

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
        Dim dsDoc As Document = Nothing
        Dim dsColorPicker As ColorPicker = Nothing
        Dim dsSketchMgr As SketchManager = Nothing
        Dim dsLine As Line = Nothing
        Dim dsColor As Color = Nothing
        Dim OnlyColorBoxIndex As Boolean = True
        Dim EnableByBlockAndLayer As Boolean = True

        'Connects to DraftSight
        dsApp = GetObject(, "DraftSight.Application")

        'Aborts any command currently running in DraftSight to avoid nested commands
        dsApp.AbortRunningCommand()

        'Gets active document
        dsDoc = dsApp.GetActiveDocument()

        'Gets the Sketch Manager
        dsSketchMgr = dsDoc.GetModel().GetSketchManager()

        'Constructs a Line
        Dim StartX As Double = 0, StartY As Double = 0, StartZ As Double = 0
        Dim EndX As Double = 23.6, EndY As Double = 12.545, EndZ As Double = 0
        dsLine = dsSketchMgr.InsertLine(StartX, StartY, StartZ, EndX, EndY, EndZ)

        'Gets Color of Line
        dsColor = dsLine.Color

        'Creates an instance of the color picker
        dsColorPicker = dsApp.CreateColorPicker(OnlyColorBoxIndex, EnableByBlockAndLayer)

        'Sets Color to the color picker 
        dsColorPicker.SetColor(dsColor)

        'Opens the color picker 
        dsColorPicker.Execute()

        'Select a Color in the color picker 
        'Click OK

        'Gets Color from  color picker
        dsColor = dsColorPicker.GetColor()

        'Sets Color of the Line to Color selected in color picker
        dsLine.Color = dsColor
    End Sub
End Module