Change Color Using Color Picker Example (C#)

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

//--------------------------------------------------------------
// Preconditions:
// 1. Create a C# Windows console project.
// 2. Copy and paste this code into the C# 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.
//----------------------------------------------------------------
 
using System;
using DraftSight.Interop.dsAutomation;
using System.Runtime.InteropServices;
using System.Windows.Forms;
 
namespace ColorPickerCSharp
{
    class Program
    {
        static void Main()
        {
            DraftSight.Interop.dsAutomation.Application dsApp;
            Document dsDoc = default(Document);
            ColorPicker dsColorPicker = default(ColorPicker);
            SketchManager dsSketchMgr = default(SketchManager);
            Line dsLine = default(Line);
            Color dsColor = default(Color);
            bool OnlyColorBoxIndex = true;
            bool EnableByBlockAndLayer = true;
 
            //Connects to DraftSight
            dsApp = (DraftSight.Interop.dsAutomation.Application)Marshal.GetActiveObject("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
            double StartX = 0, StartY = 0, StartZ = 0;
            double EndX = 23.6, EndY = 12.545, EndZ = 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;
        }
    }
}