明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3878|回复: 4

删除块中的AttributeReference 属性

[复制链接]
发表于 2012-11-9 21:07:51 | 显示全部楼层 |阅读模式
                            有一些属性块,我想通过下面的代码把其中的属性删除掉。
                            using (Transaction trans = db.TransactionManager.StartTransaction())
                            {
                                BlockReference CurBlock = (BlockReference)trans.GetObject(AllObjIDs[i], OpenMode.ForWrite);
                                AttributeCollection CurAttributeCollection = CurBlock.AttributeCollection;
                                for (int j = (CurAttributeCollection.Count - 1); j >= 0; j--)
                                {
                                    AttributeReference CurAttributeReference = (AttributeReference)trans.GetObject(CurAttributeCollection[j], OpenMode.ForWrite);
                                    CurAttributeReference.Erase();
                                }
                                
                                trans.Commit();
                            }

                             代码运行完后,发现CurBlock.AttributeCollection数目还是大于零,这是怎么回事?求各位谈谈正确从块中删除AttributeReference 的方法。
发表于 2012-11-9 23:26:55 | 显示全部楼层
块属性来自于块记录,按理说应该不能在块参考里面删除吧?否则不是两个块参考可以不一样了?
你说“CurBlock.AttributeCollection数目还是大于零”,但块属性还能不能见到,或者双击块参考后还有没有块属性列出?
 楼主| 发表于 2012-11-10 15:28:16 | 显示全部楼层
sieben 发表于 2012-11-9 23:26
块属性来自于块记录,按理说应该不能在块参考里面删除吧?否则不是两个块参考可以不一样了?
你说“CurBloc ...

谢谢。用代码创建带属性的块参照的流程是这样的:(1)创建一个BlockReference(2)将其添加模型空间,获得其ObjectID(3)判断其对应的BlockTableRecord的HasAttributionDefinitoins属性(4)如果有属性定义,就可以获取块记录中需要的AttributeDefinitoin,创建AttributeReference,与块参考关联,确定AttributeReference的值,然后再通知事物处理添加新创建的AttributeReference。所以两个块参照,即便块名相同,也可能拥有不同的属性名称。
我这样删除后,块属性已经开不到了,双击块会提示“无法从选定的块参照读取块属性”。
发表于 2012-11-10 15:58:02 | 显示全部楼层
所以你当前的情况应该是正常的,尽管AttributeCollection数目还是大于零,但找不到块属性;
可以说你是删除了块属性,也可以说没有;
发表于 2015-4-19 16:14:35 来自手机 | 显示全部楼层
本帖最后由 糕笔仔 于 2015-4-19 16:39 编辑

同问…添加块参照的时候顺便添加了属性…想后面继续添加属性…或者删除属性…这个不应该不难…要找选中对象的点…用来显示属性的位置
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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