A recent question on the Civil 3D Forums had me wondering whether it was possible to display ponding water on a Civil 3D surface. I was certain there wasn’t a push-a-button-get-an-answer solution, but I decided to see if I could get the job done using a combination of Civil 3D tools.
To understand where ponding could occur on this surface, one would need to analyze the surface and identify which regions of the surface contain depressions where water could collect. Depending on how many local low points there may be on the surface, it’s likely that any analysis would need to be iterative and require a certain amount of user input.
While the solution I present below works for some Civil 3D surfaces, the actual question posted on the Civil 3D Forums asked about a large and complex DEM (digital elevation model). With that in mind, I will be making additional suggestions for complex analysis using another application better suited for the task in a separate blog post.
I’ll begin with a Civil 3D surface, one readily available with every installation of the product. The simplest way to do an analysis of the drainage areas of a surface is to run a watershed analysis. When running the analysis, I am only going to be focusing on the depressions on that surface. Once again, depending on your surface geometry, you may get one or more depressions, or you may get none. In the surface I am working with, there are six distinct depression areas, however I will be focusing in on the largest of the six for the purposes of this blog.
Once I have identified the depression I want to work with, the next step is to determine the lowest point on the edge of that depression since it will be the “spill over” point, that is, the point at which water will drain into the adjacent area on the surface. Again, there are several ways to accomplish this task, but I found the quickest non-lisp related way to find the lowest elevation point is to:
Once you have the minimum elevation of that boundary, you can then use that same extracted boundary edge to temporarily create an outer boundary for the surface you are analyzing. Doing so, and then examining the surface properties, would reveal the minimum elevation of the surface within that depression. This will give you the delta between the low point and the spill-over point. Alternatively, you could create a “zero elevation” surface and use the Minimum Distance Between Surfaces to find the low point on the EG surface.
Using the spill-over elevation, you can now create a user contour set to that elevation and style it for easy visibility. To do so:
To see that contour on your surface you will need enable User Contours on the surfaces current style . We will then extract that contour as a polyline to use for our POND surface. To do so, follow these steps which are similar to the ones above:
I had to do some minor clean-up of the line-work in my example as there were some duplicate lines, but in the end, I now have a boundary representing my ponding limits. The last step is to create a surface called POND from the extracted polyline. You should use that polyline to define both the breakline elevations and the outer boundary of the surface.
You can now use that surface to do any type of visualization that you would need. As an example, create a volume surface and run an elevation analysis to determine the depth/distribution of the ponding. See the image below for an example.