明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3334|回复: 5

删除实体的扩展数据

[复制链接]
发表于 2011-9-19 09:13:49 | 显示全部楼层 |阅读模式
最近有朋友找删除实体的扩展数据,看来还是在此发个贴,以便大家学习参考:


  1.         public static void RemoveXData(Entity EntObject, string XDataName)
  2.         {
  3.             Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
  4.             Database db = HostApplicationServices.WorkingDatabase;
  5.             using (DocumentLock docLock = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.LockDocument())
  6.             {
  7.                 try
  8.                 {
  9.                     using (Transaction tr = db.TransactionManager.StartTransaction())
  10.                     {
  11.                         DBObject obj = tr.GetObject(EntObject.ObjectId, OpenMode.ForWrite);
  12.                         ResultBuffer rb = obj.XData;
  13.                         if (rb != null)
  14.                         {
  15.                             TypedValue[] values = rb.AsArray();
  16.                             for (int i = 0; i < values.Length; i++)
  17.                             {
  18.                                 if (values.TypeCode == (int)DxfCode.ExtendedDataRegAppName && values.Value.ToString() == XDataName)
  19.                                 {
  20.                                     //移除之
  21.                                     TypedValue[] values_New = { new TypedValue((int)DxfCode.ExtendedDataRegAppName, values.Value.ToString()) };
  22.                                     ResultBuffer rb_New = new ResultBuffer(values_New);
  23.                                     obj.UpgradeOpen();
  24.                                     obj.XData = rb_New;
  25.                                     obj.DowngradeOpen();
  26.                                 }
  27.                             }
  28.                         }
  29.                         tr.Commit();
  30.                     }
  31.                 }
  32.                 catch (System.Exception exc)
  33.                 {
  34.                     ed.WriteMessage(exc.Message);
  35.                 }
  36.             }
  37.         }

发表于 2011-9-19 19:23:27 | 显示全部楼层
正好需要,收藏了。
发表于 2011-9-19 21:14:40 | 显示全部楼层
本帖最后由 chpmould 于 2011-9-19 22:01 编辑

先占个位,有空再研究下.
发表于 2011-9-19 21:17:21 | 显示全部楼层
先占个位,有空再研究下.
发表于 2011-9-20 08:05:18 来自手机 | 显示全部楼层
占楼强烈支持响铃大大,嘿嘿
最近.net版块很冷清哦,多放些程序呀
发表于 2011-9-20 16:15:40 | 显示全部楼层
谢了,收藏了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 21:16 , Processed in 0.199208 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表