entity.Visible = false eNotAllowedForThisProxy

Автор Тема: entity.Visible = false eNotAllowedForThisProxy  (Прочитано 7049 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн Привалов ДмитрийАвтор темы

  • ADN Club
  • *****
  • Сообщений: 546
  • Карма: 119
entity.Visible = false eNotAllowedForThisProxy
« : 07-07-2015, 09:21:43 »
Пытаюсь скрыть объекты, через entity.Visible = false;Попался Proxy, который для:
demandload=3 не меняет свойство visible
demandload=0 выкидывает исключение eNotAllowedForThisProxy

Возможно ли такой Proxy скрыть вообще и что можно попробовать?

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

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: entity.Visible = false eNotAllowedForThisProxy
« Ответ #1 : 07-07-2015, 10:41:14 »
и что можно попробовать?
Взорвать ProxyEntity.

Оффлайн Привалов ДмитрийАвтор темы

  • ADN Club
  • *****
  • Сообщений: 546
  • Карма: 119
Re: entity.Visible = false eNotAllowedForThisProxy
« Ответ #2 : 07-07-2015, 11:08:40 »
Взорвать ProxyEntity.

Взрывать пока не требуется, это позже.
Сперва нужно проанализировать что есть в чертежах. И применить "правильное лечение".

В чертежах много прокси и встречаются "отклонения от правил".
Так например нельзя взрывать некоторые прокси, в Demandload 0.
строительные оси в этом режиме отображаются линиями.
Их нужно разбить, при Demandload 3
Могут быть и другие.

Т.е. Автоматизированная разбивка Proxy в моей конторе скорее всего потребует:
1. Режим demandload 3
1. Разбить прокси без ObjectEnabler. explodeAllProxy, removeAllProxy.
2. Для объектов с ObjectEnabler, в основном это project studio и spds вызывать разбивку.
3. Для ProxyObject с ObjectEnabler пока не смотрел, предполагаю, что они не удаляться removeAllProxy.
4. Возможно будет список исключений.

visible пока нужен только для предварительного анализа прокси

Отмечено как Решение Привалов Дмитрий 08-07-2015, 10:13:49

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: entity.Visible = false eNotAllowedForThisProxy
« Ответ #3 : 07-07-2015, 12:28:20 »
Из того, что приходит в голову:
1) можно поменять слой на выключенный слой.
2) можно создать специальный блок и назначить его владельцем этого прокси. Блок не вставлять.
Это возможно только если этот прокси не запрещает все операции с ним. В противном случае только его удаление сделает его невидимым.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: entity.Visible = false eNotAllowedForThisProxy
« Ответ #4 : 08-07-2015, 10:09:16 »
3. Для ProxyObject с ObjectEnabler пока не смотрел, предполагаю, что они не удаляться removeAllProxy.
Предполагаю, что не удалятся, т.к. в этом случае они скорее всего не будут интерпретироваться как ProxyEntity. Если разбивать нужно выборочные прокси, а не все подряд, то можно воспользоваться ранее обозначенным на форуме методом:

Код - C# [Выбрать]
  1. public static ObjectId[] ExplodeProxyEntity(ObjectId proxyEntityId, out Boolean handOverTo_called, out Int64 explodedCount, WriteMessage writeErrorMessage)

Оффлайн Привалов ДмитрийАвтор темы

  • ADN Club
  • *****
  • Сообщений: 546
  • Карма: 119
Re: entity.Visible = false eNotAllowedForThisProxy
« Ответ #5 : 08-07-2015, 10:18:59 »
Из того, что приходит в голову:
1) можно поменять слой на выключенный слой.

В принципе идея со слоями сработала.
Отключение слоя не скрыло данный  Proxy. А вот заморозка слоя скрыла.