[CommandMethod("AddLayer")]
public void AddLayer_Method()
{
Database db = HostApplicationServices.WorkingDatabase;
Editor ed = MgdAcApplication.DocumentManager.MdiActiveDocument.Editor;
try
{
using (Transaction tr = db.TransactionManager.StartTransaction())
{
PromptStringOptions pStr = new PromptStringOptions("请输入新建图层名:\n");
PromptResult pRes = ed.GetString(pStr);
if (pRes.Status == PromptStatus.OK)
{
string layerName = pRes.StringResult;
LayerTable lt = (LayerTable)db.LayerTableId.GetObject(OpenMode.ForRead);
if (!lt.Has(layerName))
{
LayerTableRecord ltr = new LayerTableRecord();
ltr.Name = layerName;
lt.UpgradeOpen();
lt.Add(ltr);
db.TransactionManager.AddNewlyCreatedDBObject(ltr, true);
lt.DowngradeOpen();
}
lt = (LayerTable)db.LayerTableId.GetObject(OpenMode.ForRead);
if (lt.Has(layerName))
ed.WriteMessage("\n{0}图层创建成功!", layerName);
else
ed.WriteMessage("\n{0}图层创建失败!", layerName);
}
tr.Commit();
}
}
catch (System.Exception ex)
{
Debug.WriteLine(ex.ToString());
ed.WriteMessage(ex.ToString());
}
}