关于SetImpliedSelection搜索问题
<p>我想对特定id的块参照进行结构搜索,搜索构成她的名为name的所有块参照,下面语句不知可否:</p><p><font face="Verdana">Dim ed As Editor = AcadApp.DocumentManager.MdiActiveDocument.Editor<br/> Dim acTypValAr(0) As TypedValue<br/> acTypValAr.SetValue(New TypedValue(DxfCode.BlockName, brfName), 0)<br/> Dim acSelFtr As SelectionFilter = New SelectionFilter(acTypValAr)<br/> Dim acSSPrompt As PromptSelectionResult<br/> Dim obs(0) As ObjectId<br/> obs(0) = id<br/> ed.SetImpliedSelection(obs)<br/> acSSPrompt = ed.SelectAll(acSelFtr)<br/> Dim acSSet As SelectionSet = acSSPrompt.Value<br/> Return acSSet.GetObjectIds</font></p>
<p>这样返回好像为空,如果用ed.GetSelection的话需要选择,这样不好,有没有其他方法呀?</p> <p>和SetImpliedSelection无关</p>
<p> </p>
<p>Dim acTypValAr(1) As TypedValue</p>
<p>acTypValAr(0) = New TypedValue(0, "insert")</p>
<p>acTypValAr(1) = New TypedValue(2, brfName)</p>
<p>Dim acSelFtr As SelectionFilter = New SelectionFilter(acTypValAr)</p>
<p>acSSPrompt = ed.SelectAll(acSelFtr)<br/>Return acSSPrompt.Value.GetObjectIds</p> 我搜索特定id下的块参照,怎么体现啊? 我不会去选择任何块参照,只是认为的去对所有块参照进行结构分析而已, 人为的 <p>特定id下的块参照?</p>
<p>没看懂,解释下?</p> <p>比如说如下代码代表 用户去选择一个选择集,然后返回块名为brfName的id集合</p>
<p> Dim acTypValAr(0) As TypedValue<br/> acTypValAr.SetValue(New TypedValue(DxfCode.BlockName, brfName), 0)<br/> Dim acSelFtr As SelectionFilter = New SelectionFilter(acTypValAr)<br/> Dim acSSPrompt As PromptSelectionResult<br/> acSSPrompt = ed.GetSelection(acSelFtr)<br/> Return acSSPrompt.Value.GetObjectIds</p>
<p>我现在不想让用户去选择,而是直接给定选择集的id集合,然后搜索出构成他们的并且块名为brfName的id块参照集合</p> 我好想发觉是这样的:比如说图形上显示的块参照A由块参照B和其他实体构成,那么我要检索出图形上所有B的id的话,不能用上面那些语句,好像检索出来都是空,因为Editor的选择集只为最上层是吧?有什么办法把构成她的块参照也检索 <p>用BlockTableRecord.GetBlockReferenceIds Method获取块定义对应的参照集合,即所有的块参照B</p>
<p>然后用Entity.BlockId Property获取参照所在的块定义,比如A</p>
<p>然后调用A的GetBlockReferenceIds </p> nice
页:
[1]