О применении динамических блоков tegha C++ SDK?
Моя сторона в использовании teigha SDK для разработки на стороне сервера c + + cad, бизнесу необходимо использовать динамический блок при использовании технологии, я построил ровный участок прямоугольных динамических блоков, а затем попытался использовать API для манипулировать им, код ключа выглядит следующим образом:
OdDbBlockTablePtr pBlocks = pDb->getBlockTableId().safeOpenObject(OdDb::kForWrite);
OdDbBlockTableRecordPtr pBlockEntity = pDb->getModelSpaceId().safeOpenObject(OdDb::kForWrite);
OdDbObjectId annoBlockId = pBlocks->getAt(L"rec");
OdGePoint3d point(0,0,0);
OdDbBlockReferencePtr pBlkRef = OdDbBlockReference::createObject();
pBlkRef->setDatabaseDefaults(pDb);
OdDbObjectId blkRefId = pBlockEntity->appendOdDbEntity(pBlkRef);
pBlkRef->setBlockTableRecord(annoBlockId);
OdDbBlockReferencePtr pBlkRef2 = blkRefId.safeOpenObject (OdDb:: kForWrite);
if ( pBlkRef2.isNull() )
{
printf("%s\n","null");
}
else
{
OdDbDynBlockReference ref( pBlkRef2->objectId() );
//pBlkRef->subClose();
if ( !ref.isDynamicBlock() )
{
printf("%s\n","not active");
}
else
{
OdDbDynBlockReferencePropertyArray propArr;
ref.getBlockProperties(propArr);
printf("%d\n", propArr.length());
}
}
Атрибут динамического блока вывода отладки равен 0, я не могу понять. Есть ли проблема с тем, как я его использую?