How to make a closed terrace terrain from contour curves

I am trying to make a site model for a project in school. We have received contour curves that looks like those in the picture below.

I want to model the terrain so that is gets the form of “closed terraces”, as in the site model below. There I have just drawn the contour curves and extruded them to the appropriate height. But, I can’t edit the extrusions, and don’t know how import more contour curves in an efficient way if I would like to make more closed terraces to make the terrain more “smooth”.

I and wonder if anyone have a recommendation or idea of how to achieve the desired result in a relatively efficient way. I attach the dwg-file below if you want to take a closer look at it.

2021-05-05-Situationsplan_3d_Skissmodell_Version9 (kopia).3dm (19.7 MB)

I didn’t quite get your question… so you are looking for a solution for quickly converting curves from image 1 to surfaces from image 2?

Thanks for your reply. Yes, I’m looking for a solution for quickly converting curves from image 1 to surfaces from image 2. (In image 2 the roads and buildings are not included as the are in image 1.)

Hei -

To get a terraced site model, it sounds like you found the appropriate way to create that - extruding the curves to the next level. To have that work well, you need to have clean input curves. There were a lot of duplicate curve segments in your file, and a few open contours, so you need to make sure you clean that up first. When you only have closed curves, select them all and extrude them to the next level (the bottom-most level is a bit lower than the others and that needs to be scaled back then). Then you can simply BooleanUnion them into one polysurface.
(Two different contours are located at the same height and, as a result, one of them will disappear in the final result).
2021-05-05-Situationsplan_3d_Skissmodell_wd.3dm (4.7 MB)

You don’t mention how you need to edit the extrusions, but to get a smooth terrain (as opposed to terraced), you could experiment with the MeshFromPoints command or use Grasshopper’s Delaunay Mesh component to create a mesh from points. As with the extrude method, you need to provide clean input for both of these workflows. A quick Grasshopper file attached… (409.8 KB)

Thank you so much for the reply! With editing the extrusions, I want to be able to extend the extrusion in one direction, for instance in the x-direction, so I can move the same closed terrace (still on the same height) closer to another closed terrace above/below.

Hei -

I’m really not sure what that means. Closer to another terrace above or below sounds like a move in the z-direction. Or?
In x and y directions, you might be able to achieve what you need by sub-object selecting one or a few surface(s) from one terrace and move that. You might want to edit these before you turn all terraces into one single object.

Thanks for your reply once again. I canät open your file, beacuse it is saved as a file for Rhino 7 and since I use Rhino 6 I can’t read the file. Could you save it as a file for Rhino 6?

Hello - a reasonably efficient way to get the closed curves to extrude from a starting point like this:

Is to use CurveBoolean in Top, with CombineRegions=No and choose AllRegions.

Thhat will get you all the closed terrace curves on the CPlane, and these can be extruded up to the original open curves

This is all possible to script or GH, I see Wim may gave done something along those lines already and I am late to the party.


Nope - my Grasshopper graph makes a smooth mesh surface, not a terraced one - so party on!

Here’s the Rhino 6 version. Note that there is a file converter that you can download here:

2021-05-05-Situationsplan_3d_Skissmodell_wd-RH6.3dm (4.9 MB)

Hey thanks Pascal!
I am familiar with CurveBoolean, but only worked with that in 2D.
I never realized that you could work with that as a projection from 3D curves. Even in R5, though “all regions” is not available there.