我写的函数代码如下:
- public void SetXData(ObjectId ID, string DataText)
- {
- Database db = HostApplicationServices.WorkingDatabase;
- using (Transaction trans = db.TransactionManager.StartTransaction())
- {
- DBObject dbobj = db.TransactionManager.GetObject(ID, OpenMode.ForWrite, false);
- RegAppTable reg = (RegAppTable)trans.GetObject(db.RegAppTableId, OpenMode.ForWrite);
- //如果没有名为"实体扩展数据"的注册应用程序表记录,则
- if (!reg.Has("实体扩展数据"))
- {
- //创建一个注册应用程序表记录用来表示扩展数据
- RegAppTableRecord app = new RegAppTableRecord();
- //设置扩展数据的名字
- app.Name = "实体扩展数据";
- //在注册应用程序表加入扩展数据
- reg.Add(app);
- trans.AddNewlyCreatedDBObject(app, true);
- }
- //设置扩展数据的内容
- ResultBuffer rb = new ResultBuffer(
- new TypedValue((int)DxfCode.ExtendedDataRegAppName, "实体扩展数据"),
- new TypedValue((int)DxfCode.ExtendedDataAsciiString, DataText));
- //将新建的扩展数据附加到所选择的实体中
- dbobj.XData = rb;
- trans.Commit();
- }
- }
其它实体可以添加扩展数据,就是块参照加不了, 帮忙看看有什么问题。 |