遍历图块里的所有实体对象
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