Can I Align w/ A Terrain? Please help

I have 277 different curves and surfaces drawn on a single horizontal plane. I want to align them with a terrain model directly below. So that means each of those curves/surfaces would align at different heights. How can I do that?

This is a landscape project. Each of those surfaces/curves is a platform that must sit level on various slope points (If I just project the curve onto the terrain, they won’t be level anymore). I drew it in top view (plan). Now I need to place them on the terrain. Hopefully this image helps.

What determines the desired height of each curve?

I think Project will work, if you do it in the Top viewport.

The height of the terrain directly beneath the surface determines the height. The terrain undulates so if a platform is above a high part of the terrain, it will need to move down less than a platform over a valley (for instance).

When I project, the curve follows the slope of the terrain. I need each curve/surface to remain level. Is there a way I can move each curve/surface only until it touches the terrain below?

This is doable via a script or Grasshopper, but there are a few things that need to be determined first. The main one is when projecting a curve, what criteria to use to determine when the curve “touches” the terrain. The most likely from your info above is that you want the curve to always be above the terrain model except where it touches it - i.e. the highest point of the projection of the curve to the terrain. However, your criteria might be different, so I will await your response.

This is correct. I want the curve to stay FLATTENED and remain above the terrain except for the point where it touches the surface. If I simply project it onto the terrain, my flattened curve won’t be flat anymore. I’m not super proficient in grasshopper so now I’m worried tbh.

If your terrain is a surface and not a mesh and you know just a little bit about Grasshopper, here is a very simple quickie solution. The input curves should start out above the surface. Just right click on the Crv component and set multiple curves your input curves, right click and set the single terrain surface in the Brep component and then right click and Bake the result.

ProjectCrvsToBrep.gh (15.0 KB)

I also have some scripts that do this but they need to be modified to work on curves, they are designed for volumes.

1 Like

I will try this. Thank you.

I have an image of exactly what I need. The purple curve is projected onto the surface (follows the slope of the terrain). The green curve is flattened. I need to align each flattened curve with the projected curve. Is there a way I could do this quickly for 277?

I got it. This was great. Thanks to everyone for your suggestions. Thank you!!

And finally, I did actually have a script in my collection that was almost what was needed, I modified it a bit this morning, so here it is just for sake of completeness.

ProjectPlanarCrvsToSrfs.py (3.1 KB)

Note this one can project to a collection of surfaces, polysurfaces or meshes and has the command-line option to stop at the point of touch of the terrain surface or fully embed into it - so it’s a bit more flexible than the GH definition I posted above.