CIVIL 3D Convert 3D Faces in TIN surface without calculating triangle connections

Good morning everyone,
i have a road (12 km) where surfaces were created in Autocad with 3D faces.
I want to convert these 3D faces in TIN sufaces in Civil 3D.
Civil 3D reads the 3D faces but recalculates the connections between the triangles, adding more triangles.

I have tried many Dynamo scripts to see if i was able to achieve a conversion without the program adding triangles but all the attempts failed.

There is a way where the 3D faces are directly transformed in TIN surface without any additional triangles?

I can not set a maximum dimension, because for the shape of the holes the unwanted triangles can be very small or very big.

We are speaking of 12 km in a city center, We have a group of 3D faces for corbles, asphalt, sidewalks and terrain, so we do not have time to manually create the borders and set them as characteristic line.
I looked up on a way to transform them in autocad surfaces, and then extract profiles from there, (which wokrs but the profiles do not include holes inside the surface) but with autocad surfaces i am not able to get a Dynamo geometry, Every node i tried gaves me errors.


This is a good topic where @mzjensen has a good background so he can warn you very well :wink:

2 Likes

Yeah, i looked up at some of the solution. Now i’m trying to convert all my 3D faces to autocad surfaces, then extract the profiles, and convert these polylines in CIVIL 3D characteristic line and use them to cut the unnecessary triangles. I’ll update/cancel the thread if this solution works!

I’ve had moderate success with two ideas:

  1. Using some copy and pasted python from the revit side of this forum to use a ‘Concave Hull’ in which fancy math is used to identify the outside edges of a group of triangles. Then using those results to have Dynamo create a polyline to become the tin surface boundary. However, it still requires some user review to make sure it did what it was supposed to do…but it gets you 90% of the way there.

  2. Using the Camber nodes to actively select all the triangles in a Civil 3D drawing, then sending the LINEWORKSHRINKWRAP (spelling?) command to the command line. This draws a polyline around the triangles, not sure about the interior hole, though. However, the polyline isnt quite right due to the triangles being at an elevation. So, I extracted the triangle X and Y geometry, created polylines at Z=0, and then used the shrink wrap command to get a boundary from there.

Neither idea work 100%, maybe someone can build off of them to something that does.

Link to Concave Hull post:

1 Like

Just had an idea…maybe even a good one…you could try using dynamo to get geometry for all the edges of the triangle faces, then using some list logic, sort out all the edges that don’t have duplicates. You should be left with a list of just the edges on the exterior limts of your tinn. Once you have that, dynamo should be able to create polyines and add as boundaries.

1 Like

Thanks it is something to work with, as for the interior holes, they are filled by other surfaces, so i’ll just apply the command again and use their exterior border as boundary!

This seems to work well at creating a boundary right on the edges of the triangles. Tried to use it with an internal hole, but the PolyCurve node fails when there are more than one set of curves. Tried to use some copy+pasted DesignScript from the forum for sorting multiple PolyCurves, but it didn’t seem to work for me. So, this works on one contiguous cluster of triangles only.


SurfaceBoundaryEdge.dyn (61.5 KB)

The link to the post about grouping multiple curves for PolyCurve in case someone feels ambitious: