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

29/10/2013

Использование пользовательских данных чертежа в полях

.NET/ObjectARX API позволяет использовать пользовательские свойства в полях. Следующий код показывает, как это сделать на примере пользовательского свойства Адрес (“Address”).

Код - C#: [Выделить]
  1. [CommandMethod("AddCusPropertyField")]
  2. public void AddCusPropertyField()
  3. {
  4.     Document doc = Application.DocumentManager.MdiActiveDocument;
  5.     Database db = doc.Database;
  6.     Editor ed = doc.Editor;
  7.  
  8.     PromptPointOptions ppo = new
  9.                 PromptPointOptions("\nУкажите точку вставки: ");
  10.  
  11.     PromptPointResult ppr = ed.GetPoint(ppo);
  12.  
  13.     if (ppr.Status != PromptStatus.OK)
  14.         return;
  15.  
  16.     using (Transaction Tx = db.TransactionManager.StartTransaction())
  17.     {
  18.         //%<\AcVar CustomDP.Address \f "%tc4">%
  19.         MText text = new MText();
  20.         text.Location = ppr.Value;
  21.         ObjectId ModelSpaceId =
  22.             SymbolUtilityServices.GetBlockModelSpaceId(db);
  23.  
  24.         BlockTableRecord record = Tx.GetObject(ModelSpaceId,
  25.                              OpenMode.ForWrite) as BlockTableRecord;
  26.         record.AppendEntity(text);
  27.         Tx.AddNewlyCreatedDBObject(text, true);
  28.  
  29.         Field custom =
  30.            new Field("%<\\AcVar CustomDP.Address \\f \"%tc4\">%");
  31.  
  32.         custom.EvaluationOption = FieldEvaluationOptions.Automatic;
  33.         custom.Evaluate((int)(FieldEvaluationOptions.Automatic), db);
  34.         text.SetField(custom);
  35.         Tx.AddNewlyCreatedDBObject(custom, true);
  36.  
  37.         Tx.Commit();
  38.  
  39.         ed.Regen();
  40.     }
  41. }

Источник: 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