AutoCAD .Net 使用扩展字典存储自定义数据
来源:互联网 发布:淘宝服装平铺拍摄 编辑:程序博客网 时间:2024/06/05 03:46
每个 AutoCAD 数据库元素对象(DBObject)都可以使用扩展字典来存储自定义数据。
通常这一机制用来为图元对象(比如:线、圆等)存储非图形数据。
以下示例代码实现:
AddXRecordToEntity: 让用户选择一图元,然后在图元的扩展字典中存储自定义数据。
GetXRecordFromEntity: 让用户选择一图元,读取图元的扩展字典中存储的自定义数据。
[CommandMethod("AddXRecordToEntity")]public void AddXRecordToEntity(){ Document doc = Application.DocumentManager.MdiActiveDocument; Database db = doc.Database; PromptEntityResult per = doc.Editor.GetEntity("\nSelect an entity: "); if (per.Status != PromptStatus.OK) { return; } using (Transaction tr = db.TransactionManager.StartTransaction()) { Entity entity = tr.GetObject(per.ObjectId, OpenMode.ForWrite) as Entity; if (entity.ExtensionDictionary == ObjectId.Null) { entity.CreateExtensionDictionary(); } DBDictionary xDict = tr.GetObject(entity.ExtensionDictionary, OpenMode.ForRead) as DBDictionary; if (!xDict.Contains("CAXDEV")) { xDict.UpgradeOpen(); Xrecord xRec = new Xrecord(); ResultBuffer rb = new ResultBuffer(); rb.Add(new TypedValue((int)DxfCode.Text, "Hello www.caxdev.com")); rb.Add(new TypedValue((int)DxfCode.Int32, 123)); rb.Add(new TypedValue((int)DxfCode.Real, 1.2345)); xRec.Data = rb; xDict.SetAt("CAXDEV", xRec); tr.AddNewlyCreatedDBObject(xRec, true); } tr.Commit(); }}[CommandMethod("GetXRecordFromEntity")]public void GetXRecordFromEntity(){ Document doc = Application.DocumentManager.MdiActiveDocument; Database db = doc.Database; PromptEntityResult per = doc.Editor.GetEntity("\nSelect an entity: "); if (per.Status != PromptStatus.OK) { return; } using (Transaction tr = db.TransactionManager.StartTransaction()) { Entity entity = tr.GetObject(per.ObjectId, OpenMode.ForRead) as Entity; if (entity.ExtensionDictionary != ObjectId.Null) { DBDictionary xDict = tr.GetObject(entity.ExtensionDictionary, OpenMode.ForRead) as DBDictionary; if (xDict.Contains("CAXDEV")) { ObjectId xRecId = xDict.GetAt("CAXDEV"); Xrecord xRec = tr.GetObject(xRecId, OpenMode.ForRead) as Xrecord; if (xRec == null) return; foreach (TypedValue tv in xRec.Data) { doc.Editor.WriteMessage("\nTypeCode: {0}; Value: {1}", tv.TypeCode, tv.Value); } } } }}
参考文章:
Adding extension dictionary
Using .NET in the Land of NOD
阅读全文
0 0
- AutoCAD .Net 使用扩展字典存储自定义数据
- AutoCAD .Net 在dwg文件中存储自定义数据
- AutoCAD.NET获取实体的ExtendedDataAsciiString扩展数据信息
- 使用.NET存储XML数据
- 使用.NET存储XML数据
- 使用.NET存储XML数据
- 使用.NET存储XML数据
- 使用.NET存储XML数据
- 使用.NET存储XML数据
- 使用.NET存储XML数据
- 获取数据字典 存储过程
- 使用存储过程修改数据 (ADO.NET)
- .net 将字典数据转换成xml 字符串, 以及传参至存储过程后如何取值
- 数据字典及其使用
- 数据字典开发使用
- 数据字典及其使用
- 自定义字典表的使用
- AutoCAD.NET:第一章 AutoCAD.NET二次开发概述
- 通过MrcroBlaze将配置文件通过BPI烧进FLASH
- 陶哲轩教你学数学 第1章 解题策略 读书笔记
- ActiveMQ 实现点对点的消息模型小Demo
- netty源码分析之-ReferenceCounted详解(12)
- java发送http请求
- AutoCAD .Net 使用扩展字典存储自定义数据
- win下手工卸载ORACLE及服务项删除
- phpWeb
- 7、监听器用法
- Android-问题列表-转载
- list<T>删除不满足条件的数据
- 拆轮子系列之剖析EventBus源码
- Socket基础使用
- 把一段话的每个首字母大写,substring,spilt,length,length(),size()