ADN Club > Inventor API

Регенерация конкретного правила iLogic

(1/1)

Владимир Ананьев:
Попался мне тут любопытный вопрос про регенерацию одного конкретного правила iLogic.
Способ регенерировать все правила в текущем документе известен.  Для этого достаточно выполнить команду "iLogic.RegenAllRules":


--- Код: ---Dim controlDef as ControlDefinition = ThisApplication. _   
    CommandManager.ControlDefinitions.Item("iLogic.RegenAllRules")
controlDef.Execute2(True)
--- Конец кода ---

А как можно осуществить регенерацию одного конкретного правила, если нежелательно  трогать остальные?

Специальной функции в API нет, но нашелся вот такой ход.
Если переопределить текст правила iLogic, то список параметров, на которые ссылается данное правило,  очищается (обновляется), что, собственно, и требуется.  После этого можно инициировать выполнение правила.


--- Код: ---auto = iLogicVb.Automation
rule0 = auto.GetRule(ThisDoc.Document, "Rule0")
' Reset для текста правила очищает список параметров,
' на которые правило ссылается
rule0.Text = rule0.Text 
auto.RunRuleDirect(rule0)
--- Конец кода ---

Метод работает  :)

Навигация

[0] Главная страница сообщений

Перейти к полной версии