# Set Alternate Drawing Support Files Example (C#)

This example shows how to set alternate drawing support files.

    //--------------------------------------------------------------
    // 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 a reference to System.Windows.Forms.
    // 5. Start DraftSight.
    // 6. Press F5.
    //
    // Postconditions:
    // 1. Connects to DraftSight.
    // 2. Gets active document.
    // 3. Gets instance of drawing support files.
    // 4. Displays message boxes informing you that these alternate
    //    font files were set:
    //    a. Big font file. Click OK.
    //    b. Shape font file. Click OK.
    //    c. SHX font file. Click OK.
    //    d. Drawing template file. Click OK.
    // 5. Click Tools > Options > File Locations and expand Drawing Support.
    //    a. Expand and examine Alternate Font File > SHX font, Big font,
    //       and Shape file.
    //    b. Expand and examine Drawing Template File Location.
    // 6. Exit DraftSight.
    //----------------------------------------------------------------

    using System;
    using DraftSight.Interop.dsAutomation;
    using System.Runtime.InteropServices;
    using System.Windows.Forms;

    namespace DrawingSupportFilesCSharp
    {
        class Program
        {

            public static void Main()
            {
                DraftSight.Interop.dsAutomation.Application dsApp;

                //Connect to DraftSight application
                dsApp = (DraftSight.Interop.dsAutomation.Application)Marshal.GetActiveObject("DraftSight.Application");

                if (null == dsApp)
                {
                    return;
                }

                //Abort any command currently running in DraftSight to avoid nested commands
                dsApp.AbortRunningCommand();

                //Get active document
                Document dsDoc = dsApp.GetActiveDocument();
                if (null == dsDoc)
                {
                    MessageBox.Show("There are no open documents in DraftSight.");
                    return;
                }

                //Get drawing support files
                DrawingSupportFiles dsDrawingSupportFiles = dsApp.GetDrawingSupportFiles();
                if (null == dsDrawingSupportFiles)
                {
                    MessageBox.Show("There are no valid drawing support files.");
                    return;
                }

                SystemFiles dsSysFile = dsApp.GetSystemFiles();
                object[] FontsPathObj = (object[])dsSysFile.FontsPaths;
                string fontPath = "";
                if (FontsPathObj.Length > 0)
                    fontPath = FontsPathObj[0].ToString();

                //Set alternate big font file
                string fontFileName = System.IO.Path.Combine(fontPath, "ARAGDTM.ttf");
                dsDrawingSupportFiles.AlternateBigFontFile = fontFileName;
                MessageBox.Show("Alternate big font file: " + dsDrawingSupportFiles.AlternateBigFontFile);

                //Set alternate shape font file
                string shapeFileName = System.IO.Path.Combine(fontPath, "LTypeShp.shx");
                dsDrawingSupportFiles.AlternateShapeFile = shapeFileName;
                MessageBox.Show("Alternate shape font file: " + dsDrawingSupportFiles.AlternateShapeFile);

                //Set alternate SHX font file
                string ShxFontFileName = System.IO.Path.Combine(fontPath, "LTypeShp.shx");
                dsDrawingSupportFiles.AlternateShxFontFile = ShxFontFileName;
                MessageBox.Show("Alternate SHX font file: " + dsDrawingSupportFiles.AlternateShxFontFile);

                //Set alternate drawing template file
                string TemplateFilePath = System.IO.Path.Combine(dsApp.GetSystemFiles().GetUserDataPath(), "Template");

                string drawingTemplateFile = System.IO.Path.Combine(TemplateFilePath, "standard.dwt");
                dsDrawingSupportFiles.DrawingTemplateFilesPath = drawingTemplateFile;
                MessageBox.Show("Alternate drawing template file: " + dsDrawingSupportFiles.DrawingTemplateFilesPath);

            }

        }

    }