Je dois vous l’avouer, cet exemple n’est pas de moi, je l’ai récupéré de l'évènement Autodesk University . C’est un exemple proposé par Marcello Sgambelluri sur l'utilisation d'une “toposurface” de Revit.
Voici l’exemple : Dans Revit, il est très difficile de placer des éléments qui suivent une surface topographique comme par exemple une clôture. D’où l’utilisation de Dynamo pour effectuer cette tâche.
Voici les différentes phases que nous allons réaliser dans Dynamo:
– Import dans Dynamo de la toposurface Revit,
– Sélection de la limite de propriété et extrusion de celle-ci,
– Réaliser l’intersection entre les deux,
– Créer des points le long de la ligne d’intersection,
– Placer la famille "clôture" sur les points de l’intersection,
1- Import dans Dynamo de la toposurface Revit :
– Ouvrir le fichier Revit joint à l’exemple (fin de l’article),
– Ouvrir une session Dynamo,
- Télécharger le package “spring nodes” qui nous permet de transformer la “toposurface” Revit en surface Dynamo.
– Nous allons placer un nœud “Select Model Element” et sélectionner la “toposurface” Revit,
– Pour importer la toposurface, utiliser le nœud “Topography.ToPolySurface” du package “spring nodes” et connecter-les ensemble (la topographie doit apparaître dans l’interface Dynamo),
2- Sélection de la limite de propriété et extrusion :
Dans le fichier, une limite de propriété à été tracée, nous allons la sectionner et l’extruder pour en faire une surface.
– Utiliser le nœud “Element Types” et indiquer le paramètre”Propertyline” pour sélectionner le type,
– Choisir le nœud “All Elements of Type” pour sélectionner toutes les lignes de propriété du fichier Revit,
– Le nœud “Element.Curves” permet de transformer les lignes de propriété Revit en ligne Dynamo,
– Pour extruder, nous allons utiliser le nœud “Curve.Extrude (direction and distance)” avec une distance négative (par exemple – 5m),
Nota : coup de chance la direction est dans le sens Z (sinon, il aurai fallu ajouter un vecteur 0,0,1).
3- Réaliser l’intersection entre les deux:
Nous avons déjà utilisé ce nœud dans des exercices précédents, il s’agit du nœud “Geometry.Intersect”. Correctement connecté, vous trouvez ci-dessous l’intersection entre les deux surfaces.
4- Créer des points le long de la ligne d’intersection :
Nous allons aplanir la liste des courbes d’intersection car celle-ci a généré des sous-listes. Nous allons utiliser le nœud “Flatten”.
– Le nœud “PolyCurve.ByJoinedCurves” permet de transformer les lignes d’intersection en une seule ligne,
– Ensuite, nous allons trouver la longueur du périmètre de la ligne en utilisant le nœud “Curve.Length”,
– Nous allons créer une série de nombres en utilisant un “code block” (en double cliquant sur l’interface “Dynamo”) avec ce script “0..nb..Esp;” (nb = variable égale à la longueur du périmètre et Esp = variable espacement entre piquets),
– Créer un “Integer Slider” pour faire varier la valeur d’espacement des piquets,
– Enfin pour créer des points le long de la ligne, nous allons utiliser le nœud “Curve.PointAtDistance”.
5- Placer la famille clôture sur des points de l’intersection,
Nous allons utiliser le nœud “FamilyInstance.ByPoint” pour placer les familles de piquets de clôture associées au nœud “Family Types”.
Résultat final dans Revit :
Nota vous pouvez vous amuser à modifier l’espacement entre piquets avec le slider.
Si vous voulez réaliser l'exercice avec mes données, les voici :
Et encore merci Marcello !