LISP pour copier les jeux de propriétés (Property Sets) entre entités AutoCAD Architecture/MEP

Quelle est la méthode pour dupliquer les valeurs des jeux de propriétés personnalisés (Property Sets) d’un objet AutoCAD Architecture/MEP vers une sélection d’autres objets, en utilisant une routine LISP ?

Cette routine LISP, développée par Phil, est conçue pour automatiser la copie des valeurs de « Jeux de Propriétés » (Property Sets) non automatiques d’une entité source AutoCAD Architecture (ACA) ou AutoCAD MEP vers d’autres entités cibles. Elle est particulièrement utile pour maintenir la cohérence des données BIM et accélérer la saisie d’informations répétitives.

Prérequis

Avant d’utiliser ce LISP, il est impératif que des « Définitions de Jeux de Propriétés » (Property Set Definitions) soient déjà créées et associées aux types d’objets concernés dans votre dessin. Le LISP s’appuie sur ces définitions existantes pour identifier et manipuler les données.

Fonctionnement et Étapes d’Utilisation

  1. Chargement de la routine LISP :

    • Ouvrez votre dessin dans AutoCAD Architecture ou AutoCAD MEP.
    • Chargez le fichier .LSP fourni (contenant les fonctions c:copier_donnee_etendue et boitepropetendue1) dans votre session AutoCAD. Vous pouvez le faire via la commande APPLOAD ou en glissant-déposant le fichier directement dans la fenêtre de dessin.
  2. Lancement de la commande :

    • Dans la ligne de commande d’AutoCAD, tapez copier_donnee_etendue et appuyez sur Entrée.
  3. Sélection de l’entité de référence (source) :

    • Le programme vous invite à "CLIQUER SUR L’ENTITE DE REFERENCE : ". Sélectionnez l’objet ACA/MEP dont vous souhaitez copier les valeurs des jeux de propriétés. Cet objet servira de modèle pour les données.
  4. Identification des propriétés copiable :

    • Le LISP analyse l’entité source pour détecter tous les « Jeux de Propriétés » qui lui sont attachés.
    • Il filtre ensuite ces propriétés pour ne retenir que celles qui ne sont pas définies comme automatiques (c’est-à-dire les propriétés dont la valeur est saisie manuellement ou calculée par une formule non-automatique, et non celles gérées automatiquement par le logiciel).
  5. Sélection des propriétés à copier (boîte de dialogue DCL) :

    • Une boîte de dialogue personnalisée (DynBlkProps) s’affiche. Elle liste toutes les propriétés non automatiques identifiées sur l’entité source.
    • Pour chaque propriété, une case à cocher est présentée. Cochez les propriétés dont vous souhaitez dupliquer les valeurs.
    • Des boutons « TOUT » et « Aucun » sont disponibles pour faciliter la sélection de toutes ou aucune propriété.
    • Validez votre sélection en cliquant sur « OK ».
  6. Sélection des entités cibles :

    • Le programme vous invite ensuite à « SELECTIONNER LES ENTITES A MODIFIER: ».
    • Sélectionnez toutes les entités ACA/MEP vers lesquelles vous souhaitez copier les valeurs des propriétés choisies.
    • Note importante : Le LISP est programmé pour ne sélectionner que les entités qui sont du même type d’objet et qui résident sur le même calque que l’entité source. Assurez-vous que vos entités cibles respectent ces critères.
  7. Exécution de la copie :

    • Le LISP parcourt les entités sélectionnées et, pour chacune d’elles, applique les valeurs des propriétés choisies depuis l’entité source.
    • Une barre de progression (acet-ui-progress) s’affiche pour vous informer de l’avancement de l’opération.
    • Pendant l’exécution, les mises à jour automatiques des tables de nomenclatures (AEC_SCHEDULE_TABLE) sont temporairement désactivées pour optimiser les performances, puis réactivées automatiquement à la fin du processus.

Avantages de cette routine LISP

  • Automatisation et gain de temps : Élimine la nécessité de saisir manuellement les mêmes données de propriétés sur de multiples objets, ce qui est un gain de temps considérable sur les projets de grande envergure.
  • Cohérence des données : Garantit que les mêmes valeurs de propriétés sont appliquées uniformément à des objets similaires, améliorant ainsi la qualité et la fiabilité des données BIM.
  • Flexibilité : La boîte de dialogue DCL permet de choisir précisément quelles propriétés copier, offrant un contrôle fin sur le processus.

Considérations techniques

  • Le code utilise intensivement les fonctions ActiveX (vlax-get-acad-object, vla-getinterfaceobject, vlax-invoke-method, vlax-get-property, vlax-put-property) pour interagir directement avec l’API d’AutoCAD et les objets AEC, ce qui est la méthode standard pour manipuler les « Jeux de Propriétés » dans AutoCAD Architecture/MEP.
  • La gestion de l’AutoUpdate des tables de nomenclatures est une bonne pratique pour éviter des ralentissements ou des problèmes de performance lors de modifications massives de données.