17/10/2013
Получение кода поля (field) из объекта Field
Следующая программа показывает процедуру получения кода поля текстового примитива. Сначала она проверяет есть ли поля, ассоциированные с этим текстовым примитивом, при помощи метода “HasFields”. Затем используется метод “GetField” для получения объекта Field, а из него при помощи метода “GetFieldCode” получается код поля.
Код - C#: [Выделить]
- [CommandMethod("GetFieldcode")]
- public void GetFieldcode()
- {
- Document doc = Application.DocumentManager.MdiActiveDocument;
- Database db = doc.Database;
- Editor ed = doc.Editor;
- PromptEntityOptions options =
- new PromptEntityOptions("\nВыберите Mtext");
- options.SetRejectMessage("\nЭто не Mtext");
- options.AddAllowedClass(typeof(MText), false);
- PromptEntityResult acSSPrompt = ed.GetEntity(options);
- if (acSSPrompt.Status != PromptStatus.OK)
- return;
- using (Transaction Tx = db.TransactionManager.StartTransaction())
- {
- //get the mleader
- MText mtext = Tx.GetObject(acSSPrompt.ObjectId,
- OpenMode.ForRead) as MText;
- if (!mtext.HasFields)
- {
- ed.WriteMessage("\nУ примитива нет полей.");
- return;
- }
- ObjectId id = mtext.GetField("TEXT");
- Field field = Tx.GetObject(id, OpenMode.ForRead) as Field;
- string fldCode = field.GetFieldCode(FieldCodeFlags.AddMarkers
- | FieldCodeFlags.FieldCode);
- ed.WriteMessage("\nКод поля: " + fldCode);
- Tx.Commit();
- }
- }
Источник: 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