Tutorials · ALAR 4010 / 8010 · Fall 2026

Rhino Topography Model from Contour Lines

A step-by-step guide for turning contour lines into a three-dimensional terrain surface in Rhino, using native Rhino tools or a Grasshopper definition. This continues from the QGIS walkthrough, which ends by exporting contours to DXF or DWG.

← All tutorials


Quick reference


1. Check your contours first

The most common terrain failure is contours sitting at the wrong elevation. Before you build anything, confirm whether your lines already have a Z height.

  1. Import the DXF or DWG: File → Import, choose the `.dxf` or `.dwg`.
  2. Select a contour and check Properties (or run the What command). Read the point coordinates.
  1. If contours arrived as many short segments, select all curves (SelCrv) and run Join so each contour is a single closed polyline. Closed polylines build far more cleanly.

Assigning elevation to flat contours


2. Build the surface in Rhino

Three commands turn contours into a surface. Each surface type has different characteristics.

Patch

The most common starting point. Produces a smooth NURBS surface.

  1. Run Patch.
  2. Select all contours and press Enter.
  3. Set the options:
  1. Press Enter and inspect the result against the contours in a side viewport.

Loft

Builds a NURBS surface that passes exactly through the lines.

  1. Run Loft.
  2. Select the contours in elevation order, bottom to top. Do not skip around.
  3. Accept the default Normal style and confirm.
  4. If the surface twists, simplify the contours with Rebuild first, or switch to Patch or MeshPatch.

MeshPatch

Creates a triangulated mesh. This is the best choice for rendering, GIS, and most landscape work.

  1. Run MeshPatch.
  2. Select all contours and press Enter.
  3. Raise the density if close contours need more resolution. The result is already a mesh.

3. Check the surface

Before moving on, make sure the model is honest.

  1. Switch to Shaded mode and orbit. Look for spikes, holes, and flat spots between contours.
  2. Cut a section with Intersect or a clipping plane and compare it to the contours.
  3. If a Patch surface bulges between contours, raise its stiffness or rebuild with MeshPatch.
  4. Repair small holes or spikes by patching that region, or by trimming.

4. Build the surface in Grasshopper

Grasshopper is a good option when you have many contours, when elevations live in layer names, or when you want a clean triangulated mesh with no hand tuning.

  1. Type Grasshopper in Rhino to open it.
  2. Add a Curve parameter (Params → Geometry → Curve). Right-click it, choose Set Multiple Curves, and select the contours in Rhino.
  3. Extract points from the contours. Two options:
  1. Triangulate with Delaunay Mesh (Mesh → Triangulation). Connect the points.
  2. Optionally clean the result with Weld (Mesh → Util) at a small angle, and check the normals with Rhino's Flip or UnifyMeshNormals.
  3. Bake the final mesh (right-click the component, choose Bake) to bring it into Rhino as a real object.

Reading elevation from layer names

This does not apply to the current base dxf or dwg but may be useful for other files. If each contour's elevation is stored in its layer name, a layer-name component (from the Elefront or Human plugin) lets you read it, parse the number, and move each contour to that Z in a single definition. One setup replaces hours of manual SetPt.


5. Mesh or NURBS?


6. Common problems and fixes