GIS
Downloadable
QGIS → Rhino / Grasshopper
A Grasshopper definition that rebuilds QGIS site data as Rhino geometry.
The problem
Getting real site context — building footprints, roads, parcels, terrain — out of QGIS and into Rhino is a notorious pain: projection mismatches, lat/long in degrees, geometry that lands kilometres from the origin, and no clean importer.
What this does
A downloadable GHPython script + Grasshopper definition that reads a GeoJSON exported from QGIS, handles the projection/origin offset, and rebuilds it as Rhino curves and attribute-extruded building masses — so your site model is ready in minutes, not an afternoon of cleanup.
Downloads
What it does
You export your QGIS layer as GeoJSON (in a projected, metre-based CRS). The Grasshopper definition reads the file, parses each feature's geometry, recentres it near the Rhino origin, and builds:
- Polylines for roads, parcel boundaries, and contours (LineString / Polygon rings)
- Extruded building masses driven by a height attribute (e.g.
heightorlevels) - Points for trees, sensors, or labelled locations
Why it's useful
- Skips the projection / "geometry is 2 km from origin" nightmare.
- Attribute-driven extrusion — building heights come straight from the data.
- Plain GHPython using the standard library, so it's easy to read and modify.
How to use
- In QGIS, reproject your layer to a local metric CRS (e.g. SVY21 / UTM) and export as GeoJSON.
- Drop the
.ghdefinition into Grasshopper and point the file path at your GeoJSON. - Set the height attribute name and the origin offset; bake the result into Rhino.
Honest limits
- Very large datasets should be clipped to your site in QGIS first.
- Curved geometries are exported as dense polylines (GeoJSON has no arcs).
Built on
- Heron (GIS for Grasshopper)GPL-3.0
- @it / Elk (OSM → Grasshopper)see repo
- QGISGPL-2.0