Hi @Erik_Beeren and @sambrari95 ,
Yes, the place to get Heron is currently through the Package Manager. Aside from MultiMoveToTopo, it also has MultiMeshPatch and GdalBuffer components that I’ve used in the attached definition.
Road on TerrainBW with inner boundaries.gh (76.3 KB)
Road on TerrainBW2.3dm (4.7 MB)
As noted previously in this thread, there are a few ways to approach this question, but I’ve put together one that allows for inner boundaries of the road edges using Heron, @laurent_delrieu 's new Nautilus add-in, and Human (for visualization). Here are the general steps I used:
-
Find the medial axis of the road boundaries to create road centerlines. This can be done with the Voronoi component using the approach found here.
-
Get the road centerlines (pink) and project them to the topo mesh in order to determine the elevation for nearest road edge point. This should create a relatively flat cross slope for the road surface. Using Nautilus’s
Smooth Networkcomponent is essential to simplify the medial axis line segments and help determine what is a centerline vs a branch/dead end.
-
Elevate the road boundary to the projected centerlines.
-
Project side slopes from elevated road boundaries and intersect the rays with the topo mesh to find the new top/bottom of slope points to be used to in the new topo Delaunay triangulation. This step uses
GdalBufferto find the direction of the side slope rays.
-
Create a new topo from road edge points, road centerline points, top/bottom of side slope points and existing topo points.
-
Split the resulting mesh into road, side slopes and surrounding topo.
A few notes:
- the source mesh geometry is very far from origin and may need to be moved closer to origin for rendering.
- if side slopes start to intersect each other due to road cutbacks or low slopes, this definition will fail.
-Brian









