Create polyline/polygon boundary of slopes over 25% for a TIN surface - Erosion Control Blanket

For Autodesk Civil 3D erosion control plans, any slope over 25% requires an erosion control blanket to prevent erosion.

Right now, our workflow is pretty manual—drafters turn on the 0–25% slope range in red, then trace those areas to define the blanket limits which then get a blanket hatch. I’d love to automate this, but after giving it a solid try, I hit a wall.

I was able to identify individual TIN triangles over 25%, but I couldn’t find a good way to merge them into a clean outer boundary that I could then hatch. I’m specifically trying to avoid creating a hatch per triangle - we all know Civil 3D doesn’t handle heavy hatching very well.

Has anyone figured out a better workflow for this? Ideally something that generates a clean boundary for steep areas. Any ideas? Thanks! @jacob.small @zachri.jensen

Erosion Control Blanket.dwg (2.3 MB)

Something you can try using the Dynamo geometry engine. Specifics will be very dependent on your Dynamo build, but this will likely be surprisingly fast if you’re managing memory well, and as it’s just Dynamo mesh and surface tools you’ll be able to use Forma and Revit content as well.

  1. Get the mesh and extract the components (index groups and vertices).
  2. For each index group get the normal of the resulting plane and if the angle to the Z axis is greater than 25% append it to a new list of index groups.
  3. Pull all the vertices to a common plane (Plane.XY might makes sense but I am not sure how C3D works with hatch elevations).
  4. Build a triangle and patch it from the points found by each index group.
  5. Build a PolySurface from the resulting triangles by Surfqce.Union or PolySurface.ByJoinedSurfaces. This will be slow. Sorry not sorry.
  6. Pull tge perimeter curves from the PolySurface.

The resulting lines should be the limits of the hatches.