Сообщество программистов Autodesk в СНГ
ADN Club => AutoCAD .NET API => Тема начата: mymooney.ru от 24-03-2015, 11:42:10
-
Через какое событие и как мы можем удалить уже неиспользуемый блок в чертеже.
То есть, после того как я стёр блок с рисунка, он все ещё есть в менеджере блоков.
Как организовать проход событий и каких, что бы при "стирании" данного блока, он ещё дополнительно удалялся из документа.
-
Сделать это можно, но я категорический противник такой схемы. Это значит, что при каждом удалении BlockReference нужно будет сканировать всю базу чертежа (при помощи Database.Purge), чтобы убедится что нет ссылок на BlockTableRecord, на который ссылался удаленный BlockReference. Тебя пользователь убьет (и будет прав), когда каждое удаление вставки блока на больших чертежах будет выполняться минутами (время сопоставимое со временем загрузки этого чертежа).
Намного проще и правильнее выполнять команду _PURGE (или её аналог) при сохранении чертежа. И то если пользователь разрешит.
-
А событие удаление объекта: Database.ObjectErased