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

17/10/2013

Получение кода поля (field) из объекта Field

Следующая программа показывает процедуру получения кода поля текстового примитива. Сначала она проверяет есть ли поля, ассоциированные с этим текстовым примитивом, при помощи метода “HasFields”. Затем используется метод “GetField” для получения объекта Field, а из него при помощи метода “GetFieldCode” получается код поля.

Код - C#: [Выделить]
  1. [CommandMethod("GetFieldcode")]
  2. public void GetFieldcode()
  3. {
  4.     Document doc = Application.DocumentManager.MdiActiveDocument;
  5.     Database db = doc.Database;
  6.     Editor ed = doc.Editor;
  7.  
  8.     PromptEntityOptions options =
  9.             new PromptEntityOptions("\nВыберите Mtext");
  10.     options.SetRejectMessage("\nЭто не Mtext");
  11.     options.AddAllowedClass(typeof(MText), false);
  12.  
  13.     PromptEntityResult acSSPrompt = ed.GetEntity(options);
  14.  
  15.     if (acSSPrompt.Status != PromptStatus.OK)
  16.         return;
  17.  
  18.     using (Transaction Tx = db.TransactionManager.StartTransaction())
  19.     {
  20.         //get the mleader
  21.         MText mtext = Tx.GetObject(acSSPrompt.ObjectId,
  22.                                    OpenMode.ForRead) as MText;
  23.  
  24.         if (!mtext.HasFields)
  25.         {
  26.             ed.WriteMessage("\nУ примитива нет полей.");
  27.             return;
  28.         }
  29.  
  30.         ObjectId id = mtext.GetField("TEXT");
  31.         Field field = Tx.GetObject(id, OpenMode.ForRead) as Field;
  32.  
  33.         string fldCode = field.GetFieldCode(FieldCodeFlags.AddMarkers
  34.                                          | FieldCodeFlags.FieldCode);
  35.         ed.WriteMessage("\nКод поля: " + fldCode);
  36.  
  37.         Tx.Commit();
  38.     }
  39. }

Источник: http://adndevblog.typepad.com/autocad/2012/07/getting-field-code-from-field-object.html

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

Опубликовано 17.10.2013