ads_name sset;
int err = acedSSGet(_T("_I"), NULL, NULL, NULL, sset);
if (err != RTNORM)
return;
long i, length;
ads_name ename;
AcDbObjectId entId;
acedSSLength(sset, &length);
for (i = 0; i < length; i++)
{
acedSSName(sset, i, ename);
acdbGetObjectId(entId, ename);
//PrintBlockName();
//ads_name en; ads_point p;
//AcDbObjectId eId;
//acdbGetObjectId(eId, sset);
AcDbObjectPointer<AcDbBlockReference> pBlkRef(entId, AcDb::kForRead);
//if (pBlkRef.openStatus() == Acad::eOk) {
//AcDbObjectId idBlkTblRec = pBlkRef->blockTableRecord();
AcDbDynBlockReference dynBlk(entId);
if (dynBlk.isDynamicBlock())
{
AcDbBlockTableRecordPointer pBTR(dynBlk.dynamicBlockTableRecord(), AcDb::kForRead);
if (pBTR.openStatus() == Acad::eOk)
{
const ACHAR *blkName = NULL; pBTR->getName(blkName);
acutPrintf(_T("\nИмя динамического блока: \"%s\""), blkName);
}
}
else
{
AcDbBlockTableRecordPointer pBTR(pBlkRef->blockTableRecord(), AcDb::kForRead);
const ACHAR *blkName = NULL; pBTR->getName(blkName);
acutPrintf(_T("\nИмя статического блока: \"%s\""), blkName);
}
//}
//MyObject* pMyObject;
//AcDbEntity * pMyObject;
AcDbBlockTableRecord * pMyObject = NULL;
//AcDbObject * pMyObject;
ACHAR * pBlockName;
if (acdbOpenObject(pMyObject, entId, AcDb::kForRead) == Acad::eOk)
{
pMyObject->getName(pBlockName);
//pMyObject->highlight();
pMyObject->close();
ads_printf(_T("\nOK"));
}
AcDbDatabase* pDb = acdbHostApplicationServices()->workingDatabase();
AcDbObjectId eId = acdbSymUtil()->blockModelSpaceId(pDb);
ads_printf(_T("\n ----------- AcDbObjectId eId = acdbSymUtil()->blockModelSpaceId(pDb);"));
}
acedSSFree(sset);