Comment extraire les données (notamment les attributs) de multiples blocs AutoCAD vers un tableur ou une base de données, les modifier, puis réinjecter ces modifications dans le dessin, potentiellement en ajoutant de nouveaux attributs ou en remplaçant des blocs existants ?
La gestion et la modification massive d’attributs de blocs AutoCAD via des outils externes comme Excel est une pratique courante pour optimiser les flux de travail, notamment dans les bureaux d’études. Voici les méthodes et outils pour y parvenir, du plus simple au plus avancé :
-
Utilisation des Express Tools : ATTIN et ATTOUT
Ces commandes natives d’AutoCAD (faisant partie des Express Tools) permettent d’exporter et d’importer des données d’attributs.- ATTOUT (ATTribute OUTput) : Exporte les données d’attributs des blocs sélectionnés vers un fichier texte au format CSV (Comma Separated Values). Ce fichier contient le nom du bloc, son handle, son point d’insertion, et les valeurs de tous ses attributs.
- Procédure :
- Lancez la commande
ATTOUT(ou vérifiez la présence de l’onglet ‹ Express Tools › dans le ruban). - Sélectionnez les blocs dont vous souhaitez exporter les attributs.
- Spécifiez le nom et l’emplacement du fichier de sortie
.txt.
- Lancez la commande
- Modification : Ouvrez le fichier
.txtavec Excel. Vous pouvez modifier les valeurs des attributs existants. Attention : Ne modifiez pas la structure du fichier (colonnes, ordre) et ne tentez pas d’ajouter de nouveaux attributs via cette méthode.
- Procédure :
- ATTIN (ATTribute INput) : Importe les données d’attributs depuis un fichier CSV (généré par ATTOUT ou structuré de manière similaire) pour mettre à jour les blocs correspondants dans le dessin.
- Procédure :
- Lancez la commande
ATTIN. - Sélectionnez le fichier
.txtmodifié. - AutoCAD mettra à jour les attributs des blocs dont les handles correspondent.
- Lancez la commande
- Procédure :
- Avantages : Simple, intégré, ne nécessite pas de développement externe.
- Limitations : Ne permet pas d’ajouter de nouveaux attributs à des blocs existants via le fichier d’import. Nécessite une discipline rigoureuse dans la gestion des blocs et des attributs.
- ATTOUT (ATTribute OUTput) : Exporte les données d’attributs des blocs sélectionnés vers un fichier texte au format CSV (Comma Separated Values). Ce fichier contient le nom du bloc, son handle, son point d’insertion, et les valeurs de tous ses attributs.
-
Solution avancée : DLL ExcelAttribute de Gilles Chanteau
Cette solution, développée par Gilles Chanteau, est une évolution plus robuste des commandesATTIN/ATTOUT. Elle offre une interface plus conviviale et gère mieux les différents types de données.- Fonctionnalités : Exportation des attributs de blocs vers Excel, modification dans Excel, et réimportation des valeurs modifiées dans AutoCAD. Elle peut gérer des blocs imbriqués et des attributs complexes.
- Installation : Nécessite le téléchargement et le chargement d’une DLL spécifique à votre version d’AutoCAD (par exemple,
ExcelAttribute_19.dllpour AutoCAD 2015-2017, d’autres versions existent pour AutoCAD 2012 et plus récentes, disponibles sur le site de l’auteur). - Procédure :
- Chargez la DLL (via la commande
APPLOAD). - Utilisez les commandes spécifiques de la DLL (souvent
EXCELATTRIBUTESEXPORTetEXCELATTRIBUTESIMPORT). - Modifiez le fichier Excel généré.
- Réimportez les données.
- Chargez la DLL (via la commande
- Avantages : Plus puissant et flexible que les Express Tools, meilleure gestion des données.
- Limitations : Comme
ATTIN/ATTOUT, cette solution ne permet généralement pas d’ajouter de nouveaux attributs à des définitions de blocs existantes via le processus d’importation. Elle est conçue pour modifier les valeurs des attributs déjà présents.
-
Développement personnalisé (LISP, VBA, .NET C#)
Pour des besoins plus complexes, comme l’ajout dynamique de nouveaux attributs à des blocs existants, la modification de propriétés de blocs non-attributaires, ou le remplacement conditionnel de blocs basés sur des données externes, un développement personnalisé est nécessaire.- LISP/VBA : Permet d’automatiser des tâches répétitives et d’interagir avec les objets AutoCAD. Un script LISP ou une macro VBA peut lire un fichier Excel, itérer sur les blocs du dessin, modifier leurs attributs, ou même ajouter de nouveaux attributs si la définition du bloc est mise à jour ou si un nouveau bloc est inséré.
- .NET (C# ou VB.NET) : Offre la puissance maximale pour interagir avec l’API AutoCAD. C’est la solution recommandée pour des applications robustes et performantes. Un programme .NET peut :
- Lire et écrire dans des bases de données ou des fichiers Excel.
- Accéder et modifier toutes les propriétés des entités AutoCAD, y compris les attributs.
- Créer de nouvelles définitions de blocs ou modifier des définitions existantes pour y ajouter des attributs.
- Remplacer des blocs par d’autres en conservant ou en mappant les attributs.
- Coût : Le coût d’un tel développement varie considérablement en fonction de la complexité des règles métier, du volume de données, et des fonctionnalités exactes requises. Il peut aller de quelques jours à plusieurs semaines de travail pour un développeur expérimenté.
Recommandations :
- Pour la modification d’attributs existants : Commencez par les Express Tools (
ATTIN/ATTOUT). Si les limitations sont trop fortes, passez à la DLLExcelAttributede Gilles Chanteau. - Pour l’ajout de nouveaux attributs ou des logiques complexes : Un développement personnalisé en LISP, VBA ou .NET est inévitable.
- Discipline : Quelle que soit la méthode, une organisation rigoureuse des noms de blocs et d’attributs est essentielle pour la réussite de l’automatisation.