Automatiser la mise à jour d'attributs via une table Excel (RECHERCHEV) dans AutoCAD

Comment automatiser la mise à jour d’un attribut de bloc (‹ Libellé ›) en fonction de la saisie d’un autre attribut (‹ Repère ›), en utilisant une table de correspondance externe (similaire à RECHERCHEV d’Excel), pour un grand nombre de références dans AutoCAD ?

La problématique de l’utilisateur est de lier dynamiquement la valeur d’un attribut de bloc (‹ Libellé ›) à celle d’un autre (‹ Repère ›) en se basant sur une nomenclature externe (Excel), à l’instar de la fonction RECHERCHEV. Compte tenu du volume important de données (plus de 6000 repères), une solution manuelle ou basée sur des listes déroulantes est impraticable. Voici les approches possibles, avec une emphase sur la méthode la plus adaptée au besoin exprimé :

1. Solution Recommandée : Export/Import d’Attributs via Excel (ATTOUT/ATTIN)

Cette méthode est la plus robuste et la plus simple à mettre en œuvre pour gérer un grand nombre d’attributs sans programmation, bien qu’elle ne soit pas dynamique en temps réel.

Principe : Exporter les attributs des blocs vers un fichier texte, traiter ce fichier dans Excel pour y appliquer la logique de RECHERCHEV, puis réimporter les attributs mis à jour dans AutoCAD.

Procédure Étape-par-Étape :

  1. Préparation des Blocs avec Attributs :

    • Assurez-vous que vos blocs sont définis avec les attributs nécessaires : un attribut pour le ‹ Repère › (que vous saisirez manuellement) et un attribut pour le ‹ Libellé › (qui sera mis à jour).
    • Les noms des attributs doivent être clairs et uniques (ex: REP_EQUIPEMENT, LIB_EQUIPEMENT).
  2. Exportation des Attributs (Commande ATTOUT) :

    • Dans AutoCAD, lancez la commande ATTOUT (ou _ATTOUT).
    • Sélectionnez les blocs dont vous souhaitez exporter les attributs. Vous pouvez sélectionner tous les blocs du dessin ou filtrer par nom de bloc.
    • Choisissez un nom et un emplacement pour le fichier d’exportation. AutoCAD générera un fichier texte (.txt ou .csv) contenant les données des attributs.
    • Le fichier exporté contiendra généralement des informations comme le nom du bloc, le handle de l’entité, et les valeurs de chaque attribut.
  3. Traitement dans Excel (RECHERCHEV) :

    • Ouvrez le fichier .txt ou .csv généré par ATTOUT dans Excel. Utilisez l’assistant d’importation de texte pour vous assurer que les colonnes sont correctement séparées (souvent par des tabulations ou des virgules).
    • Vous aurez une colonne pour le ‹ Repère › et une pour le ‹ Libellé › (potentiellement vide ou avec des valeurs initiales).
    • Utilisez votre nomenclature Excel existante (la table de correspondance ‹ Repère › → ‹ Libellé ›) comme source pour la fonction RECHERCHEV.
    • Exemple de formule Excel : Si votre table de nomenclature est dans Feuil2!A:B où la colonne A contient les ‹ Repères › et la colonne B les ‹ Libellés ›, et que la colonne de ‹ Repère › de votre fichier ATTOUT est en C, la formule dans la colonne ‹ Libellé › (par exemple en D) serait : =RECHERCHEV(C2;Feuil2!A:B;2;FAUX). Appliquez cette formule à toutes les lignes.
    • Important : Une fois les ‹ Libellés › mis à jour, copiez la colonne des ‹ Libellés › et collez-la en tant que valeurs pour éviter que les formules ne soient importées dans AutoCAD.
    • Enregistrez ce fichier Excel modifié au format .txt ou .csv (en respectant le même délimiteur que l’export initial).
  4. Importation des Attributs (Commande ATTIN) :

    • Dans AutoCAD, lancez la commande ATTIN (ou _ATTIN).
    • Sélectionnez le fichier .txt ou .csv que vous venez de modifier et d’enregistrer depuis Excel.
    • AutoCAD lira le fichier et mettra à jour les attributs des blocs correspondants dans votre dessin.

Avantages :

  • Gère efficacement de très grands volumes de données.
  • Utilise la puissance de calcul et les fonctions d’Excel pour la logique de correspondance.
  • Ne nécessite aucune programmation spécifique à AutoCAD.
  • L’utilisateur est déjà familier avec cette manipulation.

Inconvénients :

  • N’est pas une solution dynamique en temps réel : chaque modification d’un ‹ Repère › nécessite de relancer le cycle export/traitement/import.
  • Peut être fastidieux si les mises à jour sont très fréquentes.

2. Alternative : Tables des Propriétés de Bloc (pour information)

Cette fonctionnalité d’AutoCAD permet de créer des relations entre les attributs au sein d’un bloc dynamique. Cependant, elle présente une limitation majeure pour votre cas d’usage.

Principe : Définir une table de correspondance directement dans la définition du bloc dynamique. Lorsqu’une valeur est sélectionnée pour un attribut (le ‹ Repère ›), l’autre attribut (le ‹ Libellé ›) est automatiquement mis à jour.

Mise en œuvre :

  1. Ouvrez l’éditeur de blocs (BEDIT).
  2. Ajoutez un paramètre de table (TABLEPARAM) et une action de table (TABLEACTION).
  3. Dans la table des propriétés, vous pouvez copier/coller vos données ‹ Repère › et ‹ Libellé › depuis Excel.
  4. Associez les attributs ‹ Repère › et ‹ Libellé › aux colonnes de cette table.

Limitations pour votre cas :

  • Saisie via liste déroulante uniquement : La mise à jour automatique ne fonctionne que si le ‹ Repère › est sélectionné via une liste déroulante fournie par le bloc dynamique. Il n’est pas possible de saisir manuellement le ‹ Repère › dans la palette des propriétés et de voir le ‹ Libellé › se mettre à jour automatiquement.
  • Impraticable pour 6000+ entrées : Une liste déroulante avec plus de 6000 éléments est ingérable et contre-productive en termes d’ergonomie et de temps de sélection.
  • Le paramètre « valeur par défaut en cas de non-correspondance entre les propriétés et la table » est utile si une saisie manuelle était possible et que la valeur saisie n’existait pas dans la table, mais il ne résout pas le problème de la saisie manuelle non dynamique.

3. Autres Pistes (pour information, plus complexes)

  • Liaison de données avec AutoCAD MAP 3D : Permet de lier des objets AutoCAD à des sources de données externes (comme Excel ou des bases de données). C’est une solution plus complexe à mettre en place et à maintenir, nécessitant des compétences spécifiques à AutoCAD MAP 3D et une gestion rigoureuse des sources de données sur tous les postes de travail.
  • Programmation (LISP, VBA, C# .NET) : C’est la solution la plus flexible et la plus dynamique. Un programme personnalisé pourrait lire l’attribut ‹ Repère › dès sa saisie, interroger une base de données ou un fichier Excel en arrière-plan, puis mettre à jour l’attribut ‹ Libellé › en temps réel. Cependant, cela nécessite des compétences en développement et une maintenance du code, ce que l’utilisateur souhaite éviter.

Conclusion :
Pour votre besoin spécifique de mise à jour d’attributs basée sur une table de correspondance Excel avec un grand volume de données et sans recours à la programmation, la méthode ATTOUT/ATTIN est la plus appropriée et la plus efficace. Elle permet de tirer parti des capacités de RECHERCHEV d’Excel tout en restant dans un cadre de manipulation connu et maîtrisé.