使用C#中的AutoCAD .NET API对CAD二次开发,获取动态块可见性值

  • 0.效果
  • 1.获取选择集,得到ObjectId
  • 2.将ObjectId转换为BlockReference对象并获取其DynamicBlockReferencePropertyCollection
  • 3.读取当前可见性值
  • 4.完整代码

0.效果

1.获取选择集,得到ObjectId

PromptSelectionResult psr = ed.GetSelection();
SelectionSet sSet = psr.Value;
ObjectId[] selectedIds = sSet.GetObjectIds();  // 获取选择集的ObjectiID.
ObjectId blockId = selectedIds[0]; // 假设只选择了一个块

2.将ObjectId转换为BlockReference对象并获取其DynamicBlockReferencePropertyCollection

// 通过ObjectId打开块引用
using (Transaction tr = doc.TransactionManager.StartTransaction())
{// 将ObjectId转换为BlockReference对象并获取其DynamicBlockReferencePropertyCollectionBlockReference blockRef = tr.GetObject(blockId, OpenMode.ForRead) as BlockReference;DynamicBlockReferencePropertyCollection props = blockRef.DynamicBlockReferencePropertyCollection;
}

3.读取当前可见性值

// 获取可见性属性值
if (props.Count != 0) { Birection = props[0].Value.ToString(); }

4.完整代码


// 获取当前文档和数据库
Document doc = Application.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
Editor ed = doc.Editor;
string Birection = "无可见性属性";
PromptSelectionResult psr = ed.GetSelection();
SelectionSet sSet = psr.Value;
ObjectId[] selectedIds = sSet.GetObjectIds();  // 获取选择集的ObjectiID.
ObjectId blockId = selectedIds[0]; // 假设只选择了一个块
// 通过ObjectId打开块引用
using (Transaction tr = doc.TransactionManager.StartTransaction())
{// 将ObjectId转换为BlockReference对象并获取其DynamicBlockReferencePropertyCollectionBlockReference blockRef = tr.GetObject(blockId, OpenMode.ForRead) as BlockReference;DynamicBlockReferencePropertyCollection props = blockRef.DynamicBlockReferencePropertyCollection;// 获取可见性属性值if (props.Count != 0) { Birection = props[0].Value.ToString(); }
}
ed.WriteMessage("\n可见性值为:{0}", Birection);

使用C#中的AutoCAD .NET API对CAD二次开发,获取动态块可见性值相关推荐

  1. 使用C#中的AutoCAD .NET API对CAD二次开发,获取块的属性

    使用C#中的AutoCAD .NET API对CAD二次开发,获取块的属性 /// <summary> /// 获得块对象的所有属性 /// </summary> public ...

  2. CAD二次开发:用C#在AutoCAD中插入栅格图像

    CAD二次开发:用C#在AutoCAD中插入栅格图像 using Autodesk.AutoCAD.Runtime; using Autodesk.AutoCAD.ApplicationService ...

  3. intersect 相交 范围_关于CAD二次开发中(范围线自相交)相交线的问题

    CAD二次开发对于毕业没多久,又是半路出家的我来说,是一个很大的挑战,遇到过很多难以解决的问题,这次在CAD二次开发遇到一个很苦恼的问题:判断 一个由线段组成的闭合区域中,是否存在着相互之间相交的线段 ...

  4. 基于C#的中望CAD二次开发学习笔记(1)环境测试

    目录 前言 一.ZRXSDK的安装使用 二.创建项目 三.编写环境测试代码 四.在ZWCAD中测试 参考资料 总结 前言 作为一个设计院搬砖人,和各种CAD打交道是必不可少的.当然,其中最为正统的是A ...

  5. c#获取autocad安装位置_Robotstudio软件二次开发:基于C#语言的Smart组件开发基础

    Robotstudio软件除了支持Add-Ins插件的二次开发以外,还支持Smart组件的二次开发. 开发语言同样是基于 .NET框架的C#语言或VB语言. Smart组件是Robotstudio软件 ...

  6. lisp陡坎程序_(终稿)毕业论文设计_Autolisp在CAD二次开发中的应用.doc(最终版)最新版...

    <毕业论文:Autolisp在CAD二次开发中的应用.doc>由会员分享,可免费在线阅读全文,更多与<(终稿)毕业论文设计_Autolisp在CAD二次开发中的应用.doc(最终版) ...

  7. 引用:基于C#的中望CAD二次开发学习笔记

    目录 前言 一.ZRXSDK的安装使用 二.创建项目 三.编写环境测试代码 四.在ZWCAD中测试 参考资料 总结 前言 作为一个设计院搬砖人,和各种CAD打交道是必不可少的.当然,其中最为正统的是A ...

  8. 关于objectArx /CAD二次开发中“属性块”操作

    关于objectArx /CAD二次开发中"属性块"操作 属性块就是在图块上附加一些文字属性(Attribute),这些文字可以非常方便地修改.属性块被广泛应用在工程设计和机械设计 ...

  9. 我的CAD二次开发程序中的操作excel的部分

    这是我的CAD二次开发程序中的操作excel的部分,特此分享 using System; using System.Collections.Generic; using System.Text; us ...

最新文章

  1. supervisor源码分析
  2. python 打印数组变量_使用Python将数组的元素导出到变量中(unpacking)
  3. 中文转换成阿拉伯数字
  4. Android Studio 插件开发详解三:翻译插件实战
  5. Premiere Pro CC2017教程(三)
  6. 嵌入式根文件系统的移植和制作详解
  7. (66)FPGA模块调用(Verilog调用Verilog)
  8. 回溯法解决0-1背包问题
  9. VLAN中tagged与untagged的处理(转)
  10. php 显示探针_PHP探针
  11. Java base64转inputStream
  12. centos 安装 时间校准与定时同步
  13. 图表数据分析怎么做,举实例给你说清楚
  14. 【SQL】获取最近一周日期列表
  15. 读左飞老师的《大学背景到底对你影响有多大》后感
  16. 仿豌豆荚实现android连接pc方法
  17. 【产业互联网周报】外媒:英特尔等公司暂停向俄罗斯发货;阿里云季度营收195亿元;第四范式再次提交上市申请...
  18. set的三种遍历方式-----不能用for循环遍历(无序)
  19. 七年级 电子计算机 教材分析,七年级信息技术教学计划表
  20. 《Beta Embeddings for Multi-Hop Logical Reasoning in Knowledge Graphs》论文阅读笔记

热门文章

  1. LeetCode 2353. 设计食物评分系统(sortedcontainers)
  2. m4a音频格式转换器:让音频轻松换装
  3. logit回归模型_常见机器学习模型的假设
  4. ch4在c语言中,C语言-ch4顺序程序设计.ppt
  5. golang mysql 单元测试_golang 之单元测试
  6. 生活社区如何提供便民服务?手把手教你
  7. mysql 按照某个时间段分组统计
  8. java常用修饰符(随堂笔记)
  9. 2013-Hessian
  10. 怎么学习ArcPy?聊一聊学习心得