Вызов pBlkRef->setPosition(p3d_2); должен был привести к падению AutoCAD
Все верно падение было. Причем не только тут
pBlkRef->setPosition(p3d_2);
а и здесь
AcGePoint3d p3d2(pBlkRef->position());
Adesk::UInt16 newColor = pBlkRef->colorIndex();
если их ставить после
pBlkRef->upgradeOpen();
Но я как то думал что не то чтото делаю, потому спросил про другое. А замет после ваших слов про двойное открытие все встало на свои места )))
А на ошибки я пока никогда не проверяю потом все вставлю проверки, пока что всю суть надо понять.