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

27/05/2021

Определение активного пространства и активного листа

Database.CurrentSpaceId содержит ObjectId текущего пространства (Модели или Листа). Вы можете использовать ее для идентификации активного пространства. При помощи LayoutManager мы может узнать активный лист.

Код - C#: [Выделить]
  1. [CommandMethod("ActiveSpace")]
  2. public void ActiveSpace()
  3. {
  4.     Document doc = Application.DocumentManager.MdiActiveDocument;
  5.     Editor ed = doc.Editor;
  6.     Database db = doc.Database;
  7.  
  8.     ObjectId SpaceId = db.CurrentSpaceId;
  9.  
  10.     // Проверяем на Пространство Модели.
  11.     ObjectId ModelSpaceId =
  12.             SymbolUtilityServices.GetBlockModelSpaceId(db);
  13.  
  14.     if (ModelSpaceId == SpaceId)
  15.     {
  16.         ed.WriteMessage("Активно пространство модели\n");
  17.     }
  18.     else
  19.     {
  20.         ed.WriteMessage("Активно пространство листа\n");
  21.     }
  22.  
  23.     // Используем LayoutManager для получения текущего листа
  24.     LayoutManager layoutMgr = LayoutManager.Current;
  25.  
  26.     ed.WriteMessage(layoutMgr.CurrentLayout +
  27.                                     " – активный лист\n");
  28. }

 

Источник: https://adndevblog.typepad.com/autocad/2012/06/identifying-active-space-and-active-layout.html

 

Автор перевода: Александр Ривилис
Опубликовано 27.05.2021