【问题标题】:C#.NET Autocad 2021 API: Accessing specific BlockTableRecords within a given BlockTable?C#.NET Autocad 2021 API:访问给定 BlockTable 中的特定 BlockTableRecords?
【发布时间】:2021-06-11 04:23:04
【问题描述】:
我正在寻找有关 BlockTable 类细节的建议。我知道,尽管您可以获得块表包含的所有块表记录的枚举器,但我似乎找不到更有效的方法来访问特定 BlockTableRecord 的 ObjectID。我知道计算机可以访问这些信息......无论如何,我无法想象 BlockTable.Has() 函数没有它也能正常工作。我也检查了文档,但它实际上并没有在任何地方列出 BlockTable 类的函数或属性:/
我当前的代码依赖于用户输入的字符串来检索块,当插入 BlockTable.Has() 时,它成功返回正确的布尔结果。
感谢任何帮助!
泰勒
【问题讨论】:
标签:
c#
.net
autocad
autocad-plugin
【解决方案1】:
BlockTable 包装器实现了一个索引器,它可以与string 或ObjectId 一起使用。即myBlkTable["theBlockName"]
注意:不能保证这是“有效的”,可能只是在底层枚举数组。您需要进行一些时间试验,看看哪种方法更有效。
问问自己,您正在寻找的微优化是否值得您花时间在上面,这总是很好的。听起来您只是在处理用户命令,即使有一个有效的查找,这对用户体验有什么影响吗?答案可能是否定的。这种事情只有在循环重复查询的大量集合中才变得重要。