Когда метод IsEffectivelyErased возвращает True

Автор Тема: Когда метод IsEffectivelyErased возвращает True  (Прочитано 6873 раз)

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

Оффлайн Александр РивилисАвтор темы

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

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Мне не понятны пункты 2 и 3.

Цитировать
Этот объект или кто-то из его владельцев возвращает пустой ObjectId в методе ownerId().
А разве это не то же самое, что и п.1? Если "нет" - поясните разницу.

Цитировать
Кто-то из владельцев в иерархии не может быть открыт.
Каковы могут быть причины такого случая и какое отношение подобные случаи имеет к удалению?

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Цитировать (выделенное)

    Этот объект или кто-то из его владельцев возвращает пустой ObjectId в методе ownerId().

А разве это не то же самое, что и п.1? Если "нет" - поясните разницу.
Если владелец удален, то чего это ownerId() будет возвращать пустой ObjectId? Он будет возвращать нормальный ObjectId. С другой стороны, метод ownerId() может быть переопределен (т.е. это Custom Object/Entity) и возвращает при определенных обстоятельствах kNull.

Цитировать (выделенное)

    Кто-то из владельцев в иерархии не может быть открыт.

Каковы могут быть причины такого случая и какое отношение подобные случаи имеет к удалению?

Одна из причин - открыт для записи, что не даёт возможность повторного открытия. К удалению это не имеет непосредственного отношения.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
К удалению это не имеет непосредственного отношения.
Тогда к чему был за уши притянут IsEffectivelyErased, а не что-то, имеющее более подходящее в данном контексте имя, например "IsLocked"?

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Тогда к чему был за уши притянут IsEffectivelyErased, а не что-то, имеющее более подходящее в данном контексте, например "IsLocked"?
Метод не зря так назвали. Если он возвращает true, то это означает, что объект не будет сохранятся в dwg-файл. Например, удалили определение блока (BlockTableRecord) и соотвественно примитив, который содержится в этом блоке, хотя сам и не удалён, тоже не будет сохраняться в dwg-файл и его метод IsEffectivelyErased возвращает true.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Метод не зря так назвали. Если он возвращает true, то это означает, что объект не будет сохранятся в dwg-файл. Например, удалили определение блока (BlockTableRecord) и соотвественно примитив, который содержится в этом блоке, хотя сам и не удалён, тоже не будет сохраняться в dwg-файл и его метод IsEffectivelyErased возвращает true.
Это вы мне сейчас приводите пример для п.1:
Цитировать
1. Кто-то из владельцев в иерархии удален.

Я же, в свою очередь, когда писал
Цитировать
Тогда к чему был за уши притянут IsEffectivelyErased, а не что-то, имеющее более подходящее в данном контексте имя, например "IsLocked"?
то спрашивал о другом обозначенном вами случае, а именно:
Цитировать
Одна из причин - открыт для записи, что не даёт возможность повторного открытия. К удалению это не имеет непосредственного отношения.

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Попытаюсь объяснить подробнее. Во всех этих случаях "эффект" один и тот же: объект не будет сохранен в dwg-файл.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение