Ponding study in Civil 3D?

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.


3D surface contours and triangles 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:

  1. Select the surface and use the Extract from Surface tool
  2. Next, select only Watersheds → Select Manually and choose the depression boundary, then press OK
  3. In model space, select the extracted 3D Polyline, right-click and choose Quick Profile
  4. Choose a basic Profile View style, select OK, and then select a point to place the Profile View
  5. Select the existing ground Profile, right-click and choose Profile Properties
  6. Make the Profile Data tab active and make note of the minimum elevation for the profile

Identify low point for ponding using watershed depressions


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:

  1. Select the surface, right-click and choose Surface Properties
  2. Select the Analysis tab and choose User-Defined Contours from the Analysis type drop-down menu
  3. Add one range and select Run Analysis
  4. Set the elevation of that user-defined contour to the spill-over value and press OK.

Using the spill-over limit, a pond surface can be created


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:

  1. Select the surface and use the Extract from Surface tool
  2. Select only User Contours → Select Manually and choose the user contour within the depression boundary you are analyzing. If only one contour exists, Civil 3D will default to Select All.

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.
Volume surface showing depth and distribution of the ponding

Categories: BIM, Software Solutions

About the author

A technophile with a degree in civil engineering, Steven’s 10+ years with Microsol give him an expansive range of experiences in AEC and the business processes that come along with adopting them. Brazilian-born but New Yorker at heart.