Есть пару вариантов:
1) Воспользоваться недокументированной функцией void ads_regen(void), которая выполнит регенерацию всего чертежа.
2) Воспользоваться AcDbBlockTableRecord::getBlockReferenceIds(...), т.е. найти все вставки этого блока (AcDbBlockReference), открыть их поочередно на запись, выполнить для них pRef->recordGraphicsModified(true) и закрыть их. В этом случае должны регенирироваться только блоки:
static void RegenBlockTableRecord(AcDbBlockTableRecord *pBTR)
{
Acad::ErrorStatus es;
AcDbObjectIdArray refIDs;
pBTR->getBlockReferenceIds(refIDs,false);
if (refIDs.length() > 0) {
for (int i=0; i<refIDs.length(); i++) {
AcDbObjectPointer<AcDbBlockReference> pRef(refIDs[i],AcDb::kForWrite);
if (pRef.openStatus() == Acad::eOk) {
pRef->recordGraphicsModified(true);
}
}
}
}
Попробуй. Я не проверял, но теоретически должно работать.