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

29/03/2014

SystemVariableEnumerator - новый класс в AutoCAD 2015

Новый класс SystemVariableEnumerator обеспечивает возможность пройтись по всем публичным системным переменным и получить их имена, типы данных, диапазон изменения (если есть), статус «только для чтения» и где они хранятся. В ObjectARX соответствующий класс называется AcEdSysVarIterator

Пример использования:

Код - C#: [Выделить]
  1. [CommandMethod("SysVarListTest")]
  2. public void SysVarListTest() // Этот метод может иметь любое имя
  3. {
  4.     Document doc = Application.DocumentManager.MdiActiveDocument;
  5.     Editor ed = doc.Editor;
  6.  
  7.     using(SystemVariableEnumerator sysVar
  8.                         = new SystemVariableEnumerator())
  9.     {
  10.         string storage = "";
  11.  
  12.         while (sysVar.MoveNext())
  13.         {
  14.             Variable var = sysVar.Current;
  15.  
  16.             switch (var.Storage)
  17.             {
  18.                 case Variable.StorageType.PerDatabase:
  19.                     storage = "В чертеже";
  20.                     break;
  21.  
  22.                 case Variable.StorageType.PerProfile:
  23.                     storage = "В профиле";
  24.                     break;
  25.  
  26.                 case Variable.StorageType.PerSession:
  27.                     storage = "В сессии AutoCAD";
  28.                     break;
  29.  
  30.                 case Variable.StorageType.PerUser:
  31.                     storage = "Для каждого пользователя";
  32.                     break;
  33.  
  34.                 case Variable.StorageType.PerViewport:
  35.                     storage = "Для каждого вида";
  36.                     break;
  37.             }
  38.  
  39.             ed.WriteMessage(var.Name + "   " + storage + "\n");
  40.  
  41.         }
  42.     }
  43.     // Используем Application.GetSystemVariable() для получения значения.
  44. }

Источник: http://adndevblog.typepad.com/autocad/2014/03/systemvariableenumerator-new-class-in-autocad-2015.html

Обсуждение: http://adn-cis.org/forum/index.php?topic=639

Опубликовано 29.03.2014
Отредактировано 02.04.2014 в 21:24:12