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 :
- 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
StringouCode Blockutilise ce nom exact pour le paramètre cible. - Type de valeur injectée : Le nœud
Element.SetParameterByNameattend soit l’ID numérique du sous-projet, soit l’objetWorksetlui-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’objetWorksetvia des nœuds dédiés (par exemple,Workset.ByNamesi disponible dans un package). - 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.SetWorksetqui gèrent les subtilités de l’API Revit et la localisation des paramètres, évitant ainsi les erreurs courantes. - Débogage pas à pas : Insérez des nœuds
Watchaprè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.SetParameterByNamepour identifier précisément où la donnée devient incorrecte ou n’est plus reconnue.