Automatiser la copie de valeurs de paramètres Revit avec Dynamo

J’ai besoin de dupliquer la valeur d’un paramètre (ex: ‹ nom du panneau ›) dans un autre paramètre (‹ identifiant ›) pour des éléments Revit. J’utilise un script Dynamo, mais je souhaite automatiser la sélection des éléments plutôt que de les choisir un par un.

Pour automatiser la copie de paramètres dans Revit avec Dynamo, il est essentiel d’optimiser la sélection des éléments et d’adapter le script aux différents types de données des paramètres.

Voici la démarche détaillée :

  1. Affiner la sélection des éléments : Au lieu de sélectionner les éléments un par un, utilisez des nœuds Dynamo permettant une sélection groupée. Préférez des nœuds comme Categories suivi de All Elements of Category pour cibler tous les éléments d’une catégorie spécifique (ex: Panneaux électriques, Murs, Sols). Si vous travaillez avec des familles spécifiques, Family Types et All Elements of Type peuvent être plus appropriés.
  2. Récupérer la valeur du paramètre source : Connectez les éléments sélectionnés au nœud GetParameterValueByName. Assurez-vous que le nom du paramètre source (ex: « nom du panneau », « Code d’assemblage ») est entré exactement comme il apparaît dans Revit, en respectant la casse.
  3. Définir la valeur du paramètre cible : Utilisez le nœud SetParameterValueByName pour injecter la valeur récupérée dans le paramètre cible (ex: « identifiant », « BIM_UNIFORMAT II »). Ce nœud prendra en entrée les éléments, le nom du paramètre cible et la liste des valeurs à attribuer.
  4. Gérer les types de paramètres et les conversions :
    • Paramètres de texte libre : La copie directe de texte entre paramètres de type ou d’instance est généralement fonctionnelle sans conversion spécifique.
    • Paramètres numériques ou booléens (0/1) : Si vous copiez des valeurs numériques ou booléennes vers un paramètre de texte, une conversion est nécessaire. Utilisez un Code Block avec la syntaxe "" + x (où x est la valeur numérique ou booléenne) ou le nœud String From Object pour transformer la valeur en chaîne de caractères. Pour des valeurs booléennes (true/false), un nœud If (TEST ? action si vrai : actions si faux) peut être utilisé pour les convertir en 0/1 ou tout autre texte désiré.
  5. Considérations sur les paramètres de type et d’instance :
    • La copie d’un paramètre de type vers un paramètre d’instance est tout à fait possible et courante.
    • La copie d’un paramètre d’instance vers un autre paramètre d’instance fonctionne également.
    • La copie entre paramètres de type est possible, mais assurez-vous que le paramètre cible de type est bien modifiable et que son nom est correctement référencé.
    • La copie d’un paramètre d’instance vers un paramètre de type n’est généralement pas logique ni supportée, car un paramètre de type doit avoir une valeur unique pour toutes les instances de ce type, ce qui est incompatible avec la variabilité des valeurs d’instance.
  6. Vérification et débogage : Utilisez des nœuds Watch à différentes étapes de votre script Dynamo pour inspecter les données et vous assurer que les valeurs sont correctement récupérées et transformées avant d’être écrites. Vérifiez scrupuleusement l’orthographe des noms de paramètres.

Cette approche, suggérée notamment par Jacques Rigal et christian.stan, permet une automatisation robuste de la gestion des paramètres dans Revit via Dynamo.