Exemple Dynamo : Utiliser des données de Open Street Map

3 min de lecture

image

image

 

J’ai découvert le pakcage Elk, qui permet de récupérer des données d’Open Street Map (OSM) et à partir d’une de ses vidéos (ici), j’ai eu l’idée vous proposer ce script Dynamo for Revit.

But du script : Après avoir récupérer des données d’Open Street Map,  transformation des contours des bâtiments en volume puis affecter à chacun des volumes une couleur.

1- Récupération des données sur OSM :

Même si la vidéo de ELK explique la procédure, voici quelques unes des différentes étapes :

image

 

2- Import des données OSM et extraction dans Dynamo :

Avant de commencer, je vous conseille d’utiliser une version de Revit en langue Anglaise (voir ici la méthode). Cela est fortement recommandé lorsqu’on utilise un package.

Tout d’abord, il vous faudra télécharger et installer le package de Elk sur votre Dynamo (Menu “Packages/ rechercher un package”).

Je vais utiliser les nœuds “OSM.OSMData” et “ OSM.Location” dans la bibliothèque Elk. Le nœud “File Path” pointe sur le fichier téléchargé de OSM.

image

 

Enfin, je vais créer deux nœuds “String” :

image

 

Nota : le nœud “OSM.Features” vous servira pour connaître tous les objets contenus dans le fichier OSM,

 

3- Création des contours des batiments :

Le nœud “Polygon.ByPoints” connecté à la sortie “Points”  permet de créer les lignes de contours des bâtiments.

image

image

 

4- Extraction des contours en volumes de différentes hauteurs :

Le nœud “Curve.ExtrudeAsSolid” permet à partir d’un contour de créer un volume. Les entrées de ce nœud sont :

Les informations fournies par OSM ne contiennent pas les hauteurs des bâtiments, donc je vais générer aléatoirement des hauteurs en utilisant un nœud du package LunchBox appelé “LunchBox Random Numbers”:

image

 

5- Création des volumes dans l’interface Revit :

Je vais utiliser le nœud “DirectShape.ByGeometry” qui permet de créer des volumes dans l’interface Revit sur la base de la géométrie Dynamo. J’utilise la catégorie “Mass” mais une autre catégorie peut être utilisée. J’affecte un matériau afin que les volumes crées ne soient pas translucides (ici le matériau “Défaut”).

image

 

6- Affectation de couleurs :

Je vais utiliser le nœud “Element.OverrideColorInView” qui a besoin de :

– “Colour Range” : génère une couleur en fonction d’un intervalle,

– “Math.RemapRange” : créer une liste de chiffres compris entre un minimum, un maximum et une liste* de nombre de valeurs à générer.

*la liste est réalisée à partir d’un "codeblock" avec le script suivant : "1..Count(VolumeVillage)".

image

 

Attention au nombre de bâtiments que vous allez créer car le temps de génération de ceux-ci sera proportionnel au nombre demandé.

Nota : Pour diminuer le temps de génération, vous pouvez supprimer la partie affectation de couleur.

Fichier Dynamo for Revit

Exemple de fichier OSM

Abonnement e-mail