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

30/05/2013

Список определений подложек DWF в чертеже

Каждое определение DWF-подложки хранится в словаре именованных объектов (NOD) в словаре с именем "ACAD_DWFDEFINITIONS". Следующий код показывает как можно пройтись по словарю "ACAD_DWFDEFINITIONS" и распечатать все определения всех DWF-подложек.

Код - C#: [Выделить]
  1. [CommandMethod("DWFUnderlayList")]
  2. static public void DWFUnderlayList()
  3. {
  4.     Document doc = Application.DocumentManager.MdiActiveDocument;
  5.     Database db = doc.Database;
  6.     Editor ed = doc.Editor;
  7.  
  8.     using (Transaction tr =
  9.                     db.TransactionManager.StartTransaction())
  10.     {
  11.         DBDictionary nod = (DBDictionary)tr.GetObject(
  12.                 db.NamedObjectsDictionaryId, OpenMode.ForRead);
  13.  
  14.         string defDictKey = UnderlayDefinition.GetDictionaryKey(
  15.                                             typeof(DwfDefinition));
  16.  
  17.         if (nod.Contains(defDictKey))
  18.         {
  19.             DBDictionary dwfDict =
  20.                         (DBDictionary)tr.GetObject(
  21.                            nod.GetAt(defDictKey), OpenMode.ForRead);
  22.  
  23.             foreach (DBDictionaryEntry entry in dwfDict)
  24.             {
  25.                 DwfDefinition dwfDef = (DwfDefinition)tr.GetObject(
  26.                                     entry.Value, OpenMode.ForRead);
  27.  
  28.                 ed.WriteMessage(dwfDef.ActiveFileName + "\n");
  29.             }
  30.         }
  31.         else
  32.         {
  33.             ed.WriteMessage("Нет DWF-подложек в файле чертежа\n");
  34.         }
  35.  
  36.         tr.Commit();
  37.     }
  38. }

Источник: http://adndevblog.typepad.com/autocad/2013/02/list-dwf-underlay-definitions-in-the-drawing.html

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

Опубликовано 30.05.2013
Отредактировано 08.06.2013 в 02:24:45