# Switch Layouts Example (C#)

This example shows how to switch layouts.

    //--------------------------------------------------------------
    //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 document.
    // 6. Start debugging the project.
    //
    //Postconditions: Message boxes pop up when a model or sheet
    //is activated. Read the text in each message box before clicking
    //OK to close it.
    //----------------------------------------------------------------
    using DraftSight.Interop.dsAutomation;
    using System;
    using System.Windows.Forms;
    using System.Runtime.InteropServices;

    static class Module1
    {

        public static void Main()
    	{

            	DraftSight.Interop.dsAutomation.Application dsApp;
    		Document dsDoc = default(Document);

    		//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)
                    {
    			//Activate each layout, one by one
    			SwitchLayouts(dsDoc);

    		}
                    else
                    {
    			MessageBox.Show("There are no open documents in DraftSight.");
    		}
    	}
        public static void SwitchLayouts(Document dsDoc)
        {
            Sheet dsSheet = default(Sheet);
            Model dsModel = default(Model);
            object[] dsVarSheets = null;
            int index = 0;
            string sheetName = null;

            //Get all sheets
            dsVarSheets = (object[])dsDoc.GetSheets();

            if (dsVarSheets != null)
            {

                for (index = dsVarSheets.GetLowerBound(0); index <= dsVarSheets.GetUpperBound(0); index++)
                {
                    dsSheet = (Sheet)dsVarSheets[index];

                    //Get sheet name
                    sheetName = dsSheet.Name;

                    //Change sheet name, if it is not a model

                    if (sheetName != "Model")
                    {
                        //Activate sheet
                        dsSheet.Activate();

                        //Verify if the sheet was activated
                        if (dsSheet.IsActive())
                        {
                            MessageBox.Show("The sheet " + sheetName + " was activated.");
                        }

                    }
                    else
                    {
                        //Activate model sheet
                        dsModel = (Model)dsDoc.GetModel();

                        if (dsModel != null)
                        {
                            //Activate model sheet
                            dsModel.Activate();

                            //Verify if the sheet was activated
                            if (dsModel.IsActive())
                            {
                                MessageBox.Show("The model sheet was activated.");
                            }

                        }

                    }

                }

            }

        }

    }