Удаление неиспользуемого блока. Событие.

Автор Тема: Удаление неиспользуемого блока. Событие.  (Прочитано 4225 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн mymooney.ruАвтор темы

  • ADN OPEN
  • Сообщений: 5
  • Карма: 0
Через какое событие и как мы можем удалить уже неиспользуемый блок в чертеже.
То есть, после того как я стёр блок с рисунка, он все ещё есть в менеджере блоков.
Как организовать проход событий и каких, что бы при "стирании" данного блока, он ещё дополнительно удалялся из документа.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Сделать это можно, но я категорический противник такой схемы. Это значит, что при каждом удалении BlockReference нужно будет сканировать всю базу чертежа (при помощи Database.Purge), чтобы убедится что нет ссылок на BlockTableRecord, на который ссылался удаленный BlockReference. Тебя пользователь убьет (и будет прав), когда каждое удаление вставки блока на больших чертежах будет выполняться минутами (время сопоставимое со временем загрузки этого чертежа).
Намного проще и правильнее выполнять команду _PURGE (или её аналог) при сохранении чертежа. И то если пользователь разрешит.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
А событие удаление объекта: Database.ObjectErased
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение