Не получается разморозить слои в текущем layout в 0-м viewport

Автор Тема: Не получается разморозить слои в текущем layout в 0-м viewport  (Прочитано 4955 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн pavka_97Автор темы

  • ADN OPEN
  • ***
  • Сообщений: 150
  • Карма: 3
Добрый день. Дабы не создавать темы по простому вопросу, да и вроде как подходит частично к этой, решусь спросить.
Не получается разморозить слои  в текущем 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. }

Отмечено как Решение pavka_97 23-08-2018, 11:51:02

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Таким способом слои в viewport не размораживаются. Так они размораживаются в модели. Для размораживания в viewport нужно использовать метод Viewport.ThawLayersInViewport
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн pavka_97Автор темы

  • ADN OPEN
  • ***
  • Сообщений: 150
  • Карма: 3
Off-Topic: показать
никак не приучусь смотреть еще и в reference guide. В очередной раз спасибо. :)