通过选择实体acdbobjectid,怎么样得到acdbblocktablerecord的id呀
通过选择实体acdbobjectid,怎么样得到acdbblocktablerecord的id呀
通过选择实体acdbobjectid,怎么样得到acdbblocktablerecord的id呀;
困扰了好几天了;
是一般实体所在的blocktablerecord还是块定义的blocktablerecord
实体所在blocktablerecord,打开实体acdbenitity:

wnerid()
块定义:acdbblockreference::blocktablerecord()
我用的是第一种;一般实体所在blocktablerecord,现在还要用id来打开record;
acdbopenobjectid()这个能实现吗?
上一贴中的那个没有id;
问一下各位,这样写能改变记录中的属性吗?
acdbopenobject(prec,recid,acdb::kforread);
if(prec->hasattributedefinitions())
{
acdbblocktablerecorditerator *piter;
prec->newiterator(piter);
acdbentity *pent;
for(piter->start();!piter->done();piter->step())
{
piter->getentity(pent,acdb::kforread);
//acdbopenobject(pent,blkdefid,acdb::kforwrite);
//检查是否是属性定义
acdbattributedefinition *pattdef;
pattdef=acdbattributedefinition::cast(pent);
if(pattdef!=null)
{
//pattdef->settag(data);
//创建一个新的属性对象
acdbattribute *patt=new acdbattribute();
//从属性定义获得属性对象的属性特性;
patt->setpropertiesfrom(pattdef);
//设置属性对象的其它特性;
patt->setinvisible(pattdef->isinvisible());
acgepoint3d ptbase=pattdef->position();
ptbase+=pblkref->position().asvector();
patt->setposition(pattdef->position());
patt->setheight(pattdef->height());
patt->setrotation(pattdef->rotation());
//获得属性对象的tag、prompt和textstring;
char *pstr;
pstr=pattdef->tag();
patt->settag("123456789");
patt->settextstring("yuan");
//向块参照追加属性对象;
pblkref->appendattribute(patt);
patt->close();
}
pent->close();
}
delete(piter);
}
prec->close();