Exemple Dynamo : placer une réservation aux passages de gaines

Olivier Bayle Olivier Bayle 09/03/2016

2 min de lecture

image

 

Bien souvent, lorsqu’on place des gaines, chemins de câbles, canalisations, il faut créer une réservation afin de faciliter leurs passages au travers de voiles.

Je vous propose de vous présenter mon exemple Dynamo qui essaye d’automatiser le placement de ces réservations.

Voici les différentes phases :

– sélections des différent éléments (gaines, murs…),

– les transformer en volumes Dynamo,

– trouver l’ (ou les) intersection entre éléments,

– placer la réservation.

Important : j’ai utilisé la version béta de Dynamo (1.0.0123).

 

1- Sélections des différent éléments (gaines, murs…) :

Afin de pouvoir sélectionner toutes les gaines et les murs, je vais utiliser le nœud “All Elements of Type” et respectivement avec le nœud “Element Types” utiliser :

– “Wall”,

– “Duct”,

image

 

2- Transformer les éléments en volumes Dynamo :

Le nœud “Element.Solids” va nous permettre de transformer les éléments sélectionnés en volume Dynamo.

 

image

 

Nota : une fois connectés, vous devez apercevoir les éléments dans l’interface Dynamo.

 

3- Trouver l’ (ou les) intersection entre les éléments  :

Connecter le nœud “Geometry.IntersectAll” aux différents solides. Attention, les murs doivent être connectés à l’entrée “geometry” et les gaines à l’entrée “entity”.

De plus, si nous voulons connaitre toutes les intersections entre par exemple plusieurs gaines qui traverseraient un seul mur, nous allons utiliser la combinaison “Produit vectoriel”.

Effectuer, un clic droit sur le nœud “Geometry.IntersectAll”, choisir la commande “Combinaison”.

 

image

 

Volume intersection trouvé :

 

image

Explication des combinaisons :

image

 

4- Placer la réservation :

Le point d’insertion de la famille réservation que j’ai créée se situe au centre de celle-ci.

En conséquence, nous devons trouver le centre de gravité du volume intersecté en utilisant le nœud “Solid.Centroid” :

 

image

 

Enfin, il ne reste plus qu’à placer la famille réservation au centre de gravité du volume intersecté.

Pour cette opération, nous allons utiliser le nœud “FamilyInstance.ByPoint” en indiquant la famille à placer à l’aide du nœud  “Family Types”.

 

image

 

Nota : la famille que j’ai créée s’appelle “OuvertureTremie1”.

Résultat :

image

 

Afin de réaliser la réservation, il faudra stopper Dynamo et utiliser la fonction “Couper”. Je sais que ce n’est pas le top mais c’est le seul moyen que j’ai trouvé. (Famille générique de mur … ne fonctionnait pas). Si vous trouvez une optimisation à mon script…. je suis preneur.

 

image

 

 

Téléchargement :

    – Fichier Revit

    – Script Dynamo

Abonnement e-mail