Architecture technique.
Une vue d’exploitation du plugin Revit : composants, Revit API, stockage local, transactions, dépendances, logs et reporting.
Architecture générale
PMB est chargé dans Autodesk Revit comme add-in .NET. Les commandes du ruban appellent une couche de services spécialisée ; celle-ci lit ou modifie le document via l’API Revit et alimente les moteurs de contrôle, de données, de coordination et de reporting.
Runtime & dépendances
Revit 2023–2024
La branche Revit 2023 est compilée en x64 sur .NET Framework 4.8 et référence directement RevitAPI et RevitAPIUI. La matrice PMB adapte le runtime aux générations de Revit supportées.
Bibliothèques
Le build utilise notamment ClosedXML / OpenXML pour les workflows Excel et PDFsharp pour la génération PDF. Les dépendances sont résolues avec l’assembly PMB au runtime.
Accès au modèle Revit
Les modules séparent l’interface, les commandes et les services métier. Les opérations de lecture exploitent les objets et collecteurs de l’API Revit. Lorsqu’une fonction modifie le document — paramètres, familles, espaces, sous-projets ou autres données — l’écriture est exécutée dans le contexte transactionnel imposé par Revit. Une opération non validée n’est pas présentée comme une modification persistée.
Les modules qui proposent une prévisualisation ou un dry-run permettent de contrôler le périmètre avant l’écriture lorsque cette fonction est disponible.
Stockage local
| Donnée | Emplacement / comportement | Finalité |
|---|---|---|
| Paramètres PMB | %APPDATA%\PimpMyBIM\settings.ini | Langue, thème, options de reporting, branding et préférences. |
| Logs | %APPDATA%\PimpMyBIM\Logs\log_YYYY-MM-DD.log | Diagnostic local. Les entrées peuvent contenir utilisateur Windows, nom de machine, version PMB, niveau et contexte d’erreur. |
| Session mémorisée | %APPDATA%\PimpMyBIM\Licensing\session.ini | Session locale lorsque « se souvenir de moi » est utilisé. Le contenu est protégé par Windows DPAPI pour l’utilisateur courant. |
| Exports | Emplacement choisi par l’utilisateur | Excel, CSV, HTML, PDF et BCF selon le module. |
Authentification & protection locale
L’implémentation actuellement auditée comporte une abstraction d’authentification et un provider local CSV. Les mots de passe ne sont pas comparés en clair : ils sont dérivés avec PBKDF2 et un sel individuel. Une session mémorisée est protégée avec Windows DPAPI, portée utilisateur courant.
Cette architecture permet de faire évoluer le provider d’authentification sans coupler les modules métier à un mécanisme unique. La documentation Enterprise décrit séparément ce qui est requis pour un déploiement public et les éléments qui dépendent du service de licence commercial.
Logs & gestion des erreurs
PMB dispose d’un logger local INFO / WARN / ERROR. Le logger est conçu pour ne pas provoquer l’arrêt de Revit en cas d’échec d’écriture du journal. Les exceptions gérées peuvent être consignées avec leur contexte technique afin de faciliter le support.
Les fichiers de logs restent locaux au poste dans l’implémentation auditée ; aucune transmission automatique de ces journaux n’est documentée ici.
Reporting
Le moteur de reporting constitue une couche transverse utilisée par plusieurs modules. Les sorties disponibles dépendent du module et de l’édition : HTML, PDF, Excel, CSV et BCF. Le branding est configurable avec le nom de société, un logo, un template et des couleurs principales, secondaires et de sévérité afin d’adapter les livrables à l’identité du client ou du projet.
Limites de cette documentation
Cette page documente uniquement les comportements vérifiés dans le dépôt PMB audité. Elle n’affirme pas la compatibilité d’un environnement d’entreprise, d’un mode de déploiement ou d’un service réseau tant que celui-ci n’a pas été validé. Les exigences DSI/RSSI sont regroupées dans la documentation Enterprise.