29/10/2013
Использование пользовательских данных чертежа в полях
.NET/ObjectARX API позволяет использовать пользовательские свойства в полях. Следующий код показывает, как это сделать на примере пользовательского свойства Адрес (“Address”).
Код - C#: [Выделить]
- [CommandMethod("AddCusPropertyField")]
- public void AddCusPropertyField()
- {
- Document doc = Application.DocumentManager.MdiActiveDocument;
- Database db = doc.Database;
- Editor ed = doc.Editor;
- PromptPointOptions ppo = new
- PromptPointOptions("\nУкажите точку вставки: ");
- PromptPointResult ppr = ed.GetPoint(ppo);
- if (ppr.Status != PromptStatus.OK)
- return;
- using (Transaction Tx = db.TransactionManager.StartTransaction())
- {
- //%<\AcVar CustomDP.Address \f "%tc4">%
- MText text = new MText();
- text.Location = ppr.Value;
- ObjectId ModelSpaceId =
- SymbolUtilityServices.GetBlockModelSpaceId(db);
- BlockTableRecord record = Tx.GetObject(ModelSpaceId,
- OpenMode.ForWrite) as BlockTableRecord;
- record.AppendEntity(text);
- Tx.AddNewlyCreatedDBObject(text, true);
- Field custom =
- new Field("%<\\AcVar CustomDP.Address \\f \"%tc4\">%");
- custom.EvaluationOption = FieldEvaluationOptions.Automatic;
- custom.Evaluate((int)(FieldEvaluationOptions.Automatic), db);
- text.SetField(custom);
- Tx.AddNewlyCreatedDBObject(custom, true);
- Tx.Commit();
- ed.Regen();
- }
- }
Источник: http://adndevblog.typepad.com/autocad/2012/07/using-custom-drawing-property-in-fields.html
Обсуждение: http://adn-cis.org/forum/index.php?topic=294
Опубликовано 29.10.2013