Insert Block Instance Example (C#)

This example shows how to insert a Block instance in a drawing document.

//--------------------------------------------------------------
// Preconditions:
// 1. Create a C# Windows console project.
// 2. Copy and paste this example into the C# IDE.
// 3. Add a reference to:
//    install_dir\APISDK\tlb\DraftSight.Interop.dsAutomation.dll.
// 4. Add references to System and System.Windows.Forms.
// 5. Start DraftSight and open a new document.
// 6. If C:\Block.dwg exists, then skip this step.
//    - or -
//    If C:\Block.dwg does not exist, then construct
//    some geometry in the drawing, save the drawing
//    as C:\Block.dwg, and open a new drawing document.
// 7. Start debugging the project.
//
// Postconditions: A message box pops up when a Block Instance is
// inserted in the drawing document.
//----------------------------------------------------------------
using DraftSight.Interop.dsAutomation;
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
static class Module1
{
        static void Main(string[] args)
        {
        DraftSight.Interop.dsAutomation.Application dsApp;
        Document dsDoc = default(Document);
        Model dsModel = default(Model);
        SketchManager dsSketchManager = default(SketchManager);
        BlockInstance dsBlockInstance = default(BlockInstance);
        string pathName;
        double insertX = 0;
        double insertY = 0;
        double insertZ = 0;
        double scaleX = 0;
        double scaleY = 0;
        double scaleZ = 0;
        double rotation = 0;
        //Connect to DraftSight
        dsApp = (DraftSight.Interop.dsAutomation.Application)Marshal.GetActiveObject("DraftSight.Application");
	dsApp.AbortRunningCommand(); // abort any command currently running in DraftSight to avoid nested commands

        //Get active document
        dsDoc = dsApp.GetActiveDocument();
        if (dsDoc != null)
        {
            //Get model space
            dsModel = dsDoc.GetModel();
            //Get Sketch Manager
            dsSketchManager = dsModel.GetSketchManager();
            //Block instance parameters (rotation value should be in radians)
            pathName = "C:\\Block.dwg";
            insertX = 0.0;
            insertY = 0.0;
            insertZ = 0.0;
            scaleX = 1.0;
            scaleY = 1.0;
            scaleZ = 1.0;
            rotation = 0.0;
            //Add a Block instance
            dsBlockInstance = dsSketchManager.InsertBlock2(pathName, insertX, insertY, insertZ, scaleX, scaleY, scaleZ, rotation);
            if (dsBlockInstance != null)
            {
                MessageBox.Show("A Block instance from '" + pathName + "' file was added to the drawing.");
            }
            else
            {
                MessageBox.Show(pathName + " file was not found.");
            }
        }
        else         
        {
            MessageBox.Show("There are no open documents in DraftSight.");        
        }
    }
}