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

ADN Club => AutoCAD .NET API => Тема начата: zr74 от 14-08-2022, 17:49:48

Название: Как получить значение Xrecord в виде строки?
Отправлено: zr74 от 14-08-2022, 17:49:48
Добрый день! Подскажите пожалуйста, как  получить  значение Xrecord?
Код - C# [Выбрать]
  1. [CommandMethod("GetXR")]
  2.         static public void GetXRecord()
  3.         {
  4.             Document doc = Application.DocumentManager.MdiActiveDocument;
  5.             Database db = doc.Database;
  6.             Editor ed = doc.Editor;
  7.  
  8.             // выбираем объекты на чертеже
  9.             PromptSelectionResult res = ed.GetSelection();
  10.             if (res.Status != PromptStatus.OK) return;
  11.            
  12.             using (Transaction tr = db.TransactionManager.StartTransaction())
  13.             {                                    
  14.                 // Получаем набор выбранных объектов
  15.                 ObjectId[] ids = res.Value.GetObjectIds(); // получаем массив ID объектов
  16.                 foreach (ObjectId id in ids)
  17.                 {
  18.                     DBObject dbObj = tr.GetObject(id, OpenMode.ForRead);
  19.                     ObjectId surId = dbObj.ExtensionDictionary;
  20.                     if (surId != ObjectId.Null)
  21.                     {
  22.                         DBDictionary dbExt = (DBDictionary)tr.GetObject(surId, OpenMode.ForRead);
  23.                         ed.WriteMessage("\nXrecord:" + dbExt......);//что здесь надо написать?
  24.                     }
  25.                     else
  26.                     {
  27.                         ed.WriteMessage("\nВыбранный элемент не содержит данные Xrecord.");
  28.                     }
  29.                                              
  30.                 }
  31.                 tr.Commit();
  32.             }
  33.            
  34.         }
Название: Re: Как получить значение Xrecord в виде строки?
Отправлено: Александр Ривилис от 14-08-2022, 23:57:24
dbExt.GetAt() - получаешь ObjectId или для XRecord, если она непосредственно в ExtDictionary, или другой DBDictionary, в которой уже XRecord.
Название: Re: Как получить значение Xrecord в виде строки?
Отправлено: zr74 от 15-08-2022, 04:37:00
Понял, спасибо.