Hello,
I am working on a dam embankment model in Civil 3D and I need to automate volume calculations using Dynamo.
Current setup (see attached image):
-
Multiple independent TIN surfaces representing structural fill layers constructed every 0.35 m (blue lines in section).
-
One TIN surface representing the dam design geometry (black line).
-
Existing ground and foundation surfaces are also present.
-
Cross sections have already been generated using Sample Lines along an alignment.
In the attached section view:
-
The red cloud highlights the volume between two consecutive fill layers (layer-by-layer as-built volume).
-
The green cloud highlights the portion of that layer confined inside the dam design surface.
What I need to automate:
Volume between consecutive fill layers
For each cross section:
-
Extract the section geometry of two consecutive TIN surfaces.
-
Compute the bounded area between them.
-
Integrate volumes between stations (average end area method).
Volume of each layer confined inside the dam body
For each cross section:
-
Compute only the area of the layer that lies inside the dam design surface.
-
Then compute volume between stations.
Important constraints:
-
Calculation must be based on section geometry, not global surface-to-surface volume.
-
All layers are independent TIN surfaces (not corridor shapes).
-
I need an automated workflow in Dynamo.
-
I am open to using Civil3DToolkit, Camber, or Python nodes if necessary.
Has anyone implemented something similar?
Specifically:
-
How can I extract section intersection geometry from multiple TIN surfaces?
-
What is the best way to compute bounded areas between surface profiles in Dynamo?
-
Is there a recommended approach for handling this per station?
Any guidance would be greatly appreciated.
Thank you.
I am currently using:
-
Civil 3D 2021
-
Dynamo for Civil 3D (included with Civil 3D 2021)
For better understanding of the geometry and surfaces, I am attaching a download link to the DWG file of the dam model:
DWG file download link:
Please feel free to review the file if needed.
