Dynamo Revit : Positionner annotations entre raidisseurs muraux

Je suis débutant sur Dynamo et j’essaie de créer un script pour positionner automatiquement des annotations (type « CH ») entre des paires de raidisseurs dans les murs de mon modèle Revit. Je bloque sur la méthode pour trier ces raidisseurs et les regrouper correctement afin de placer les annotations au bon endroit.

Pour positionner automatiquement des annotations entre des raidisseurs muraux dans Revit via Dynamo, la méthode consiste à extraire les géométries des éléments, les trier par rapport aux murs, puis calculer des points d’insertion précis, en tenant compte des spécificités des murs multicouches et des décalages souhaités. La solution principale a été proposée par Christian.stan.

  1. Sélectionner et extraire les géométries: Récupérez les modèles génériques (raidisseurs) et les murs hôtes dans Dynamo. Utilisez des nœuds comme Element.GetLocation pour obtenir les points d’insertion des raidisseurs et les lignes d’axe des murs.
  2. Gérer les murs multicouches: Si vos murs sont composés de plusieurs couches, le nœud Element.GetLocation sur un mur peut renvoyer l’axe central du mur entier. Pour une intersection correcte, il est nécessaire d’adapter l’extraction de la ligne de référence du mur. Christian.stan a fourni un script Python pour générer la ligne centrale de la structure (Gros-Œuvre) du mur, assurant une base de calcul fiable.
  3. Trier et apparier les raidisseurs: Ordonnez les points des raidisseurs en fonction de leur proximité avec les lignes d’appui des murs. Développez une logique (via un script Python fourni par Christian.stan) pour regrouper ces raidisseurs en paires, associant les raidisseurs adjacents sur un même mur.
  4. Calculer les points d’insertion des annotations: Pour chaque paire de raidisseurs, déterminez le point médian entre leurs points d’insertion respectifs. Ce point servira de base pour le placement de l’annotation.
  5. Décaler les annotations (optionnel): Si un décalage des annotations vers l’extérieur du mur est nécessaire :
    • Récupérez le vecteur d’orientation normalisé du mur avec le nœud Wall.Orientation.
    • Mettez à l’échelle ce vecteur par la distance de décalage souhaitée à l’aide de Vector.Scale.
    • Ajoutez ce vecteur de décalage aux points médians calculés précédemment avec Point.Add.
    • Note: Christian.stan a également fourni un script intégrant la gestion des ‹ flips › de murs pour une robustesse accrue du décalage.
  6. Placer les annotations: Utilisez les points d’insertion finaux (avec ou sans décalage) pour créer et positionner les annotations de type « CH » dans votre modèle Revit.