{"id":720,"date":"2017-03-02T10:00:00","date_gmt":"2017-03-02T08:00:00","guid":{"rendered":"https:\/\/blogs.autodesk.com\/villagebim\/2017\/03\/exemple-dynamo-utiliser-des-donnees-de-open-street-map.html"},"modified":"2017-03-02T10:00:00","modified_gmt":"2017-03-02T08:00:00","slug":"exemple-dynamo-utiliser-des-donnees-de-open-street-map","status":"publish","type":"post","link":"https:\/\/blogs.autodesk.com\/villagebim\/2017\/03\/exemple-dynamo-utiliser-des-donnees-de-open-street-map.html","title":{"rendered":"Exemple Dynamo : Utiliser des donn\u00e9es de Open Street Map"},"content":{"rendered":"<p><a href=\"http:\/\/villagebim.typepad.com\/.a\/6a015391e15a28970b01bb0978a17a970d-pi\"><img loading=\"lazy\" decoding=\"async\" alt=\"image\" border=\"0\" height=\"252\" src=\"https:\/\/villagebim.typepad.com\/.a\/6a015391e15a28970b01b8d25fcda7970c-pi\" style=\"background-image: none;padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px;margin-left: auto;margin-right: auto\" title=\"image\" width=\"454\" \/><\/a><\/p>\n<p><a href=\"http:\/\/villagebim.typepad.com\/.a\/6a015391e15a28970b01b8d25fcdaf970c-pi\"><img loading=\"lazy\" decoding=\"async\" alt=\"image\" border=\"0\" height=\"250\" src=\"https:\/\/villagebim.typepad.com\/.a\/6a015391e15a28970b01bb0978a17e970d-pi\" style=\"background-image: none;padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px;margin-left: auto;margin-right: auto\" title=\"image\" width=\"454\" \/><\/a><\/p>\n<p>&#160;<\/p>\n<p>J\u2019ai d\u00e9couvert le pakcage <a href=\"http:\/\/www.hksinc.com\/hksline\/2015\/10\/26\/elk-mapping-plugin\/\">Elk<\/a>, qui permet de r\u00e9cup\u00e9rer des donn\u00e9es d\u2019Open Street Map (OSM) et \u00e0 partir d\u2019une de ses vid\u00e9os (<a href=\"https:\/\/vimeo.com\/groups\/334711\/videos\/143623515\">ici<\/a>), j\u2019ai eu l\u2019id\u00e9e vous proposer ce script Dynamo for Revit.<\/p>\n<p><strong><u>But du script :<\/u><\/strong> Apr\u00e8s avoir r\u00e9cup\u00e9rer des donn\u00e9es d\u2019Open Street Map, &#160;transformation des contours des b\u00e2timents en volume puis affecter \u00e0 chacun des volumes une couleur.<\/p>\n<p><strong><u>1- R\u00e9cup\u00e9ration des donn\u00e9es sur OSM :<\/u><\/strong><\/p>\n<p>M\u00eame si la vid\u00e9o de ELK explique la proc\u00e9dure, voici quelques unes des diff\u00e9rentes \u00e9tapes :<\/p>\n<ul>\n<li>rendez-vous sur le site <a href=\"http:\/\/www.openstreetmap.org\/\">Open Street Map<\/a>,<\/li>\n<li>apr\u00e8s avoir tap\u00e9 l\u2019adresse du lieux que vous cherchez, cliquez sur le bouton \u201c<em>Exporter<\/em>\u201d,<\/li>\n<li>cliquez sur la ligne \u201c<em>S\u00e9lectionner manuellement une autre zone<\/em>\u201d,<\/li>\n<li>d\u00e9finissez l\u2019aire d\u2019export,<\/li>\n<li>enfin cliquez sur bouton bleu \u201c<em>Exporter<\/em>\u201d,<\/li>\n<\/ul>\n<p><a href=\"http:\/\/villagebim.typepad.com\/.a\/6a015391e15a28970b01b8d25fcdb7970c-pi\"><img loading=\"lazy\" decoding=\"async\" alt=\"image\" border=\"0\" height=\"244\" src=\"https:\/\/villagebim.typepad.com\/.a\/6a015391e15a28970b01b8d25fcdbb970c-pi\" style=\"background-image: none;padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px;margin-left: auto;margin-right: auto\" title=\"image\" width=\"454\" \/><\/a><\/p>\n<p>&#160;<\/p>\n<p><strong><u>2- Import des donn\u00e9es OSM et extraction dans Dynamo :<\/u><\/strong><\/p>\n<p>Avant de commencer, je vous conseille d\u2019utiliser une version de Revit en langue Anglaise (voir <a href=\"http:\/\/villagebim.typepad.com\/villagebim\/2015\/07\/revit-2016-changer-de-langue.html\">ici<\/a> la m\u00e9thode). Cela est fortement recommand\u00e9 lorsqu\u2019on utilise un package.<\/p>\n<p>Tout d\u2019abord, il vous faudra t\u00e9l\u00e9charger et installer le package de Elk sur votre Dynamo (Menu \u201c<em>Packages\/ rechercher un package<\/em>\u201d).<\/p>\n<p>Je vais&#160;utiliser les n\u0153uds \u201c<em>OSM.OSMData<\/em>\u201d et \u201c <em>OSM.Location<\/em>\u201d dans la biblioth\u00e8que Elk. Le n\u0153ud \u201cFile Path\u201d pointe sur le fichier t\u00e9l\u00e9charg\u00e9 de OSM.<\/p>\n<p><a href=\"http:\/\/villagebim.typepad.com\/.a\/6a015391e15a28970b01b8d25fcdbf970c-pi\"><img loading=\"lazy\" decoding=\"async\" alt=\"image\" border=\"0\" height=\"707\" src=\"https:\/\/villagebim.typepad.com\/.a\/6a015391e15a28970b01b8d25fcdc3970c-pi\" style=\"background-image: none;padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px;margin-left: auto;margin-right: auto\" title=\"image\" width=\"354\" \/><\/a><\/p>\n<p>&#160;<\/p>\n<p>Enfin, je vais&#160;cr\u00e9er deux n\u0153uds \u201c<em>String<\/em>\u201d :<\/p>\n<ul>\n<li>\u201cbuilding\u201d: r\u00e9cup\u00e9ration des objects qualifi\u00e9s comme \u201cb\u00e2timent\u201d,<\/li>\n<li>\u201c*\u201d : r\u00e9cup\u00e9ration de tous les sous types.<\/li>\n<\/ul>\n<p><a href=\"http:\/\/villagebim.typepad.com\/.a\/6a015391e15a28970b01b8d25fcdc7970c-pi\"><img loading=\"lazy\" decoding=\"async\" alt=\"image\" border=\"0\" height=\"285\" src=\"https:\/\/villagebim.typepad.com\/.a\/6a015391e15a28970b01b8d25fcdcc970c-pi\" style=\"background-image: none;padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px;margin-left: auto;margin-right: auto\" title=\"image\" width=\"454\" \/><\/a><\/p>\n<p>&#160;<\/p>\n<p>Nota : le n\u0153ud \u201c<em>OSM.Features<\/em>\u201d vous servira pour conna\u00eetre tous les objets contenus dans le fichier OSM,<\/p>\n<p>&#160;<\/p>\n<p><strong><u>3- Cr\u00e9ation des contours des batiments :<\/u><\/strong><\/p>\n<p>Le n\u0153ud \u201c<em>Polygon.ByPoints<\/em>\u201d connect\u00e9 \u00e0 la sortie \u201c<em>Points<\/em>\u201d&#160; permet de cr\u00e9er les lignes de contours des b\u00e2timents.<\/p>\n<p><a href=\"http:\/\/villagebim.typepad.com\/.a\/6a015391e15a28970b01b8d25fcdd0970c-pi\"><img loading=\"lazy\" decoding=\"async\" alt=\"image\" border=\"0\" height=\"148\" src=\"https:\/\/villagebim.typepad.com\/.a\/6a015391e15a28970b01bb0978a190970d-pi\" style=\"background-image: none;padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px;margin-left: auto;margin-right: auto\" title=\"image\" width=\"354\" \/><\/a><\/p>\n<p><a href=\"http:\/\/villagebim.typepad.com\/.a\/6a015391e15a28970b01b7c8d57bcd970b-pi\"><img loading=\"lazy\" decoding=\"async\" alt=\"image\" border=\"0\" height=\"252\" src=\"https:\/\/villagebim.typepad.com\/.a\/6a015391e15a28970b01b7c8d57bd2970b-pi\" style=\"background-image: none;padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px;margin-left: auto;margin-right: auto\" title=\"image\" width=\"454\" \/><\/a><\/p>\n<p>&#160;<\/p>\n<p><strong><u>4- Extraction des contours en volumes de diff\u00e9rentes hauteurs :<\/u><\/strong><\/p>\n<p>Le n\u0153ud \u201c<em>Curve.ExtrudeAsSolid<\/em>\u201d permet \u00e0 partir d\u2019un contour de cr\u00e9er un volume. Les entr\u00e9es de ce n\u0153ud sont :<\/p>\n<ul>\n<li>\u201c<em>curve<\/em>\u201d : r\u00e9cup\u00e8re les contours des b\u00e2timents (le n\u0153ud \u201c<em>Flatten<\/em>\u201d renvoie une liste unique des listes la pr\u00e9c\u00e9dentes),<\/li>\n<li>\u201c<em>direction<\/em>\u201d : sens de l\u2019extrusion. Le n\u0153ud \u201c<em>Vector.ZAxis<\/em>\u201d indique l&#039;extrusion vers l\u2019axe Z,<\/li>\n<li>\u201c<em>distance<\/em>\u201d : hauteur d\u2019extrusion.<\/li>\n<\/ul>\n<p>Les informations fournies par OSM ne contiennent pas les hauteurs des b\u00e2timents, donc je vais&#160;g\u00e9n\u00e9rer al\u00e9atoirement des hauteurs en utilisant un n\u0153ud du package LunchBox appel\u00e9 \u201c<em>LunchBox Random Numbers<\/em>\u201d:<\/p>\n<ul>\n<li>\u201c<em>Min<\/em>\u201d : valeur minimum<\/li>\n<li>\u201c<em>Max<\/em>\u201d : valeur maximum<\/li>\n<li>\u201c<em>Amount<\/em>\u201d : la quantit\u00e9 \u00e0 g\u00e9n\u00e9rer.<\/li>\n<li>\u201c<em>Seed<\/em>\u201d : nombre de g\u00e9n\u00e9ration (permet de changer la distribution al\u00e9atoire)<\/li>\n<\/ul>\n<p><a href=\"http:\/\/villagebim.typepad.com\/.a\/6a015391e15a28970b01b7c8d57bd8970b-pi\"><img loading=\"lazy\" decoding=\"async\" alt=\"image\" border=\"0\" height=\"214\" src=\"https:\/\/villagebim.typepad.com\/.a\/6a015391e15a28970b01b7c8d57bdc970b-pi\" style=\"background-image: none;padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px;margin-left: auto;margin-right: auto\" title=\"image\" width=\"454\" \/><\/a><\/p>\n<p>&#160;<\/p>\n<p><strong><u>5- Cr\u00e9ation des volumes dans l\u2019interface Revit :<\/u><\/strong><\/p>\n<p>Je vais utiliser le n\u0153ud \u201c<em>DirectShape.ByGeometry<\/em>\u201d qui permet de cr\u00e9er des volumes dans l\u2019interface Revit sur la base de la g\u00e9om\u00e9trie Dynamo. J\u2019utilise la cat\u00e9gorie \u201c<em>Mass<\/em>\u201d mais une autre cat\u00e9gorie peut \u00eatre utilis\u00e9e. J\u2019affecte un mat\u00e9riau afin que les volumes cr\u00e9es ne soient pas translucides (ici le mat\u00e9riau \u201c<em>D\u00e9faut<\/em>\u201d).<\/p>\n<p><a href=\"http:\/\/villagebim.typepad.com\/.a\/6a015391e15a28970b01b8d25fcdd5970c-pi\"><img loading=\"lazy\" decoding=\"async\" alt=\"image\" border=\"0\" height=\"148\" src=\"https:\/\/villagebim.typepad.com\/.a\/6a015391e15a28970b01b8d25fcdd9970c-pi\" style=\"background-image: none;padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px;margin-left: auto;margin-right: auto\" title=\"image\" width=\"454\" \/><\/a><\/p>\n<p>&#160;<\/p>\n<p><strong><u>6- Affectation de couleurs :<\/u><\/strong><\/p>\n<p>Je vais utiliser le n\u0153ud \u201c<em>Element.OverrideColorInView<\/em>\u201d qui a besoin de :<\/p>\n<ul>\n<li>la g\u00e9om\u00e9trie : donn\u00e9e par le noeud \u201c<em>DirectShape.ByGeometry<\/em>\u201d,<\/li>\n<li>la couleur : d\u00e9finit ci-dessous:<\/li>\n<\/ul>\n<blockquote>\n<p>&#8211; \u201c<em>Colour Range<\/em>\u201d : g\u00e9n\u00e8re une couleur en fonction d\u2019un intervalle,<\/p>\n<p>&#8211; \u201c<em>Math.RemapRange<\/em>\u201d : cr\u00e9er une liste de chiffres compris entre un minimum, un maximum et une liste* de nombre de valeurs \u00e0 g\u00e9n\u00e9rer.<\/p>\n<\/blockquote>\n<p>*la liste est r\u00e9alis\u00e9e \u00e0 partir d\u2019un &quot;codeblock&quot; avec le script suivant : &quot;<em>1..Count(VolumeVillage)<\/em>&quot;.<\/p>\n<p><a href=\"http:\/\/villagebim.typepad.com\/.a\/6a015391e15a28970b01b8d25fcddf970c-pi\"><img loading=\"lazy\" decoding=\"async\" alt=\"image\" border=\"0\" height=\"195\" src=\"https:\/\/villagebim.typepad.com\/.a\/6a015391e15a28970b01b7c8d57be5970b-pi\" style=\"background-image: none;padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px;margin-left: auto;margin-right: auto\" title=\"image\" width=\"454\" \/><\/a><\/p>\n<p>&#160;<\/p>\n<p>Attention au nombre de b\u00e2timents que vous allez cr\u00e9er car le temps de g\u00e9n\u00e9ration de ceux-ci sera proportionnel au nombre demand\u00e9.<\/p>\n<p>Nota : Pour diminuer le temps de g\u00e9n\u00e9ration, vous pouvez supprimer la partie affectation de couleur.<\/p>\n<p><span class=\"asset  asset-generic at-xid-6a015391e15a28970b01bb0978a626970d img-responsive\"><a href=\"http:\/\/villagebim.typepad.com\/files\/villageosm-1.dyn\">Fichier Dynamo for Revit<\/a><\/span><\/p>\n<p><span class=\"asset  asset-generic at-xid-6a015391e15a28970b01bb0978a626970d img-responsive\"><span class=\"asset  asset-generic at-xid-6a015391e15a28970b01b7c8d58053970b img-responsive\"><a href=\"http:\/\/villagebim.typepad.com\/files\/smlr1.osm\">Exemple de fichier OSM<\/a><\/span><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#160; J\u2019ai d\u00e9couvert le pakcage Elk, qui permet de r\u00e9cup\u00e9rer des donn\u00e9es d\u2019Open Street Map (OSM) et \u00e0 partir d\u2019une de ses vid\u00e9os (ici), j\u2019ai eu l\u2019id\u00e9e vous proposer ce script Dynamo for Revit. But du script : Apr\u00e8s avoir r\u00e9cup\u00e9rer des donn\u00e9es d\u2019Open Street Map, &#160;transformation des contours des b\u00e2timents en volume puis affecter [&hellip;]<\/p>\n","protected":false},"author":13092,"featured_media":2472,"menu_order":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[15,26,28,17,57,6,19],"tags":[20,865,1026,1027],"class_list":["post-720","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-autodesk-revit","category-conception","category-gestion-de-donnees","category-nouveautes","category-programmation-visuelle","category-trucs-et-astuces","category-visualisation","tag-autodesk","tag-exemple-dynamo","tag-open-street-map","tag-osm","dhig-theme--light"],"acf":[],"_links":{"self":[{"href":"https:\/\/blogs.autodesk.com\/villagebim\/wp-json\/wp\/v2\/posts\/720","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.autodesk.com\/villagebim\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.autodesk.com\/villagebim\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.autodesk.com\/villagebim\/wp-json\/wp\/v2\/users\/13092"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.autodesk.com\/villagebim\/wp-json\/wp\/v2\/comments?post=720"}],"version-history":[{"count":0,"href":"https:\/\/blogs.autodesk.com\/villagebim\/wp-json\/wp\/v2\/posts\/720\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.autodesk.com\/villagebim\/wp-json\/wp\/v2\/media\/2472"}],"wp:attachment":[{"href":"https:\/\/blogs.autodesk.com\/villagebim\/wp-json\/wp\/v2\/media?parent=720"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.autodesk.com\/villagebim\/wp-json\/wp\/v2\/categories?post=720"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.autodesk.com\/villagebim\/wp-json\/wp\/v2\/tags?post=720"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}