属性块属性值遍历参考代码.
//获取块参照属性
ads_name ent;
ads_point pt;
if (RTNORM != acedEntSel(NULL,ent,pt))
{
acutPrintf(_T("\n未选择有效对象!"));
return;
}
AcDbObjectId objId;
acdbGetObjectId(objId,ent);
AcDbObjectPointer<AcDbBlockReference> pBlkRef(objId,AcDb::kForRead);
if (Acad::eOk != pBlkRef.openStatus())
{
acutPrintf(_T("\n打开块参照失败,错误码: %s "),pBlkRef.openStatus());
return;
}
//直接获取图块的属性迭代器
AcDbObjectIterator *pIter=pBlkRef->attributeIterator();
//无论图块是否有属性,迭代器一般不会为NULL
if (NULL == pIter)
{
acutPrintf(_T("\n获取属性迭代器失败!"));
return;
}
//设置判断是否能获取到属性
bool bIsAttribBlock=false;
for (pIter->start();!pIter->done();pIter->step())
{
AcDbObjectId attribId=pIter->objectId();
AcDbObjectPointer<AcDbAttribute> pAttrib(attribId,AcDb::kForRead);
if (Acad::eOk != pAttrib.openStatus())
{
continue;
}
//方式一
/