Сообщество программистов Autodesk в СНГ
Статьи => Опубликованные статьи => Тема начата: Александр Ривилис от 14-03-2014, 01:30:04
-
Когда метод IsEffectivelyErased возвращает True
-
Мне не понятны пункты 2 и 3.
Этот объект или кто-то из его владельцев возвращает пустой ObjectId в методе ownerId().
А разве это не то же самое, что и п.1? Если "нет" - поясните разницу.
Кто-то из владельцев в иерархии не может быть открыт.
Каковы могут быть причины такого случая и какое отношение подобные случаи имеет к удалению?
-
Цитировать (выделенное)
Этот объект или кто-то из его владельцев возвращает пустой ObjectId в методе ownerId().
А разве это не то же самое, что и п.1? Если "нет" - поясните разницу.
Если владелец удален, то чего это ownerId() будет возвращать пустой ObjectId? Он будет возвращать нормальный ObjectId. С другой стороны, метод ownerId() может быть переопределен (т.е. это Custom Object/Entity) и возвращает при определенных обстоятельствах kNull.
Цитировать (выделенное)
Кто-то из владельцев в иерархии не может быть открыт.
Каковы могут быть причины такого случая и какое отношение подобные случаи имеет к удалению?
Одна из причин - открыт для записи, что не даёт возможность повторного открытия. К удалению это не имеет непосредственного отношения.
-
К удалению это не имеет непосредственного отношения.
Тогда к чему был за уши притянут IsEffectivelyErased, а не что-то, имеющее более подходящее в данном контексте имя, например "IsLocked"?
-
Тогда к чему был за уши притянут IsEffectivelyErased, а не что-то, имеющее более подходящее в данном контексте, например "IsLocked"?
Метод не зря так назвали. Если он возвращает true, то это означает, что объект не будет сохранятся в dwg-файл. Например, удалили определение блока (BlockTableRecord) и соотвественно примитив, который содержится в этом блоке, хотя сам и не удалён, тоже не будет сохраняться в dwg-файл и его метод IsEffectivelyErased возвращает true.
-
Метод не зря так назвали. Если он возвращает true, то это означает, что объект не будет сохранятся в dwg-файл. Например, удалили определение блока (BlockTableRecord) и соотвественно примитив, который содержится в этом блоке, хотя сам и не удалён, тоже не будет сохраняться в dwg-файл и его метод IsEffectivelyErased возвращает true.
Это вы мне сейчас приводите пример для п.1:
1. Кто-то из владельцев в иерархии удален.
Я же, в свою очередь, когда писал
Тогда к чему был за уши притянут IsEffectivelyErased, а не что-то, имеющее более подходящее в данном контексте имя, например "IsLocked"?
то спрашивал о другом обозначенном вами случае, а именно:
Одна из причин - открыт для записи, что не даёт возможность повторного открытия. К удалению это не имеет непосредственного отношения.
-
Попытаюсь объяснить подробнее. Во всех этих случаях "эффект" один и тот же: объект не будет сохранен в dwg-файл.