为AlignedDimension分配Xdata

时间:2015-05-13 10:08:12

标签: c# autocad

我使用AlignedDimension Autodesk.AutoCAD.DatabaseServices对象在autocad中创建对象。 我想使用XData对象将一些数据存储在Dimension对象的TypedValue中。 但是,当我们将resultBuffer分配给XData时,它不会将值分配给XData

如果对象是实体但是xData没有为AlignedDimension对象分配,则此方法可以正常工作。

是否可以帮助我将typedValue分配给Xdata的{​​{1}}?

以下是代码段:

AlignedDimension

1 个答案:

答案 0 :(得分:1)

要分配xData,您需要定义一个应用程序(在RegAppTable下)并将其用作列表中的第一个TypedValue。

查看http://through-the-interface.typepad.com/through_the_interface/2007/04/adding_xdata_to.html

上的示例

static void AddRegAppTableRecord(string regAppName)
    {
      Document doc =
        Application.DocumentManager.MdiActiveDocument;
      Editor ed = doc.Editor;
      Database db = doc.Database;

      Transaction tr =
        doc.TransactionManager.StartTransaction();
      using (tr)
      {
        RegAppTable rat =
          (RegAppTable)tr.GetObject(
            db.RegAppTableId,
            OpenMode.ForRead,
            false
          );
        if (!rat.Has(regAppName))
        {
          rat.UpgradeOpen();
          RegAppTableRecord ratr =
            new RegAppTableRecord();
          ratr.Name = regAppName;
          rat.Add(ratr);
          tr.AddNewlyCreatedDBObject(ratr, true);
        }
        tr.Commit();
      }
    }