iLogic : associer une règle à un événement avec du code

Pour associer une règle à un événement, il suffit donc de créer une iPropriété dans ce jeu avec le nom de la règle comme valeur. Par exemple pour déclencher la règle Ma règle lorsqu'un paramètre change, il faut utiliser le code iLogic suivant :

ThisDoc.Document.PropertySets("_iLogicEventsRules").Add("Ma règle", "AfterAnyParamChange0", 1000)

Il y a un nom d'iPropriété/un identifiant pour chaque événement.

Evénement Nom iPropriété ID iPropriété
Nouveau document AfterDocNew 2600
Après l'ouverture du document AfterDocOpen 400
Avant l'enregistrement du document BeforeDocSave 700
Après l'enregistrement du document AfterDocSave 800
Fermer le document DocClose 500
Etat du modèle activé AfterModelStateActivated 2800
Modification paramètre modèle AfterAnyParamChange 1000
Modification paramètre utilisateur AfterAnyUserParamChange 3000
Modification iPropriété AfterAnyiPropertyChange 1600
Affichage/masquage fonction AfterFeatureSuppressionChange 2000
Modification géométrie pièce PartBodyChanged 1200
Modification matière AfterMaterialChange 1400

N'oubliez pas le suffixe numérique : 0 pour la première règle, 1 pour la deuxième... L'identifiant de l'iPropriété doit également être incrémenté : 1000 pour AfterAnyParamChange0, 1001 pour AfterAnyParamChange1

Pour les règles externes, il faut préfixer le nom de la règle avec file://. Si la règle n'est pas dans un des répertoires standard, il faut utiliser le chemin complet du fichier sans l'extension.

Si le document ne comporte encore aucun déclencheur ni aucune règle, il faut également signaler à iLogic qu'il doit surveiller le document. Pour cela il faut ajouter un document un objet de type DocumentInterest.

ThisDoc.Document.DocumentInterests.Add("{3BDD8D79-2179-4B11-8A5A-257B1C0263AC}", "iLogic", DocumentInterestTypeEnum.kInterested, 20090512, "")

{3BDD8D79-2179-4B11-8A5A-257B1C0263AC} c'est le GUID du complément iLogic, iLogic c'est le nom du DocumentInterest, 20090512 c'est un numéro de version.

Enfin, il faut activer les déclencheurs avec :

iLogicVb.Automation.RulesOnEventsEnabled = True

Voir aussi : https://knowledge.autodesk.com/support/inventor/learn-explore/caas/simplecontent/content/add-ilogic-rule-to-event-trigger-using-external-ilogic-rule.html

Ajouter un commentaire