gsteven 发表于 2009-9-28 21:41:00

[求助]如何使用database的选择集?

<p>operDb = new Database(false, true);//新建操作数据库<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (fileType == "DWG")//分为DWG,DXF分类打开图形数据库<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; operDb.ReadDwgFile(operFilePath, FileOpenMode.OpenForReadAndAllShare, false, "");<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; operDb.DxfIn(operFilePath, null);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p><p>现在想过滤出operDb 中所有的块参照,不知如何过滤出来?</p><p>帮助说Editor acDocEd = Application.DocumentManager.MdiActiveDocument.Editor;</p><p>acSSPrompt = acDocEd.GetSelection(acSelFtr);</p><p>这个Editor属性只有Document才有,不知道怎样获得database的Editor用来过滤?</p>

雪山飞狐_lzh 发表于 2009-9-28 21:49:00

<p>选择集必须是打开的文档才可以用</p><p>滤出operDb 中所有的块参照:</p><p>过滤器:0,“Insert”</p>

gsteven 发表于 2009-9-28 22:14:00

<p>不会这么差劲吧。必须打开文档才可以用。过滤出某个名称的快参照是</p><p>acTypValAr.SetValue(New TypedValue(DxfCode.Start, "INSERT"), 0)</p><pre class="codeLine">acTypValAr.SetValue(New TypedValue(2, "相应的块名"), 1)</pre><pre class="codeLine">那我还是循环modelspace里的每一个objectID吧,在判断他是否属于blockreference,因为其他功能都是使用database来完成的。</pre>

gsteven 发表于 2009-9-29 00:36:00

我还是循环modelspace里的每一个objectID,速度也很快!
页: [1]
查看完整版本: [求助]如何使用database的选择集?