Exporter et importer des règles iLogic

mercredi 4 mars 2026

Les règles iLogic internes sont stockées directement à l'intérieur des documents Inventor (pièces, assemblages, dessins). Cette approche a l'avantage d'être pratique — la règle voyage avec le fichier — mais elle pose un problème majeur : il est impossible de placer ces règles sous contrôle de révision avec un outil comme Git.

En exportant les règles sous forme de fichiers texte (.iLogicVB), on ouvre plusieurs possibilités :

  • Suivi des modifications avec Git : Git est un outil de contrôle de version utilisé par la quasi-totalité des développeurs. Il conserve l'historique complet de chaque fichier, ce qui permet de comparer les versions, de revenir en arrière en cas d'erreur et de travailler à plusieurs sur les mêmes règles. C'est aussi une forme de sauvegarde fiable : tant que le dépôt est synchronisé avec un serveur distant, rien ne se perd. Adopter Git pour ses règles iLogic, c'est appliquer les mêmes pratiques que les développeurs professionnels.
  • Édition dans un éditeur moderne comme Visual Studio Code, avec la recherche avancée et la possibilité de coupler l'éditeur avec un assistant d'intelligence artificielle pour accélérer l'écriture du code.

Les règles internes restent indispensables

Les règles internes ont des avantages propres qu'une règle externe ne peut pas reproduire :

  • Accès direct aux paramètres : dans l'éditeur intégré, les noms de paramètres du modèle apparaissent comme des variables (affichées en bleu). On peut les lire et les modifier sans passer par l'API, ce qui rend le code plus lisible.
  • Déclenchement automatique ciblé : une règle interne peut être associée au changement d'un paramètre précis via les Event Triggers. Par exemple, modifier le paramètre Longueur peut déclencher automatiquement une règle qui recalcule d'autres dimensions. Les règles externes peuvent aussi être assignées à des déclencheurs, mais uniquement sur des événements globaux comme "tout changement de paramètre", sans pouvoir filtrer sur un paramètre spécifique.

L'édition dans un éditeur externe ne remplace donc pas l'éditeur intégré : les deux approches sont complémentaires. L'éditeur iLogic d'Inventor propose des assistants interactifs qui permettent de parcourir le modèle et de sélectionner directement des paramètres, des iPropriétés ou des composants d'assemblage. Il fournit également une bibliothèque d'extraits de code prêts à l'emploi pour les opérations courantes. On peut s'en servir pour construire les appels liés au modèle et configurer les déclencheurs, puis basculer vers un éditeur externe pour le reste de la logique.

Procédure d'export / import

Le principe est simple, mais demande de la rigueur :

  1. Après chaque modification dans l'éditeur intégré d'Inventor, exécuter la règle d'export pour synchroniser les fichiers sur le disque.
  2. Après chaque modification dans l'éditeur externe, exécuter la règle d'import pour injecter les changements dans le document Inventor.

Il faut bien penser à synchroniser à chaque fois, sinon on risque d'écraser des modifications faites d'un côté par l'autre.

Règle d'export

Cette règle exporte toutes les règles iLogic du document actif sous forme de fichiers .iLogicVB dans un dossier. Elle s'exclut elle-même de l'export pour éviter une boucle inutile.

' Exporter toutes les règles iLogic du document actif
Dim doc As Document = ThisDoc.Document
Dim iLogicAuto As Object = Nothing

Try
    iLogicAuto = ThisApplication.ApplicationAddIns.ItemById( _
        "{3BDD8D79-2179-4B11-8A5A-257B1C0263AC}").Automation
Catch
    MessageBox.Show("iLogic Automation non disponible.")
    Return
End Try

Dim rules = iLogicAuto.Rules(doc)
Dim exportFolder As String = "C:\MonProjet\"

If Not System.IO.Directory.Exists(exportFolder) Then
    System.IO.Directory.CreateDirectory(exportFolder)
End If

For Each r In rules
    If r.Name = "Export règles" Then Continue For
    Dim filePath As String = System.IO.Path.Combine(exportFolder, r.Name & ".iLogicVB")
    System.IO.File.WriteAllText(filePath, r.Text)
Next

MessageBox.Show("Export terminé : " & exportFolder)

Règle d'import

Cette règle parcourt les fichiers .iLogicVB du dossier et met à jour les règles existantes dans le document. Si une règle n'existe pas encore, elle est créée automatiquement.

' Importer / mettre à jour les règles iLogic depuis un dossier
Dim doc As Document = ThisDoc.Document
Dim iLogicAuto As Object = Nothing

Try
    iLogicAuto = ThisApplication.ApplicationAddIns.ItemById( _
        "{3BDD8D79-2179-4B11-8A5A-257B1C0263AC}").Automation
Catch
    MessageBox.Show("iLogic Automation non disponible.")
    Return
End Try

' Dossier contenant les fichiers .iLogicVB ou .txt
Dim importFolder As String = "C:\MonProjet\"

If Not System.IO.Directory.Exists(importFolder) Then
    MessageBox.Show("Le dossier n'existe pas : " & importFolder)
    Return
End If

' Récupérer les fichiers
Dim files = System.IO.Directory.GetFiles(importFolder, "*.iLogicVB")

If files.Length = 0 Then
    MessageBox.Show("Aucun fichier .iLogicVB trouvé.")
    Return
End If

For Each file In files
    Dim ruleName As String = System.IO.Path.GetFileNameWithoutExtension(File)
    Dim ruleText As String = System.IO.File.ReadAllText(File)

    Dim existingRule = iLogicAuto.GetRule(doc, ruleName)

    If existingRule Is Nothing Then
        ' Créer une nouvelle règle
        iLogicAuto.AddRule(doc, ruleName, ruleText)
    Else
        ' Mettre à jour la règle existante
        existingRule.Text = ruleText
    End If
Next

MessageBox.Show("Import / mise à jour terminé.")

Notez qu'on peut faire la même chose avec les macros VBA, même si je déconseille d'écrire du nouveau code sur cette plateforme qui est obsolète depuis longtemps, mais ça peut être utile pour migrer ces macros vers des règles iLogic.


Coup de pouce Besoin d'un développement Inventor (iLogic, .NET, VBA, C++) ou Fusion 360 (Python, C++) ? Contactez-moi pour un devis gratuit.