// (C) Copyright 2022 CodeHimBelonga: kdub 2022/05/10
//
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Runtime;
using Kdub.Common;
using AcadApp = Autodesk.AutoCAD.ApplicationServices.Core.Application;
[assembly
: CommandClass
(typeof(LayoutClass
.LayoutClass))]
namespace LayoutClass
{
public class LayoutClass
{
[CommandMethod("MakeLayout")]
public static void MakeLayout()
{
Layout layout = CreateLayout("Layout3");
Active.WriteMessage("\nTab Order: "
+ layout.TabOrder
+ "\nTab Selected: "
+ layout.TabSelected
+ "\nBlock Table Record ID: "
+ layout.BlockTableRecordId.ToString());
}
private static Layout CreateLayout(string layoutName)
{
Layout layout
= new Layout
();
using (Transaction transaction = Active.Database
.TransactionManager.StartTransaction())
{
LayoutManager layoutManager = LayoutManager.Current;
// Check if the Layout doesn't exists : create or get !
if (!layoutManager.LayoutExists(layoutName))
{
layout = (Layout)transaction.GetObject(
layoutManager.CreateLayout(layoutName), OpenMode.ForRead);
}
else
{
layout = (Layout)transaction.GetObject(
layoutManager.GetLayoutId(layoutName), OpenMode.ForRead);
}
// ensure the layout is current
if (!layout.TabSelected)
{
layoutManager.CurrentLayout = layout.LayoutName;
}
transaction.Commit();
}
return layout;
}
}
}