# Insert External Reference Example (C#)

This example shows how to insert an external reference to 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: Message boxes pop 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 dsExtReference = default(BlockInstance);
            ExternalReference dsReference = default(ExternalReference);
            string pathName;
            double insertX = 0;
            double insertY = 0;
            double insertZ = 0;
            double scaleValue = 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();
                //External reference iparameters (rotation value should be in radians)
                pathName = "C:\\Block.dwg";
                insertX = 0.0;
                insertY = 0.0;
                insertZ = 0.0;
                scaleValue = 1.0;
                rotation = 0.0;
                //Add an external reference
                dsExtReference = dsSketchManager.InsertExternalReference(pathName, insertX, insertY, insertZ, scaleValue, rotation);
                if (dsExtReference != null)
                {
                    MessageBox.Show("An external reference was added to the drawing.");
                    object[] references = null;
                    references = dsDoc.GetExternalReferences();
                    dsReference = (ExternalReference)references[0];
                    if (dsReference != null)
                    {
                        MessageBox.Show("Name of external reference " + dsReference.Name + ".");
                    }
                }
                else
                {
                    MessageBox.Show(pathName + " file was not found.");
                }
            }
            else
            {
                MessageBox.Show("There are no open documents in DraftSight.");
            }
        }
    }