我遇到了一个问题,我需要选择图形中具有特定扩展数据的所有实体。通常我会这样做: Dim entities = New objectid collection()。
Dim typed values As typed value()= { New typed value(DXF code,ExtendedDataRegAppName," AppName")} 。
Dim selection filter = New selection filter(typed values)。
Dim结果为PromptSelectionResult = Active,editor . SelectAll(selection filter)。
。
如果结果,Status = PromptStatus,那好吧。
entities = New objectid collection(结果,value . get objectid())。
End If但是,这不会获取外部参照或块中的任何嵌套实体,实现这一目标的最佳方式是什么?是检查块引用,然后分解项目,清洗并重复吗?有没有人已经完成了这一步的样板代码?这似乎是一件需要做很多的事情,**编辑**我需要在没有任何用户交互的情况下完成此操作,否则我将只使用其中一个GetNestedEntity例程。
我注意到在我发布代码后,我已经更改了TryCast并删除了事务,以便像这样将实体直接转换为BlockReference。If entityId,ObjectClass = rxc Then。
Dim block reference = direct cast(entity,BlockReference)。
Dim block table record 2 = try cast(事务,GetObject(blockReference,BlockTableRecord,OpenMode。ForRead,False,True),BlockTableRecord)。
...我将检查运算符的类型,我的所有代码肯定会从代码审查中受益,事实上,我每天晚上都花很多时间复习代码,学习程序课程,尽可能多的学习。我以前没有受过训练,所以我尽我所能把事情做好。。