CAD.NET添加扩展数据

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/csdn_wuwt/article/details/81946434
  1. AutoCAD允许应用程序在实体上添加扩展数据(XData),来为实体提供额外的信息。
  2. 打开注册应用程序表,新建注册应用程序表记录,添加到注册应用程序表中,把新建的扩展数据附加到实体中。
  3. 实现代码如下:
    Autodesk.AutoCAD.DatabaseServices.Database db = id.Database;//获取实体所属的数据库
    //获取数据库的注册应用程序表
    RegAppTable regTable = (RegAppTable)db.RegAppTableId.GetObject(OpenMode.ForWrite);
    //如里不存在名为regAppName的记录,则创建新的注册应用程序表记录
    if (!regTable.Has(regAppName))
    {
    //创建一个注册应用程序表记录用来表示扩展数据
    RegAppTableRecord regRecord = new RegAppTableRecord();
    regRecord.Name = regAppName;//设置扩展数据的名字
    //在注册应用程序表加入扩展数据,并通知事务处理
    regTable.Add(regRecord);
    db.TransactionManager.AddNewlyCreatedDBObject(regRecord, true);
    }
    //以写的方式打开要添加扩展数据的实体
    DBObject obj = id.GetObject(OpenMode.ForWrite);
    //将扩展数据的应用程序名添加到扩展数据项列表的第一项
    values.Insert(0, new TypedValue((int)DxfCode.ExtendedDataRegAppName, regAppName));
    obj.XData = values;//将新建的扩展数据附加到实体中
    regTable.DowngradeOpen();//为了安全,将应用程序注册表切换为读的状态

猜你喜欢

转载自blog.csdn.net/csdn_wuwt/article/details/81946434