Сделать это можно, но я категорический противник такой схемы. Это значит, что при каждом удалении BlockReference нужно будет сканировать всю базу чертежа (при помощи Database.Purge), чтобы убедится что нет ссылок на BlockTableRecord, на который ссылался удаленный BlockReference. Тебя пользователь убьет (и будет прав), когда каждое удаление вставки блока на больших чертежах будет выполняться минутами (время сопоставимое со временем загрузки этого чертежа).
Намного проще и правильнее выполнять команду _PURGE (или её аналог) при сохранении чертежа. И то если пользователь разрешит.