Dynamo Revit : Assigner des éléments aux sous-projets avec le bon nom de paramètre

J’utilise Dynamo pour classer automatiquement des éléments Revit dans des sous-projets. Mon script récupère bien les IDs des sous-projets, mais lorsque j’essaie d’injecter cet ID via le nœud Element.SetParameterByName, j’obtiens une erreur ou les éléments ne sont plus reconnus. Comment résoudre ce problème de paramètre ?

L’échec du nœud Element.SetParameterByName pour assigner des sous-projets est fréquemment lié à un nom de paramètre incorrect ou à un type de valeur inadapté pour l’API Revit.

Voici les étapes pour résoudre ce problème :

  1. Vérifier le nom du paramètre : Dans Revit en français, le paramètre système pour les sous-projets est généralement nommé « Sous-projet » (au singulier, avec la majuscule initiale). Assurez-vous que votre nœud String ou Code Block utilise ce nom exact pour le paramètre cible.
  2. Type de valeur injectée : Le nœud Element.SetParameterByName attend soit l’ID numérique du sous-projet, soit l’objet Workset lui-même. Si vous injectez l’ID, assurez-vous qu’il est bien un entier et non une chaîne de caractères. Pour une meilleure robustesse, il est souvent préférable d’obtenir directement l’objet Workset via des nœuds dédiés (par exemple, Workset.ByName si disponible dans un package).
  3. Utiliser des nœuds spécialisés : Pour une gestion fiable des sous-projets, privilégiez les nœuds spécifiques de packages Dynamo reconnus (comme Clockwork ou Rhythm). Ces packages contiennent souvent des nœuds comme Element.SetWorkset qui gèrent les subtilités de l’API Revit et la localisation des paramètres, évitant ainsi les erreurs courantes.
  4. Débogage pas à pas : Insérez des nœuds Watch après chaque étape de votre script Dynamo. Vérifiez la validité des éléments, le nom du paramètre et la valeur du sous-projet juste avant l’appel à Element.SetParameterByName pour identifier précisément où la donnée devient incorrecte ou n’est plus reconnue.