algorithmic modeling for Rhino



This is the first release of an add-on which enables the import of GIS data from various sources into the Rhino/Grasshopper environment, located, scaled and cropped based on an Earth Anchor Point and a clipping polygon.  Sources of GIS data include Shapefiles, USGS IMG/HGT Elevation files and ArcGIS REST Services over the web.

The add-on includes eight components in two categories:


  • ESRI REST Service Geocode. Get a Decimal Degree coordinate from an address or Point-of-Interest with the Geocode service provided by ESRI.  
  • Get REST Service Layers. Discover data layers  from various data sources on the web. If the layers are a vector type, they return data similar to a shapefile, with geometry and associated data fields.  To be used with the Get REST Vector or Get REST Raster component depending on the data type.
  • Get REST Raster. Grabs JPGs of imagery from the specified web source.  Once downloaded to a folder the image can be located and scaled to match the boundary in real world units (meters) with the use of the image frame.
  • Get REST Vector.  Queries the web source for geometry and associated data fields.  For instance demographic information from the US Census can be referenced.

GIS Tools

  • Decimal Degrees to XY.  Convert Decimal Degrees to XY coorindates based on the EarthAnchorPoint.
  • Import SHP.  Imports Shapefiles using OGR Libraries. Output is in the form of points (for now) which can then be connected to form polylines.  For Shapefiles with Multipolygons (ie building footprints with courtyards), the component reads mulitple branches of points per Feature.  To get the footprint, you will need to draw a polyline for each branch, shift the branches and use the Boundary Surface component.
  • Import Topo.  Imports IMG and (STRM) HGT files using GDAL Libraries.  Output is in the form of a mesh.
  • Set EarthAnchorPoint.  Runs a macro to set the Earth Anchor Point in Rhino.  This is important to minimize distortion translating from the curved surface of the Earth to Euclidean coordinates.

Special thanks go to the vibrant GH community, the masterful guidance of Andrew Heumann and endless patience of George Waters.

Members: 107
Latest Activity: Oct 23, 2019

Discussion Forum

Publishing the source code?

Hi Brian,I am amazed by how streamlined is the use the Heron plugin for working with ArcGIS/USCensus data.I am interested in achieving similar ease of access to the Dutch PDOK database or any other…Continue

Started by Ondrej Vesely Oct 23, 2019.

Heron Import SHP Error 5 Replies

Thanks so much for these tools! I'm getting an error message using the Import SHP component that has me stumped. Any ideas what this means?1. Solution exception:The type initializer for…Continue

Started by seth denizen. Last reply by alberludo Sep 6, 2019.

output Elevation and sections with dimensions

Hi, please i want to output elevation and sections with dimensions by grasshopper in this 3D wall, can u help me.thanks…Continue

Started by tariq hilmy Dec 3, 2018.


When I plug the US Census Vectors into Get REST Service Layers, I get the error "The Request was Aborted: Could Not Create SSL/TLS Secure Channel."  Any idea on how to fix this?  Thanks!…Continue

Started by Jun. Last reply by Brian Washburn Nov 22, 2018.

Comment Wall


You need to be a member of Heron to add comments!

Comment by Brian Washburn on January 6, 2016 at 8:01pm

Also, can you post more information on the problem you're experiencing with reprojecting?  The GDAL libraries Heron uses, should be able to automatically handle reprojecting from any CRSs to EPSG 3857.

Comment by Brian Washburn on January 6, 2016 at 7:44pm

You make a great point Evgeny!  Heron is based on WGS84 Pseudo Mercator (or EPSG 3857) as both an attempt to use a conformal projection within the framework of Rhino's cartesian coordinate system and for ease of communication with online mapping resources.  Using a conformal projection allows square building footprints to appear square in Rhino.  There are, however, issues with distortion at larger scales as has been documented.  Heron is no replacement for proper GIS software.  It was meant for integrating GIS data into a Rhino model at building/city scale.  At some point it it may make sense to allow the user to specific which CRS they want to use, but that will be pretty far down the road.

Comment by Evgeny Shirinyan on January 4, 2016 at 4:47am

Brian, thank you for the plugin

I have a question related to CRS. Heron uses WGS84 Pseudo Mercator, right? From my point of view this CRS is bad for CAD export because it distorts distances and Rhino can't recalculate distances as it possible in Google maps os QGIS. What is your take on it?

Also I didn't manage to import reprojected shp file (for example in as WGS84 / UTM zone XX). 

Comment by Brian Washburn on November 10, 2015 at 2:54pm

Oh and here is the modified IMG file:


Comment by Brian Washburn on November 10, 2015 at 2:52pm

When I reprojected (or warped) your IMG file from the CRS you specified to WGS84 in QGIS, I get an output that seems usable (see attached).  I've attached the results as well.

Heron Output.JPG

QGIS Reprojection.JPG

Heron Canvas.png


Comment by Eric Galipo on November 10, 2015 at 1:39pm

Ahh. We are using 


as our coordinate system. I am wary of translating out of the existing coordinate system since I need all the other data to line up to this 

I've added the IMG file, if you want to try and replicate my problem.. 



Comment by Brian Washburn on November 10, 2015 at 1:17pm

Heron uses the projected coordinate system for WGS84 (EPSG 3857), but automatically translates data using other coordinate systems.  One reason I've seen for the scale being off is that an incorrect coordinate system is associated with the incoming data.  This can happen when manipulating and exporting data if the appropriate coordinate system is not set.  Try linking the DEM file directly to the ImportTopo component.  It can accept a few raster types other than IMG.

Comment by Eric Galipo on November 10, 2015 at 12:58pm

Thanks for the quick response! 

Yes, i just figured that out. I was assuming that it would be an attribute of the actual DEM/IMG file, but its just something I have to draw on my own. 

So the good news is that I can get the mesh into my model, but now the scale seems to be WAAAAYYYY off, but i cant seem to figure out how its being transformed since. Any guidance on what units Heron is assuming or why it might be scaling the data way up ? 


Comment by Brian Washburn on November 10, 2015 at 12:54pm

When you connect a file path to the "imgLocation" input, a bounding box of the data will show in your viewport.  The "boundary" input is asking for a curve(s) that describes your area of interest which must fall entirely within the bounding box of the data.

Comment by Eric Galipo on November 10, 2015 at 12:06pm

I am a bit of a noob with this, and have a question about the ImportTopo component. 

I have a georeferenced IMG file of my area, which covers about 3 square miles in NYC. I am able to connect it to the ImportToPo component, but I am unsure what the 'boundary' component is supposed to link to. 

I received an DEM file from another party which i am able to open in GIS and export directly to the IMG file. This part works well, and it seems that Heron is able to read it, but I just do not know what else i am supposed to have to plug into the Boundary input. 

I tried watching the instruction videos, but they have no sound and the resolution is not high enough to really see what is going on on-screen. 

any guidance or documentation would be much appreciated. 



Members (107)






  • Add Photos
  • View All

© 2020   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service