Сообщество программистов Autodesk в СНГ
ADN Club => Civil 3D API => Тема начата: Вильдар от 19-04-2018, 11:22:08
-
Может, кто по симптомам поможет.
Перерисовываю вид профиля ProfileView DrawableOverrule.
Вот что происходит при перемещении за ручку (другие случаи пока не смотрел):
(https://s31.postimg.cc/4a148irl3/image.gif) (https://postimg.cc/image/4a148irl3/)
После регенерации - прорисовывается.
Во время перетаскивания у drawable пустой Id. При этом, пропускаю свою прорисовку и вызываю базовую.
Иногда вид профиля вообще не перемещается за ручку.
-
Поиграйся с включением/отключением аппаратного ускорения в AutoCAD и переключением визуальных стилей.
-
Иногда вид профиля вообще не перемещается за ручку.
Даже без твоего DrawableOverrule или только с ним?
-
Блин. Попробовал всегда пропускать свою прорисовку, даже когда drawable id не пустой.
Все нормально прорисовывается.
Проблема в моей прорисовке.
А что не рекомендуется делать при DrawableOverrule?
Например, транзакции можно запускать?
-
Например, транзакции можно запускать?
В принципе можно, если всё корректно завершается. Только в них нужно осторожно выполнять модификации объектов/примитивов, так как это приводит к дополнительной перерисовке, т.е. может быть бесконечный цикл. Попробуй заменить на эмуляцию транзакции (или вообще на Open/Close)
-
Насколько я помню, всё именно так - надо убрать транзакции. Вообще, лучше забыть про транзакции в методах Overrule. Да и вообще в любых не-командных. Но и после этого у меня не самое правильное поведение при перемещении ВП, но я пока оставил так:
(https://s9.postimg.cc/9io4pue7f/p_Views_Move.gif) (https://postimg.cc/image/9io4pue7f/)
-
Да, поменял на StartOpenCloseTransaction и стало норм. ;)
Еще мне нужно менять свойства профиля.
В самой DrawableOverrule похоже это лучше не делать.
Сам объект drawable обычно не открыт на запись. А если его открыть на запись UpgradeOpen, то он потом перестает нормально выделяться.
Спасибо всем!)
-
В самой DrawableOverrule похоже это лучше не делать.
Это точно.
А если его открыть на запись UpgradeOpen, то он потом перестает нормально выделяться.
Это если ты его таким и оставил, а не выполнил потом DowngradeOpen.