Смена уровня детализации подсборки (Update 29.12.14)

Автор Тема: Смена уровня детализации подсборки (Update 29.12.14)  (Прочитано 5787 раз)

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

Оффлайн R.I.ChernovАвтор темы

  • ADN Club
  • *****
  • Сообщений: 568
  • Карма: 18
Доброго времени суток, уважаемые форумчане! Прошу Вашей помощи в решении следующей проблемы:

Используя такую вот строку кода, я меняю уровень детализации подсборки:
oCompDef.Occurrences.ItemByName("Itemname").SetLevelOfDetailRepresentation ("LODName")
oDoc.Update

При смене уровня детализации в подсборке появляется элемент, который был подавлен.
Следом мне необходимо переместить его в нужное мне место.
Но при выполнении метода ComponentOccurrence.SetTransformWithoutConstraints вылетает ошибка. Причем если сменить уровень детализации руками, то код работает...также он работает если после ошибки запустить его еще раз (до того как зависнуть первый раз он таки меняет УД). Пол дня ломаю голову, но так и не понял, в чем дело :(
Причем (повторюсь) уровень детализации программа меняет, ну в смысле он переключается как надо, но элемент не получается переместить. Такое впечатление, что программа все еще считает его подавленным, хотя это уже не так. Может как-то хитро обновить надо?
Заранее благодарю!

Update1: Чтобы стало понятнее, решил добавить вложением сборку, внутри нее есть правила и в iLogic, и  в VBA. Не обращайте пожалуйста внимания на английский язык - хочу попытать счастья и на иностранных форумах :)

Update2: Удалось выяснить, что при смене уровня детализации, несмотря на то, что компонент изменяет значок в браузере и появляется в окне, свойство ComponentOccurrence.suppressed все еще имеет значение True. Осталось найти, как это исправить :)
« Последнее редактирование: 29-12-2014, 11:02:25 от R.I.Chernov »
В программировании я новичок...но ненадолго! ;)

Отмечено как Решение R.I.Chernov 29-12-2014, 17:22:52

Оффлайн R.I.ChernovАвтор темы

  • ADN Club
  • *****
  • Сообщений: 568
  • Карма: 18
Сам задал вопрос, сам же на него и отвечаю :)

Загвоздка заключалась в том, что после смены уровня детализации, программа теряла ранее заданные ссылки на компоненты, их надо было просто обновить. Во вложении привожу пример с кодом, все управляется из формы из главной сборки.
(пример только в iLogic, проецировать в VBA не было времени, да и коды аналогичны полностью).

П.С. Быть может кто-то сможет подсказать более легкий способ обновления ранее заданных ссылок на компоненты?

Update:
Правило не всегда корректно срабатывает (в смысле иногда не срабатывает), прошу за это прощения - очень был ограничен во времени. Но сути решения не меняет.
« Последнее редактирование: 29-12-2014, 17:44:57 от R.I.Chernov »
В программировании я новичок...но ненадолго! ;)