Terrain Developable Area, Roads, Cut and Fills

Hi Guys,

I am facing a challenge modelling a terrain. I build existing terrain based of point cloud, but now I have to identify buildable ares. It is easy with the slope analysis, but in some areas I am allowed to modify the terrain to provide more usable area.

I can’t come up with any useful idea how to get this work.

  1. I need a way to modify existing terrain by making some ares flat and be able to calculate cut and fill volume.(attached image, I would like to make red areas flat)
  2. I also need a way to draw a road in 2d (easy) project road curves onto new mesh and blend the road with the mesh (see attached image)

I tried 3ds Max sculpting and then exporting points back to Rhino, but it is not a very precise way. And if I would have to change something I would have to go back to 3Ds Max.

Maybe there is a way to draw custom (control ) contours and then blend them with existing mesh? This way I will be able to adjust counters shape to fit the design idea ?

Thank you.


1 Like

Looking at second image, imagine modelling this road, but also add some flat or terraced areas on both sides for the buildings .

Well, this was amusing… I decided to build a road, carving out terrain or building it up as needed.

  • In ‘Top View’, draw a curve for the road on the ‘WorldXY’ plane. Make sure it starts and ends outside the bounds of the mesh surface.
  • Adjust the ‘Count’ slider to have as few points as possible but as many as necessary to follow the road accurately.
  • The ‘raise path’ slider will raise the projected points above the mesh surface, which can be helpful in reaching a “state of equilibrium” where the volume filled in is nearly the same as the volume of material excavated.

The two ‘Volume’ components are VERY SLOW - ~45 seconds on my laptop - and should probably be disabled while messing with other parameters. Sometimes a ‘Volume’ component will fail but a slight adjustment of a parameter will “fix” the problem.

Green in the image below shows “build up” or fill volume.

(painfully slow to open! looking at it again now… disabled Volume components)
Toposurfacenytterrn_2016Aug6b.gh (71 KB)


I would:
1)draw a curve for the flat area
2) make plane on crv
3) project points on plane
4) delaunay mesh with new points

Cheers, Will try tonight )

Ok I was thinking, First I have to define areas were I can build.
Using a slope analysis I can graphically see which areas I want to make flat. Making new contours and then extruding them.

I did a quick study in SketchUp. But I want same thing in Grasshopper.

Thank you.

I can guess if you did the quick study in Ketchup you know how to 3D model.
Have you tried using the same components, step by step, in GH?
I guess: Curve, offset with several distances, move Z up and down…

Well first I have to find areas of slope no more then say 10% and then connect all points in this area in to one new contour.

Hi Guys,
How to find points with specific slope % and then connects them in one contour? Here is were I got so far.
How sort out point only with specific slope %?


You won’t be able to operate on the mesh vertices only. The chances of a specific vertex having an exact slope angle are vanishingly small, meaning you need to add a tolerance, meaning you’ll get multi-point regions in planarish areas and still gaps in wildly fluctuating areas.

If you mesh is strictly 2.5D (i.e. for any (x,y) coordinate there is at most a single z coordinate) then you can create a new mesh which encodes the slope of the existing mesh into its own elevation.

That is, take all the mesh vertices and replace the z-coordinate with the slope angle of that vertex. Then either recreate the mesh or use the Delaunay component. This will give you a mesh whose elevation equals the slope of the original, but crucially it interpolates the slopes between vertices. You can then slice this analysis mesh to get contours.

I did not project the contour lines back onto the original mesh in my example file: meshslopecontours.gh (19.0 KB)

Thank you David!
Do I need to convert my mesh to brep to be able to project contours back to original mesh?
Or do I have to extract points, project and connect again?

I hope not, because that way madness lies. I would remove the delaunay component from the file and instead create the slope analysis mesh with the faces of the original mesh so it looks exactly the same from above. Then you can project your section polylines using Mesh Ray intersection.

Does this work?
I also changed angles to slope %.

BuildableArea.gh (205.1 KB)

I found how to project roads onto mesh, looks great and works. Now just need to look through it to understand how it works.

1 Like

Hey Guys,
How to move a collection of point to a 0.0 location ? I have one point selected and I want all other points to move relative to it. Basically moving all points but without changing their orientation.

Solved it ))

Ok I started to work on road to mesh projection part and based on Eric’s definition.
His example uses single curve to create a road, but I need a real road with junctions and roundabouts.

So currently I have three questions:

  1. Why Mesh | Ray projection doesn’t work? I had to use Project Point .
  2. When I project all points to the mesh the surface I create is not flat, is there a way to interpolate a slope?
    So left and right sides of the road are on the same level, but gradually rising with the terrain?
  3. Also ho to subdivide and then build a poly line again so I have start parts with less points and more points on corner radiuses ?

1716_SiteTopography_.gh (329.6 KB)

Here is what I am getting (
Unfortunately can’t find a way to make a road flat relative to Z

You didn’t put any data on your file. You can put just example not real data. It is not interesting to recreate data.

For Mesh Ray if you curve is higher than the mesh just put a -1 to Z vector. Mesh ray if half a line, so it has a beginning at the location of your point and go toward the vector -Z to go up to down.

Sorry mate,
Thought I have attached it. Actual Rhino file is ti big unfortunately.
PathsonTopo_Edited.gh (328.2 KB)

Thanks! Mesh Ray works now!