Voici un exemple Dynamo for Revit concernant la génération de pont de type voussoir en béton armé. Cet exemple que je vais vous présenter à été créé initialement par mon collègue Polonais Andrzej Samsonowicz.
Ce script Dynamo for Revit fait appel à deux sources de données :
- Une famille paramétrique à composants adaptatifs,
- Un fichier tableur (Microsoft Excel).
Nota : j’ai utilisé une version anglaise de Revit (2017.2) et une version Dynamo 1.3.
1 – Explication de la famille paramétrique à composants adaptatifs :
Cette famille dispose de deux points adaptatifs situés sur l’axe médian du voussoir permettant de le placer dans l’espace.
Sur chacun des points adaptatifs, se trouve un profil paramétrique. Comme vous pouvez le voir sur l’image ci-dessous, le profil est composé d’une multitude de dimensions paramétriques permettant de configurer le voussoir sous toutes ses formes.
2 – Le fichier tableur :
Il s’agit d’un tableur contenant les caractéristiques de chaque points de tous les voussoirs, se situant sur :
- l’extrémité gauche,
- la ligne centrale,
- l’extrémité droite,
Ces points ont été extraits à l’aide du logiciel Autodesk Civil 3D où le pont était modélisé. Ensuite les données ont été organisées comme montré par l’image ci-dessous :
3 – Le script Dynamo :
Andrzej à créé des nœuds personnalisés afin de simplifier le visuel du script final Dynamo que vous trouvez ci-dessous :
Après avoir glissé/ déposé les nœuds personnalisés dans l’interface Dynamo, vous trouvez dans la bibliothèque de Dynamo un répertoire appelé “Bridge” composé de sept nœuds:
3.1 Import des points :
Utilisez le premier nœud appelé “01.Aligment from Excel”, puis associez à celui-ci deux nœuds :
- “File Path”: en indiquant le chemin où se trouve le fichier Excel de données,
- un code block (en double cliquant dans l’interface Dynamo): avec trois “string” désignant respectivement les trois onglets du fichier Excel :
– “Left” : gauche,
– “Crown” :central,
– “Right” : droit.
Résultat :
3.2 Création des repères locaux :
Utilisez le nœud appelé “02.Local Coordinate System”, puis associez lui le nœud précédent comme montré ci-dessous :
Résultat : des repères locaux apparaissent sur chacun des nœuds centraux.
3.3 Pente du profil en travers :
Utilisez le nœud appelé “04.Crossfall Angle Calculation”, puis associez lui le nœud précédent comme montré ci-dessous :
3.4 Génération du pont :
Utilisez le nœud appelé “05.Bridge Body”, puis ajoutez les nœuds suivants :
- le nœud “Family Types”, sélectionnez la famille “Bridge Adaptive 2 points type A” (qui doit être chargée dans votre projet principal) puis l’associer à l’entrée ”Bridge Family”,
- connectez les nœuds “02.Local Coordinate System” et “04.Crossfall Angle Calculation” comme montré ci-dessous :
- pour l’entrée “Width”, nous allons utiliser le nœud “Distance To” pour connaître les différentes largeurs des voussoirs :
- Pour les entrées “Bottom Width”, “Bottom Angle”, “Height”,”Wings”, nous allons utiliser le nœud personnalisé “Constant Value” qui permet de générer une suite de chiffres dont le nombre total est égal au nombre de profils. Comme vous le montre l’exemple ci-dessous, voici la génération du chiffre “4” autant de fois que de profils (nombre donné par l’entrée “Family Placement Axis”).
En conséquence, nous allons utiliser quatre fois cette procédure pour :
- “Bottom Width” avec la valeur “4”,
- « Bottom Angle” avec la valeur “60”,
- “Height” avec la valeur “3”,
- ”Wings” avec la valeur “1”,
Soit les connexions suivantes :
3.5 Résultat du pont généré dans l’interface Revit :
Une fois le script exécuté, vous devez obtenir le pont dans l’interface Revit (attention pas de panique, la génération peut prendre quelques secondes comme quelques minutes cela dépend de la puissance de votre ordinateur).
4. Génération des dimensions variables suivant des lois:
Concernant le pont qui vient d’être généré, toutes les variables sont constantes d’un profil à l’autre. Dans la réalité, ces dimensions peuvent varier suivant des lois. Ici, nous allons utiliser le nœud personnalisé “ Remap Segments For Sinusoid” qui permet de générer un liste d’angle comprise entre 0 et 180° respectant les coordonnées de chaque point le long de l’axe longitudinal.
Ensuite, nous allons créer un code block en utilisant la fonction mathématique « Sinus » pour les entrées respectives :
- pour “Bottom Widht” ==> 5+(2*Math.Sin(x));
- pour “Bottom angle” ==> 80-(20*Math.Sin(x));
- pour “Heigth” ==> 3-(1.2*Math.Sin(x));
- pour “Wings”==> 1.5-(0.9*Math.Sin(x));
Résultat:
Comme vous pouvez le remarquer, les dimensions sont variables suivant les fonctions mathématiques définies.
Nota : vous pouvez-vous amuser à modifier les fonctions.
5 – Conclusion :
Nous avons pu générer un pont dans Revit à l’aide de Dynamo. Celui-ci s’appuyant sur deux données :
- une famille paramétrique à composants adaptatifs,
- un fichier tableur regroupant des coordonnées X,Y et Z (axe longitudinal, et axes gauche / droit longitudinaux),
On peut comprendre que ce script pourra être utilisé pour tous les ouvrages linéaires comme par exemple les tunnels.
6- La vidéo :
Pour ceux qui ne voulaient pas lire, voici la vidéo où je décris les différentes étapes :
7- Les données :
Andrzej a gentiment proposé de partager ses données (Famille, fichier de coordonnées et nœuds utilisateurs) afin que la communauté Village BIM puisse les modifier et améliorer leurs workflows. Il serait sympathique de lui laisser des commentaires de ce billet que je lui ferai parvenir..
Encore un grand merci à Andrzej pour son investissement et pour le partage !
Dernière minute : depuis la création de ce billet, Andrzej à publié son package « Dynabridge » pour Autodesk Revit 2018 et a réalisé une vidéo :
.