Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: pavka_97 от 23-08-2018, 09:37:41

Название: Не получается разморозить слои в текущем layout в 0-м viewport
Отправлено: pavka_97 от 23-08-2018, 09:37:41
Добрый день. Дабы не создавать темы по простому вопросу, да и вроде как подходит частично к этой, решусь спросить.
Не получается разморозить слои  в текущем layout в 0-м viewport.

Код - C# [Выбрать]
  1. using Autodesk.AutoCAD.ApplicationServices;
  2. using Autodesk.AutoCAD.DatabaseServices;
  3. using Autodesk.AutoCAD.EditorInput;
  4. using Autodesk.AutoCAD.Runtime;
  5. namespace Test
  6. {
  7.     public class Test
  8.     {
  9.         [CommandMethod("Thawlr")]
  10.         public static void Thawlr()
  11.         {
  12.             Document doc = Application.DocumentManager.MdiActiveDocument;
  13.             Database db = doc.Database;
  14.             Editor ed = doc.Editor;
  15.             LayoutManager lm = LayoutManager.Current;
  16.             using (Transaction tr = db.TransactionManager.StartTransaction())
  17.             {
  18.                 LayerTable lt = tr.GetObject(db.LayerTableId,OpenMode.ForRead) as LayerTable;
  19.                 Layout cl = tr.GetObject(lm.GetLayoutId(lm.CurrentLayout), OpenMode.ForRead) as Layout;
  20.                 ObjectIdCollection colvp = cl.GetViewports();
  21.                 Viewport vp = tr.GetObject(colvp[0], OpenMode.ForRead) as Viewport;
  22.                 ObjectIdCollection colfl = vp.GetFrozenLayers();
  23.                 foreach (ObjectId lr in colfl)
  24.                 {
  25.                     LayerTableRecord ltr = tr.GetObject(lr, OpenMode.ForWrite) as LayerTableRecord;
  26.                     ltr.IsFrozen = false;
  27.                 }
  28.                 //Application.ShowAlertDialog(colfl.Count.ToString());
  29.                 tr.Commit();
  30.             }
  31.         }
  32.     }
  33. }
Название: Re: Не получается разморозить слои в текущем layout в 0-м viewport
Отправлено: Александр Ривилис от 23-08-2018, 11:22:45
Таким способом слои в viewport не размораживаются. Так они размораживаются в модели. Для размораживания в viewport нужно использовать метод Viewport.ThawLayersInViewport
Название: Re: Не получается разморозить слои в текущем layout в 0-м viewport
Отправлено: pavka_97 от 23-08-2018, 11:54:03
Off-Topic: показать
никак не приучусь смотреть еще и в reference guide. В очередной раз спасибо. :)