- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
API. Как добраться до свойств отображения свойств символов
Модератор: специалисты Eplan
-
- здесь недавно
- Сообщения: 36
- Зарегистрирован: 12 фев 2014, 08:13
- Имя: Сергей
- Страна: Россия
- Благодарил (а): 1 раз
API. Как добраться до свойств отображения свойств символов
Здравствуйте!
Подскажите, пожалуйста, как можно добраться до свойств отображения свойств символов или других элементов? Например, как программно изменить цвет ОУ?
Я так понимаю копаться надо в свойствах функций.
Подскажите, пожалуйста, как можно добраться до свойств отображения свойств символов или других элементов? Например, как программно изменить цвет ОУ?
Я так понимаю копаться надо в свойствах функций.
-
- знаток Eplan
- Сообщения: 1457
- Зарегистрирован: 17 окт 2012, 11:24
- Имя: Виталий
- Страна: Беларусь
- город/регион: Минск
- Благодарил (а): 61 раз
- Поблагодарили: 182 раза
Re: Скрипты и API
Нужно использовать класс PropertyPlacement, каждое отображаемое свойство функции будет представлено записью с соотв. индексом, например PropertyPlacement[0]. Также перед внесением изменений нужно вызвать метод SwitchLocalPropertyPlacements(true).
-
- здесь недавно
- Сообщения: 36
- Зарегистрирован: 12 фев 2014, 08:13
- Имя: Сергей
- Страна: Россия
- Благодарил (а): 1 раз
Re: Скрипты и API
Всем привет!
Новая проблемка возникла.
Требуется изменить свойство отображения символа, например, цвет текста гравировки. Делаю таким образом:
Но работает это только если до этого вручную изменить какое-нибудь свойство (тот же цвет). А если я только вставил символ из базы, и программно меняю цвет текста гравировки, то Eplan выдаёт такое сообщение:
Как бы мне программно разблокировать свойства отображения этого символа?
Новая проблемка возникла.
Требуется изменить свойство отображения символа, например, цвет текста гравировки. Делаю таким образом:
Код: Выделить всё
oFunc.PropertyPlacements[0].TextColorId = 5;
Стоит что-то изменить в свойствах текста гравировки, так всё работает как надо.Объект не был заблокирован перед обращением для записи.
Как бы мне программно разблокировать свойства отображения этого символа?
-
- здесь недавно
- Сообщения: 36
- Зарегистрирован: 12 фев 2014, 08:13
- Имя: Сергей
- Страна: Россия
- Благодарил (а): 1 раз
Re: Скрипты и API
Понял, что работает, когда порядок свойств "Определ. пользователем". Теперь надо понять как его таковым сделать.
-
- знаток Eplan
- Сообщения: 1457
- Зарегистрирован: 17 окт 2012, 11:24
- Имя: Виталий
- Страна: Беларусь
- город/регион: Минск
- Благодарил (а): 61 раз
- Поблагодарили: 182 раза
Re: Скрипты и API
Правда в случае с обзором модели такая функция не работала, но и не ругалась. Также столкнулся с особенностью, что иногда чтобы передвинуть графику нужно заблокировать объект с помощью метода LockObject().
-
- здесь недавно
- Сообщения: 36
- Зарегистрирован: 12 фев 2014, 08:13
- Имя: Сергей
- Страна: Россия
- Благодарил (а): 1 раз
Re: Скрипты и API
Хочу изменить отображение определённого свойства (например текст гравировки). Все свойства отсоединены друг от друга, в списке расставлены в определённом порядке, чтобы можно было обратиться к конкретному свойству через PropertyPlacement[], но при запуске кода свойства сортируются по порядку номера свойства (тот номер что пишется в <...> после наименования свойства), и изменяется не то свойство, что хотелось бы.
Можно, конечно, расставить свойства в этом порядке и заранее, но вот если надо обработать разные символы с разным набором и количеством свойств, то нужного результата не получить.
Можно ли как-нибудь отменить эту сортировку или обращаться к свойству через какое-то условие, например, если имя свойства "текст гравировки", то его цвет красный? Не получается только определить имя свойства из списка PropertyPlacement.
Можно, конечно, расставить свойства в этом порядке и заранее, но вот если надо обработать разные символы с разным набором и количеством свойств, то нужного результата не получить.
Можно ли как-нибудь отменить эту сортировку или обращаться к свойству через какое-то условие, например, если имя свойства "текст гравировки", то его цвет красный? Не получается только определить имя свойства из списка PropertyPlacement.
-
- знаток Eplan
- Сообщения: 1457
- Зарегистрирован: 17 окт 2012, 11:24
- Имя: Виталий
- Страна: Беларусь
- город/регион: Минск
- Благодарил (а): 61 раз
- Поблагодарили: 182 раза
Re: Скрипты и API
Не знаю почему у Вас они путаются, у меня они в том порядке как нужно. Если нужно, то имя свойства можно узнать из
...PropertyPlacements[ ].DisplayedProperty.Definition.Name - тип string.
Можно узнать ID свойства через ...PropertyPlacements[ ].DisplayedProperty.AsInt, а индекс ...PropertyPlacements[ ].DisplayedProperty.Index
...PropertyPlacements[ ].DisplayedProperty.Definition.Name - тип string.
Можно узнать ID свойства через ...PropertyPlacements[ ].DisplayedProperty.AsInt, а индекс ...PropertyPlacements[ ].DisplayedProperty.Index