Is there a way to directly call an iLogic rule from within an add-in?
I have written an add-in that manipulates parameters in various sub-assemblies and now need to call various iLogic rules which the designers have written to act on the parameter changes.
ta
Gav
Solved! Go to Solution.
Solved by MjDeck. Go to Solution.
The rules should run automatically when the parameters change. Is that not working the way you expect? If so, it is possible to run rules explicitly from an add-in. Is your add-in in VB.NET or C#? What version of Inventor?
Sorry we are running 2011 (although I am testing in 2011 & 2012) and the add-in is written in c#. So far the rules are not running automatically but I would like more control and call the rules directly if possible anyway. Longer term the "Don't run automatically" will be set in all the rules.
thanks
Gav
Here's the way I've run rules using C#
//For Rules in documents int rVal = 0; iLogicRule iRule = iLogicAutomationObject.GetRule(IVDocument, ruleName); if (iRule != null) { rVal = iLogicAutomationObject.RunRuleDirect(iRule); //For external rules int rVal = 0; rVal = iLogicAutomationObject.RunExternalRule(IVDocument, ruleName);
Here's a sample C# class that links to the automation interface in the iLogic addin, and has functions to run rules. A disadvantage of this direct linking method is that you need separate versions of your addin for Inventor 2011 and 2012.
If you don't want separate versions, you can use COM late binding instead. That requires more (and messier) code.