27/05/2021
Определение активного пространства и активного листа
Database.CurrentSpaceId содержит ObjectId текущего пространства (Модели или Листа). Вы можете использовать ее для идентификации активного пространства. При помощи LayoutManager мы может узнать активный лист.
Код - C#: [Выделить]
- [CommandMethod("ActiveSpace")]
- public void ActiveSpace()
- {
- Document doc = Application.DocumentManager.MdiActiveDocument;
- Editor ed = doc.Editor;
- Database db = doc.Database;
- ObjectId SpaceId = db.CurrentSpaceId;
- // Проверяем на Пространство Модели.
- ObjectId ModelSpaceId =
- SymbolUtilityServices.GetBlockModelSpaceId(db);
- if (ModelSpaceId == SpaceId)
- {
- ed.WriteMessage("Активно пространство модели\n");
- }
- else
- {
- ed.WriteMessage("Активно пространство листа\n");
- }
- // Используем LayoutManager для получения текущего листа
- LayoutManager layoutMgr = LayoutManager.Current;
- ed.WriteMessage(layoutMgr.CurrentLayout +
- " – активный лист\n");
- }
Источник: https://adndevblog.typepad.com/autocad/2012/06/identifying-active-space-and-active-layout.html
Автор перевода: Александр Ривилис
Опубликовано 27.05.2021
Опубликовано 27.05.2021