Добрый день. Дабы не создавать темы по простому вопросу, да и вроде как подходит частично к этой, решусь спросить.
Не получается разморозить слои в текущем layout в 0-м viewport.
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
namespace Test
{
public class Test
{
[CommandMethod("Thawlr")]
public static void Thawlr()
{
Document doc = Application.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
Editor ed = doc.Editor;
LayoutManager lm = LayoutManager.Current;
using (Transaction tr = db.TransactionManager.StartTransaction())
{
LayerTable lt = tr.GetObject(db.LayerTableId,OpenMode.ForRead) as LayerTable;
Layout cl = tr.GetObject(lm.GetLayoutId(lm.CurrentLayout), OpenMode.ForRead) as Layout;
ObjectIdCollection colvp = cl.GetViewports();
Viewport vp = tr.GetObject(colvp[0], OpenMode.ForRead) as Viewport;
ObjectIdCollection colfl = vp.GetFrozenLayers();
foreach (ObjectId lr in colfl)
{
LayerTableRecord ltr = tr.GetObject(lr, OpenMode.ForWrite) as LayerTableRecord;
ltr.IsFrozen = false;
}
//Application.ShowAlertDialog(colfl.Count.ToString());
tr.Commit();
}
}
}
}