Les variables de paramètres
Dans les chapitres précédents, nous avons utilisé les paramètres Inventor directement par leur nom dans les règles — par exemple diametre_interieur ou epaisseur. Nous avons aussi vu la syntaxe Parameter("nom"). Ces deux approches ne sont pas équivalentes. La manière dont vous accédez aux paramètres dans une règle a un impact direct sur son exécution automatique.
Les variables bleues
Quand vous tapez le nom d'un paramètre Inventor directement dans une règle, iLogic le reconnaît et le met en surbrillance bleue dans l'éditeur. C'est un signe visuel important : il signifie qu'iLogic a établi un lien direct entre la règle et ce paramètre.
' diametre_interieur et epaisseur apparaissent en bleu dans l'éditeur
diametre_exterieur = diametre_interieur * 2
epaisseur = 1.5
Ces variables bleues ne sont pas de simples raccourcis de syntaxe. Elles créent un mécanisme de surveillance automatique : iLogic sait quels paramètres sont lus par la règle et peut la réexécuter automatiquement quand l'un d'eux change.
L'exécution automatique
Quand une règle utilise des variables bleues, iLogic la réexécute automatiquement dès qu'un de ces paramètres est modifié — que ce soit par l'utilisateur dans le gestionnaire de paramètres, par une autre règle, ou par un formulaire iLogic. Aucune configuration supplémentaire n'est nécessaire : pas besoin de créer un déclencheur dans la boîte de dialogue Déclencheurs d'événements.
C'est un comportement fondamental d'iLogic. Si vous écrivez :
If diametre_interieur < 10 Then
epaisseur = 0.8
ElseIf diametre_interieur < 20 Then
epaisseur = 1.5
Else
epaisseur = 2
End If
Alors cette règle se déclenche toute seule chaque fois que diametre_interieur change de valeur, parce qu'iLogic détecte que la variable bleue diametre_interieur est lue dans la règle.
C'est ce comportement qui rend iLogic si naturel à utiliser : vous écrivez une logique qui dépend d'un paramètre, et elle reste automatiquement synchronisée avec le modèle.
La fonction Parameter()
La syntaxe alternative Parameter("nom") permet elle aussi de lire ou d'écrire la valeur d'un paramètre :
' Lecture
valeur = Parameter("diametre_interieur")
' Écriture
Parameter("epaisseur") = 1.5
Mais il y a une différence majeure : les paramètres accédés via Parameter() ne déclenchent pas l'exécution automatique de la règle. iLogic ne surveille pas ces accès. Si diametre_interieur change, une règle qui le lit uniquement via Parameter("diametre_interieur") ne sera pas réexécutée automatiquement.
Pour que cette règle s'exécute, il faudra soit la lancer manuellement, soit configurer explicitement un déclencheur dans la boîte de dialogue Déclencheurs d'événements (voir le chapitre précédent).
Quand utiliser l'une ou l'autre syntaxe ?
| Syntaxe | Exécution automatique | Cas d'usage |
|---|---|---|
Variable bleue (diametre_interieur) |
Oui | Règles de calcul qui doivent rester synchronisées avec les paramètres |
Parameter("diametre_interieur") |
Non | Accès dynamique, noms avec caractères spéciaux, paramètres d'autres composants |
En pratique, privilégiez les variables bleues quand c'est possible. L'exécution automatique est le comportement le plus utile dans la majorité des cas : vos règles restent à jour sans intervention.
Réservez Parameter() aux situations où les variables bleues ne fonctionnent pas :
- Vous êtes dans une règle externe (les variables bleues n'y sont pas disponibles — voir plus bas)
- Le nom du paramètre contient des caractères spéciaux ou des espaces (par exemple
Parameter("Diamètre (mm)")) - Vous accédez à un paramètre d'un autre composant dans un assemblage (par exemple
Parameter("Sous-assemblage:1", "longueur")) - Vous construisez le nom du paramètre dynamiquement à partir d'une variable (par exemple
Parameter("cote_" & i))
Les règles externes : une limitation importante
Il existe deux types de règles dans iLogic :
- Les règles internes (internal rules) : stockées directement dans le document Inventor (
.ipt,.iam,.idw) - Les règles externes (external rules) : stockées dans des fichiers
.vbséparés sur le disque, et partagées entre plusieurs documents
Les variables bleues — et donc l'exécution automatique — ne sont disponibles que pour les règles internes. Dans une règle externe, iLogic ne peut pas établir de lien direct avec les paramètres d'un document spécifique, puisque la règle n'appartient à aucun document en particulier.
Dans une règle externe, vous devez utiliser Parameter() pour accéder aux paramètres :
' Règle externe — pas de variables bleues disponibles
' Il faut utiliser Parameter() pour tout accès aux paramètres
valeur = Parameter("diametre_interieur")
Parameter("diametre_exterieur") = valeur * 2
Cela signifie aussi que les règles externes ne se déclenchent jamais automatiquement par surveillance de paramètres. Si vous avez besoin qu'une règle externe s'exécute en réponse à un changement de paramètre, vous devez configurer un déclencheur d'événement explicitement.
Désactiver l'exécution automatique d'une règle
L'exécution automatique via les variables bleues est parfois indésirable. Par exemple, une règle lourde qui recalcule tout un assemblage n'a pas besoin de se relancer à chaque changement de paramètre intermédiaire — vous préférez la déclencher manuellement ou via un déclencheur d'événement spécifique.
Pour empêcher une règle de s'exécuter automatiquement, faites un clic droit sur la règle dans le navigateur iLogic et activez l'option Ne pas exécuter automatiquement (Suppress Auto-Run). La règle conserve ses variables bleues dans l'éditeur, mais iLogic ne la relancera plus quand ces paramètres changent.

C'est utile dans plusieurs situations :
- La règle effectue des opérations coûteuses (recalcul d'assemblage, accès réseau) et vous ne voulez pas qu'elle se déclenche en permanence
- Vous voulez contrôler l'ordre d'exécution : plutôt que de laisser iLogic décider quand relancer la règle, vous la déclenchez vous-même via un déclencheur d'événement ou depuis une autre règle avec
iLogicVb.RunRule("nom_de_la_regle") - Vous êtes en phase de mise au point et vous voulez tester la règle à la demande sans qu'elle interfère avec votre travail de modélisation
L'option est réversible à tout moment : désactivez-la pour restaurer le comportement automatique.
Vérifier les variables détectées
Pour savoir quels paramètres iLogic a détectés dans une règle, vous pouvez consulter la liste des variables dans l'éditeur de règles. Les paramètres reconnus apparaissent en bleu dans le code et sont listés dans le panneau Paramètres de l'éditeur. Si un nom de paramètre n'apparaît pas en bleu, c'est qu'iLogic ne l'a pas reconnu — vérifiez l'orthographe et assurez-vous que le paramètre existe bien dans le document.
Vous pouvez aussi vérifier le comportement automatique dans le journal iLogic (iLogic Log). Pour que les traces de déclenchement apparaissent, l'option Suivi détaillé doit être cochée dans la Configuration iLogic avancée (onglet Outils, groupe de fonctions Options, panneau déroulant). Quand cette option est active et qu'une règle se déclenche suite à un changement de paramètre, le journal affiche une entrée du type :
TRACE|Déclencheur: mon_parametre (MonDocument.ipt) = 1 nd
Cette trace confirme quel paramètre a provoqué l'exécution et dans quel document. C'est un outil précieux pour diagnostiquer pourquoi une règle se déclenche (ou ne se déclenche pas) comme prévu.
Résumé
| Concept | Description |
|---|---|
| Variables bleues | Paramètres reconnus et surveillés par iLogic — déclenchent l'exécution automatique |
Parameter() |
Accès explicite sans surveillance — pas d'exécution automatique |
| Règles internes | Supportent les variables bleues et l'exécution automatique |
| Règles externes | Pas de variables bleues — doivent utiliser Parameter() et des déclencheurs explicites |
La distinction entre variables bleues et Parameter() est l'une des subtilités les plus importantes d'iLogic. En la comprenant, vous saurez exactement pourquoi une règle s'exécute (ou ne s'exécute pas) quand un paramètre change — et vous choisirez la bonne syntaxe dès le départ.
Besoin d'un développement Inventor (iLogic, .NET, VBA, C++) ou Fusion 360 (Python, C++) ? Contactez-moi pour un devis gratuit.