Comment forcer la mise à jour des champs d’attributs d’un bloc AutoCAD qui ne s’actualisent pas automatiquement après insertion ou modification des attributs source, même après les commandes REGEN ou ATTSYNC ?
Le problème des champs d’attributs de bloc qui ne se mettent pas à jour automatiquement est une limitation connue dans certaines versions d’AutoCAD, y compris AutoCAD 2019. Les commandes classiques comme REGEN, ATTSYNC ou UPDATEFIELD ne suffisent souvent pas à forcer l’actualisation des champs imbriqués dans les attributs d’un bloc. Voici une méthode de contournement efficace, basée sur l’utilisation des blocs dynamiques :
Contexte du Problème :
Vous avez créé un bloc avec plusieurs attributs (ex: Signal1, nom_connecteur, numéro_câble) et un attribut final qui concatène les valeurs des précédents via des champs (ex: xxxx / XXXX (00)). Après insertion du bloc ou modification des attributs source, l’attribut contenant les champs ne se met pas à jour, affichant les valeurs par défaut ou obsolètes.
Solution : Utiliser un Paramètre Dynamique pour Forcer la Mise à Jour
Cette méthode consiste à transformer votre bloc en bloc dynamique et à utiliser un paramètre dynamique ‹ factice › pour déclencher la mise à jour des champs.
-
Ouvrir l’Éditeur de Bloc :
- Sélectionnez une instance de votre bloc dans le dessin.
- Cliquez-droit et choisissez
Éditeur de bloc(ou utilisez la commandeBEDIT).
-
Ajouter un Paramètre Dynamique ‹ Factice › :
- Dans le ruban de l’Éditeur de bloc, sous l’onglet
Paramètres, sélectionnezParamètre de point. - Placez ce paramètre n’importe où dans votre bloc (il n’a pas besoin d’être associé à une action spécifique, il sert uniquement de déclencheur).
- Assurez-vous que le paramètre est bien ajouté et visible dans la palette
Propriétésdu bloc dynamique.
- Dans le ruban de l’Éditeur de bloc, sous l’onglet
-
Enregistrer et Fermer l’Éditeur de Bloc :
- Cliquez sur
Fermer l'éditeur de blocet enregistrez les modifications.
- Cliquez sur
-
Mettre à Jour les Instances de Bloc Existantes :
- Sélectionnez toutes les instances de votre bloc dans le dessin (vous pouvez utiliser
QSELECTouSELECTSIMILAR). - Ouvrez la palette
Propriétés(PROPERTIESouCtrl+1). - Localisez le paramètre de point que vous avez ajouté (ex:
Position XouPosition Ydu paramètre de point). - Modifiez légèrement sa valeur (par exemple, si la
Position Xest0.0000, changez-la en0.0001). - Exécutez la commande
REGEN(ouREGENALL). - Les champs dans les attributs devraient maintenant s’actualiser avec les valeurs correctes.
- Vous pouvez ensuite remettre la valeur du paramètre à son état initial (
0.0000) si nécessaire, les champs resteront mis à jour.
- Sélectionnez toutes les instances de votre bloc dans le dessin (vous pouvez utiliser
Automatisation pour les Grandes Quantités :
Pour les projets avec un grand nombre de blocs, cette manipulation peut être automatisée via un script LISP ou un programme .NET qui parcourt les blocs, modifie temporairement la valeur du paramètre dynamique, puis exécute un REGEN. C’est la méthode qui a été validée par l’utilisateur initial pour son processus d’insertion de blocs via LISP.
Bien que cette solution soit un contournement, elle est très efficace pour résoudre le problème de mise à jour des champs dans les attributs de bloc.