Как получить значение Xrecord в виде строки?

Автор Тема: Как получить значение Xrecord в виде строки?  (Прочитано 2544 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн zr74Автор темы

  • ADN OPEN
  • Сообщений: 46
  • Карма: 1
Добрый день! Подскажите пожалуйста, как  получить  значение 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.         }

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
dbExt.GetAt() - получаешь ObjectId или для XRecord, если она непосредственно в ExtDictionary, или другой DBDictionary, в которой уже XRecord.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн zr74Автор темы

  • ADN OPEN
  • Сообщений: 46
  • Карма: 1
Понял, спасибо.