![]() |
【转帖】遍历图块里的所有实体对象
遍历图块里的所有实体对象
www.dimcax.com 遍历图块里的所有实体对象 遍历图块里的所有实体对象 [commandmethod("fbe")] public void foreachblockentity() { database db = hostapplicationservices.workingdatabase; editor ed = autodesk.autocad.applicationservices.application.documentmanager.mdiactivedocument.editor; using (transaction trans = db.transactionmanager.starttransaction()) { typedvalue[] fillistblock = new typedvalue[1]; fillistblock[0] = new typedvalue(0, "insert"); selectionfilter filterblock = new selectionfilter(fillistblock); //选择对象 promptselectionresult resblock = ed.selectall(filterblock); if (resblock.status == promptstatus.ok) { //遍历选择集里的所有实体对象 foreach (objectid blockid in resblock.value.getobjectids()) { //获取图块对象 blockreference blockobject = trans.getobject(blockid, openmode.forread) as blockreference; ed.writemessage("图块名称:" + blockobject.name + "\n"); //获取图块的块表记录 blocktablerecord btrblock = trans.getobject(blockobject.blocktablerecord, openmode.forread) as blocktablerecord; //遍历图块里的所有实体对象 foreach (objectid blcokid in btrblock) { entity blockentity = trans.getobject(blcokid, openmode.forread) as entity; ed.writemessage("实体对象objectid:" + blockentity.objectid + "\n"); ed.writemessage("实体对象句柄:" + blockentity.handle + "\n"); } } } trans.commit(); } } 复制代码 注明:忽悠悠提供技术支持 !!! 请教: ed.writemessage("图块名称:" + blockobject.name + "\n"); 是不是应该改成: ed.writemessage("图块名称:" + blockobject.gettype().name + "\n"); 我是一个初学者,也是用c#+objecarx开发,对cad里面的结构不是很清楚,比如我想查找帮助应该怎么搞呢? 请教: ed.writemessage("图块名称:" + blockobject.name + "\n"); 是不是应该改成: ed.writemessage("图块名称:" + blockobject.gettype().name + "\n"); 我是一个初学者,也是用c#+objecarx开发,对cad里面的 ... sunliangyu 发表于 blockobject是blockreference类,它有一个name属性,用来获取块名。 你可以查objectarx |
| 所有的时间均为北京时间。 现在的时间是 10:35 PM. |