tik 发表于 2013-4-10 09:19:09

基于名称获取图形中的所有块。

我想获得图形中的所有块,而不必遍历所有实体,并检查类型和名称。我创建的所有块都以相同的名称开始。有没有简单的方法可以做到这一点
蒂克。
**** Hidden Message *****

tik 发表于 2013-4-10 09:55:40

BlockTableRecord具有获取所有标准块的方法GetBlockReferenceId。如果是动态的,您还需要GetAnonymousBlockId来获取匿名定义,然后对每个定义调用GetBlockReferenceId

huiz 发表于 2013-4-10 09:57:31

感谢您的回复,我希望有更像linq查询的东西,我可以直接在列表中运行。

tik 发表于 2013-4-10 10:22:39

您可以为类型和名称以及图层等其他所有内容创建选择过滤器。
Dim tv() As TypedValue = {New TypedValue(DxfCode.Start, "INSERT"),
      New TypedValue(DxfCode.BlockName, "MyBlockName"),
      New TypedValue(DxfCode.LayerName, "MyLayerName")}
Dim selFilter As New SelectionFilter(tv)

BlackBox 发表于 2013-4-10 10:31:15

谢谢你的建议,这就是我正在寻找的,是否有可能为块名称设置一个通配符,而不是将其与特定的块名称匹配,例如我想让所有块都以“MyBlock*”而不是“MyBlock”开头。
关于
Tik,

huiz 发表于 2013-4-10 10:32:23


Alexander(也许还有DiningPhilosopher?)实际上在Autodesk Discussion Group上教育了我,迭代数据库比使用SelectionFilter更好,因为代码既可以在MdiActiveDrawing中使用,也可以用于批处理......此外,根据系统规格,速度差异不大。

huiz 发表于 2013-4-10 10:35:11


是的。

BlackBox 发表于 2013-4-10 10:38:13

http://docs.autodesk.com/ACD/2014/ENU/index.html?URL = files/GUID-3c 1a 759 c-BB88-41a 7-B1DE-697 c 493 c 92 c 8 . htm,topicNumber=d30e711632

tik 发表于 2013-4-10 10:54:17


我找到了这个帖子,实际上是DiningPhilosopher教育了我,Alexander在最后插嘴道:

TheMaster 发表于 2013-4-10 11:24:39

非常感谢您的链接。这就是我正在寻找的。
提克
页: [1] 2
查看完整版本: 基于名称获取图形中的所有块。