Exemple Dynamo : Chemin d’évacuation incendie

2 min de lecture

image

 

Encore un très bon exemple Dynamo for Revit du blog Revit beyond BIM, “Fire Exit Risk Assessment with Revit and Dynamo”.

L’auteur, Dieter Vermeulen, nous propose d’afficher les chemins les plus courts reliant les portes intérieures de l’ (ou des) issue de secours et cela dans une vue en plan dans Revit.

Vous trouvez dans son article toutes les explications nécessaires à la compréhension du code.

J’ai repris donc cet exemple pour afficher en rouge les pièces qui jouxtent  la porte la plus éloignée de l’issue de secours.

image

Voici donc l’explication de mes ajouts :

1- Analyse des longueurs des chemins:

    Il faut d’abord trouver dans le script de Dieter, l’endroit où se cachent les chemins calculés.

En fait, ils se trouvent dans  le groupe appelé “Resolve jaggy path to smooth” et plus spécialement le nœud “NurbsCurve.ByControlPoints”.

image

 

Pour connaitre la longueur de chaque trajet, je vais relier le nœud précédent à un nœud appelé “Curve.Length

image

 

Pour déterminer le chemin qui correspond à la longueur maximale, j’utilise le nœud “List.MaximumItem”.

Le nœud “List.FirstIndexOf” me retournera le rang du chemin le plus long.

image

 

Enfin, pour connaitre le nom de la porte qui correspond au chemin le plus éloigné, je vais utiliser le nœud “List.FirstIndexOf”.

image

 

2- Détection des pièces communes à la porte la plus éloignée:

Nous allons sélectionner toutes les pièces puis nous allons les transformer en volume solide Dynamo (même opération pour la porte la plus éloignée).

Pour les pièces, j’utilise les nœuds suivants:

Pour la porte la plus éloignée :

image

 

Pour savoir si le solide “Porte” appartient à l'un des solides (pièces), je vais utiliser le nœud “Geometry.DoesIntersect”. Ce nœud retourne un booléen (Vrai ou Faux) indiquant la présence ou non de la porte pour chacune des pièces inspectées.

image

 

3- Affichage dans Revit des pièces concernées par la porte la plus éloignée :

Afin d’afficher les pièces concernées par la porte la plus éloignée, j’ai créé :

– une vue “Analysis” ,

image

 

– un paramètre projet “Occupant” pour les pièces,

image

 

-  une légende de couleur sur le paramètre “Occupant” constituée de deux variables :

image

 

Ensuite dans le script Dynamo, je vais utiliser un nœud :

– “If” lié à deux string “Yes” et “No” (si la porte est détectée dans pièce, le “if” retourne “Yes” sinon “No”.

– “Element.SetParameterByName” pour affecter les valeurs “Yes” ou “No” dans le paramètre projet “Occupant”.

image

 

4- Résultats:

image

 

En changeant de place l’issue de secours “Exit”:

image

 

Nota important : Utiliser un Revit en langue Anglaise car des packages sont utilisés (voir notre billet ici).

Voici la vidéo d'explication :

 

Voici les fichiers :  Téléchargement Dynamo Fire

Et encore merci Dieter pour cet exemple DYnamo For Revit !

Abonnement e-mail