首页 > Web开发 > 详细

CAD.NET二次开发过程中的记录——关于扩展数据

时间:2021-05-17 13:42:20      阅读:8      评论:0      收藏:0      [点我收藏+]

一、创建对象扩展字典

1、开启事务,读模式打开对象,判断对象是否存在扩展字典(DBObject.ExtensionDictionary == ObjectId.Null)

2、升级为写权限,创建扩展字典(DBObject.CreateExtensionDictionary())

3、获取对象扩展字典,并以读模式打开字典(DBObject.ExtensionDictionary .GetObject())

4、设置扩展字典的扩展记录,记录数据。需要判断字典中是否存在当前键的数据

  if (DBDictionary.Contains(key))
    写模式获取扩展记录 Xrecord  = ((ObjectId)DBDictionary[key]).GetObject()
  else
    升级字典权限为写模式,设置字典的键值对(DBDictionary..SetAt(key, Xrecord)),(字典的值有Xrecord或DataTable)

  将新建的扩展记录添加到事务(tr.AddNewlyCreatedDBObject(Xrecord, true))

5、设置扩展记录的数据(Xrecord.Data = ResultBuffer

6、扩展记录的数据ResultBuffer中接受的是 TypedValue数组,TypedValue示例: new TypedValue((int)DxfCode.ExtendedDataAsciiString, "这是我的名字")

7、提交事务

二、获取对象扩展字典的扩展记录

1、Using开启事务,读模式打开对象,判断对象是否存在扩展字典(DBObject.ExtensionDictionary == ObjectId.Null)

2、获取对象扩展字典,并以读模式打开字典(DBObject.ExtensionDictionary .GetObject())

3、获取扩展字典中的扩展记录数据。需要判断字典中是否存在当前键的数据,不存在就返回(DBDictionary.Contains(key))

4、获取字典对应的键的扩展记录ID((ObjectId)DBDictionary[key])),判断扩展记录的类型(id.ObjectClass != RXObject.GetClass(typeof(Xrecord)))

5、以读模式打开扩展记录(ObjectId.GetObject())

6、扩展记录中遍历获取数据(foreach (TypedValue tv in Xrecord.Data.AsArray()))

7、销毁事务

CAD.NET二次开发过程中的记录——关于扩展数据

原文:https://www.cnblogs.com/taogeli/p/14776145.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!