Getting All Site Geometry Inside Dynamo With DynaMaps

Hey everyone! You may have heard already about DynaMaps. It’s been out for about a month now. Reception has been overwhelmingly positive, thanks to all those who gave it a shot and sent their valuable feedback. A presentation was published on the Dynamo Blog for the first release, but it’s evolving so fast it seems usefull to present some of the possible workflows. So here we go!

As explained in the Dynamo Blog Post, DynaMaps is a package containing a ViewExtension as well as a set of nodes :


The nodes were made to import site geometry inside Dynamo in the most straightforward way. They are sorted in three categories:

  • Live : Nodes that harness data from the selected area in the DynaMaps View Extension. They are the link between the view extension and the rest of your graph.
  • Revit : Nodes that use DynaMaps Data to create Revit Geometry in a very straightforward way. So far there is only RevitBuildings but more are on their way!
  • Utils : Those are made to ease some common operations on geometry. They all work from the DynaMaps Live nodes data.

Here’s a step by step demonstrations on  how to get all site geometry inside dynamo. In a future blogpost, we’ll document a workflow to create Revit site geometry using DynaMaps.


Step 1 : Selecting your site area

Open the DynaMaps view extension from the “View” tab of dynamo, enter your address (1) and press “Take Me There” (2). You can navigate the map just like in google maps, zoom in/zoom out and slide it. There’s even a satellite mode! 🙂

dynaGeom step 1

Note: if you have entered the latitude and longitude of your site, you may press “Take Me To Project Site Location”. That will automatically place the map on your project location point and all geometry will be brought in it’s correct location. The latitude and longitude need to be those of your project base point!

Step 2 : Pushing the data to dynamo

In this workflow, we’ll start by bringing the building footprints as surfaces. I order to do so, place the node on the canvass and press “Push To Dynamo” on the view extension. We recommand working in manual mode. If you didn’t get too crazy with the size of the area – which I kind of did here – it shouldn’t take too long for this to appear:

dynaGeom step 2

Step 3 : Getting the topography in Dynamo

Getting the topography in dynamo using DynaMaps is very direct. All you need to do is place a TopoAsPolySurface or TopoPoints (depending on what you wish to do) and hit “execute”. The data is from Nasa’s SRTM.

dynaGeom step 3

Step 4 : Creating the buildings 3D geometry

We will use another node from the DynaMaps Package to do so : “ProjectBuildingsOnTopo”. It will easilly create the 3D buildings and project them on the topography polysurface. The”CropToTopo” input is optional.  When it is set to true, it allows to crop the the buildings in order to have a clean square of site geometry. The height of the buildings if from open street map (when it has been made available). If a building doesn’t have height information, a random value between the minimum and maximimum building heights of the area will be assigned. I’ve had a suggestion to make it possible to enter a default value for all buildings with no height data (thank you Mark Ackerley 🙂 !). It will be implemented in the next release.

Note : the GeomPreview node is only used for visualization purposes. It is from the Data Shapes Package. Also, from that point you can close the DynaMaps view extension to free up some screen space as you only need to push the data once into dynamo.

dynaGeom step 4
3D buildings projected on the topography polysurface
dynaGeom step 4-2
Notice the clean cut of the buildings when “CropToTopo” is set to true

Step 5 : Getting the road geometry

The starting point is the “RoasAsPolycurves” node from the Live category. It offers a list of all road types in open street map. You can select those you’re interested in and hit execute!

dynaGeom step 5

Those polycurves can be used to obtain surfaces, that can then be projected on the topo polysurface. The width of the roads has to be entered manually as there is very little useful data about it.

dynaGeom step 5-2
Generating road surface from polycurves using “RoadsAsSurface”

Projecting roads on the topography polysurface using the “ProjectRoadsOnTopo” node returns the projected roads as well as a trimmed topo polysurface. Those can be used and visualized separately.

dynaGeom step 5-3

Step 6 : Trees!

Once again, the starting point will be one of the Live nodes : “TreePoints”. It will output the location of all the trees of the selected area as points. Those can then be projected onto the topo polysurface.

dynaGeom step 6
Trees as points
dynaGeom step 6-2
Projecting trees on the topo

And finally, just for the sake of having something aestetically pleasing, you can use the node “TreeByPoints” in order to have a little – very basic – tree geometry placed at each one of the projected points.

dynaGeom step 6-3

And that’s it! Here’s the general result :


Please feel free to comment on how you think this can be improved !


32 thoughts on “Getting All Site Geometry Inside Dynamo With DynaMaps

  1. Hey!
    How did you manage to get the map from DynaMaps to Dynamo? For me already the step number 2 with pushing the map to dynamo is not working and I’m not getting any site, just error which says: Warning: Internal error, please report: Dereferencing a non-pointer.

    Do you think you can help me out with this?

    Thanks a lot!


      1. I get the same error when running in Dynamo Sandbox (, but it works fine for me in Dynamo for Revit ( on Revit 2019.2.1). It happens when I use the BuildingsFootPrintPolygons or BuildingFoorPrintSurfaces nodes after using Push to Dynamo! feature in the View Extension. I’ve tried it for different locations and I get the same result.
        Very nice package!


    1. Hi Leolosid,
      Thanks for your comment! 🙂
      So far the topography always returns a 10×10 grid. This limitation is due to the fact that the data is not free, everytime someone makes a request, some credit is used. I will definitely implement a way to make it possible to increase resolution but I haven’t decided how yet. It will either be through a patreon , so community funded, or I’ll start some service that can be subscribed to.
      I’ll write a post as soon as it’s up and running!


  2. The Dynamaps doesnt grab the elevations in the Netherlands? Do I miss a package, or does this have something to do with us being below sealevel? Lat.long (52.700730, 5.268900)

    Revit 2019
    Dynamo 2.0.1
    Package D|S Data-shapes 2019.2.30
    Package D|S Dynamaps 2019.2.14


  3. This is so great!!!!Excellent work!
    Unfortunately im not able to project the roads on the toposurface. Im doing as said at step 5, but roads remains at the level 0. What could be the problem here?
    Thx a lot 🙂


  4. Hi,
    I have imported BuildingFootprintSurfaces and TopoPolySurace. When I try to feed them to the ProjectBuildingsOnTopo node, I get warning:
    Unable to compute thickened face : LOP_OFF_BAD_OFFSET — offset null or will make body too thin or inside out.
    Any ideas why that could happen?


    1. Hi Justyna,
      Thanks for reporting. Can you please share the location you’re working on? This is obviously an issue with one of the geometric operations. Having your location would allow me to figure out which one.


  5. Any update on the Roads as Surface node not working? Doesnt matter which size or location I try, I am constantly getting the “unable to compute thickened face” error.


  6. Great package! Thanks for the hardwork!
    I am having trouble with all the « project » nodes (to get roads or buildings onto the topo). I get the following error.

    « DynaMapsNodesFunctions.BuildingsOnTopo operation failed. Unable to compute thickened face : LOP_OFF_BAD_OFFSET — offset null or will make body too thin or inside out »

    Revit 2020
    Dynamo 2.1
    Package D|S Data-shapes 2019.2.30
    Package D|S Dynamaps 2019.2.14
    Location: Genarp, Sweden


  7. When I use the rads as surface function, I only get a surface within a small radius of the total area. Is there a way to fix this? I’ve tried several areas and am using the latest release of Dynamaps, though was also having the issue on older releases.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.