CAD二次开发学习笔记(C#.NET)之 批量导出增强属性块属性

在cad开发过程中,经常会遇到这样的需求,就是需要导出把框选区域的属性块的属性批量导出,下述代码已封装好。

#region 根据块引用id获取动态块属性
        public static Dictionary<string, string> GetBlockRefAttDic(this ObjectId blockRefId)
        {
            Dictionary<string, string> attDic = new Dictionary<string, string>();
            Database db = HostApplicationServices.WorkingDatabase;
            using (Transaction trans = db.TransactionManager.StartTransaction())
            {
                BlockReference bkRef = (BlockReference)blockRefId.GetObject(OpenMode.ForRead);
                BlockTable bt = (BlockTable)trans.GetObject(db.BlockTableId, OpenMode.ForRead);
                string bkRefName = bkRef.Name;
                BlockTableRecord btr = (BlockTableRecord)trans.GetObject(bt[bkRefName], OpenMode.ForRead);
                if (btr.HasAttributeDefinitions)
                {
                    foreach (ObjectId objid in bkRef.AttributeCollection)
                    {
                        AttributeReference attr = (AttributeReference)objid.GetObject(OpenMode.ForRead);
                        attDic[attr.Tag.ToString()] = attr.TextString;
                    }
                }

            }

            return attDic;
        }

        #endregion

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CNET99

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值