So, you want to bring a surface from Civil 3D into Revit? It’s pretty easy, provided you have both Civil 3D and Revit Structure. What? You don’t have them both? You only have Civil 3D? Are you sure? Recently, anyone that had Civil 3D on subscription was automatically upgraded to the Infrastructure Design Suite Premium and, guess what, it has Revit Structure! So most likely, unless you specifically opted out of the upgrade, you have access to Revit Structure.

Please read this entire post as there is some very important information near the end. First, I’ll tell you how to Import the Surface and then I’ll tell you about the Limitations and Issues.

Import the Surface

The Bridge Modeling Tools have been around for a while now. If you haven’t installed them yet, go to the subscription website and download them. You’ll need both of them, one for Revit Structure and one for Civil 3D.

After you have installed them, simply open the drawing that has the surface in Civil 3D and then open the file in Revit Structure you want to bring the surface into. In Revit, there is a little bit of setup you need to do (if you’re a Revit person, you probably already know this stuff). Go to your “default 3D view” (that’s the “doghouse” on the quick access toolbar) and edit the Visibility/Graphic Overrides.

Setting Up Revit

Setting Up Revit

In the Visibility/Graphics Overrides, turn on the display of the Topography.

Topography Options

Topography Options

This will allow you to see the surface when you bring it in. Once Revit is set up (I’m sure there are some settings I’m not aware of and I’m sure a Revit Guru will correct me on this), go to the Extensions tab, expand out the Civil Structures tool and choose “Integration with AutoCAD Civil 3D”.

Integrate with Civil 3D

Integration with Civil 3D

If you have more than one drawing open in Civil 3D, you’ll need to choose the drawing with the surface in it, the surface(s) in the drawing you want to import, and then have it import the surface into Revit.

Import Settings

Import Settings

After hitting OK, you then have some options when importing the surface, such as the material that will be assigned to the surface and the limits of the surface (if you don’t want the entire thing).

Terrain Definition

Terrain Definition

Once done, you’ll have a surface in Revit that you can do whatever you want to with it.

Surface in Revit

Surface in Revit

Limitations and Issues

This tool is really, I mean REALLY cool! A few years ago, one of my coworkers (Brian Mackey) and I worked up a technique to do this very thing and believe me, it wasn’t this easy. This is easy but, you need to know what it does. If I take this surface in Revit and I compare it to the surface in Civil 3D (I’ve stylized it in C3D to be similar to what we see in Revit) you’ll see they are quite different.

Civil 3D vs. Revit

Civil 3D vs. Revit

As you can see, the limits of the surface from Civil 3D aren’t honored in Revit. In fact, the only thing that comes through in Revit is the surface points. If you have added any breaklines or boundaries to the surface in Civil 3D, Revit doesn’t recognize those. For you civil folks, to get a feel for what Revit is doing, basically extract the surface points from a surface and then add them to a new surface and that’s what you will have in Revit. This is still better than what we had though so it’s definitely an improvement. If this is important to you, file a support request with Autodesk so they know and perhaps they will adjust the way the tool works (the method Brian Mackey and I developed has the same issue by the way).

Note from Brian: Something new in the 2015 release. The images plot. HERE

So AutoCAD 2014 has this cool new feature called Live Maps and Geographic Location (basically, AutoCAD now owns the coordinate systems for Civil 3D and Map 3D). When a coordinate system is assigned to the drawing, you get a new tab on the ribbon allowing you to display an aerial map, a road map, and do some cool stuff.

The problem is, this isn’t in Civil 3D 2014 at all. Here are the steps to add this ribbon tab to Civil 3D 2014.

HERE is a video showing the steps

  1. Open AutoCAD 2014. This can either be AutoCAD 2014 or Civil 3D 2014 as AutoCAD 2014.
  2. Go into the CUI (Customize User Interface) dialog box (type CUI at the command line).
  3. In the CUI, go to the Transfers tab and create a new CUI file.
    CUI Transfer Tab

    CUI Transfer Tab 

     

  4. Drag the Geolocation ribbon tab from the ACAD.CUIX file to your new CUI file (just drag and drop)
    Drag and Drop

    Drag and Drop

     

  5. Save the CUI file and close AutoCAD.
  6. Open Civil 3D 2014 and type CUI just like in AutoCAD (don’t go to the Transfer tab, stay on the Customize tab).
  7. Load in the CUI file you saved in AutoCAD
    Open Partial CUI File

    Open Partial CUI File

     

  8. In the just loaded CUI file, drag the Geolocation ribbon tab to the Geo Coordinate System Assigned Contextual Tab State.
    Contextual State

    Contextual State

     

  9. Save and your off and running.

Now, when you assign a coordinate system to your drawing, you can also display aerial maps or road maps in the drawing as well.

Map Display Options

Map Display Options

I WANT YOU TO MAKE THE SURFACE LOOK PRETTY!!!!!

Yes, we’ve all heard it before, Civil 3D makes contours that sometimes look like the recording of an earthquake on a Seismometer:

Seismometer Recording

Seismometer Recording

Really, it’s not the fault of Civil 3D, it’s the data. Add the same data to any other civil design program and you’ll get the same results. This seems to crop up quite a bit when you have cross grades. In the following image you can see that there are two roads going opposite directions and this is where the jagged contours are coming from:

Jagged Contours

Jagged Contours

No contractor would build it this way so, let’s see what our options are.

Option 1: Smooth the Contours

You can smooth the contours of the surface. In the style the surface is using, you can toggle on the option to smooth the contours. This is a great way to make a drawing “look pretty”. It will take the contours and smooth them out. This is only editing the display of the surface. If you have a profile through this area, smoothing contours does nothing to the profile because we aren’t smoothing the surface, we are smoothing the display of the surface.

To smooth the contours, go into the style the surface is using and, on the contours tab, toggle the option to smooth the contours to True. Once you have this toggled on, you can select the type of smoothing you want to apply to the surface as well as how aggressive you want the contour smoothing to be. Play around with these settings and see what looks best for you. There isn’t a correct setting for this because your goal, when smoothing contours, is to make the contours look pretty.

Contour Smoothing Options

Contour Smoothing Options

And here is the same area of that surface with the contour smoothing option set to True, the Smoothing Type set to “Add Vertices” and the contour smoothing maxed out.

Surface with Smoothed Contours

Surface with Smoothed Contours

There are some things to be concerned with when smoothing contours, you are sacrificing the accuracy of the contours to make them “look pretty”. If you have a spot elevation that happens to fall very close to a contour or perhaps a point that was used in the surface creation that’s really close to the contour elevation, you might see some discrepancies. In the following image, I placed a spot elevation and snapped to the contour and you can see it’s not the exact same elevation as the contour:

Smoothed Contours Labeled

Smoothed Contours Labeled

Another issue with smoothing contours is you might end up with contours that cross each other. You’ll see this sort of thing primarily where you have some really steep areas such as retaining walls.

Crossing Contours

Crossing Contours

Anyone that’s done any amount of surface modeling knows this is not allowed.

The last issue that I’m aware of with smoothing your contours is, it’s all or nothing. You can’t smooth just a portion of the contours of your surface. This is because it’s a part of the style.

Option 2: Smooth the Surface

The other option is to smooth the surface directly. This is an edit that is done to the surface and is found in the same place you can raise/lower the surface or paste in another surface.

Smooth Surface Command

Smooth Surface Command

There are two options when smoothing surfaces, “Natural neighbor interpolation” and “Kriging”. I’m not going to go into detail on how the different methods work or what settings to use. You’ll need to read the HELP FILE and do your own research to find out which method works best for your situation. In this example, I’m going to use the natural neighbor interpolation method.

Smothing Options

Smothing Options

So, how does this differ from smoothing the contours? Well, when you smooth contours, you are smoothing the display of the surface. When you smooth the surface, you are actually editing the surface and not just the display. Here is an image of the surface with the smoothing edit applied to it:

Smoothed Surface

Smoothed Surface

As you can see, the contours look much different then when the contour smoothing was applied. If you take a look at the triangles of the surface, you can get a better idea of what happened here (I did a 5′ grid in this example):

Smoothed Surface Triangles

Smoothed Surface Triangles

A couple things to note here, I didn’t smooth the entire surface, just the  area that needed it. Second, any data that was added to the surface was not modified in any way at all. If there are points, or breaklines, or corridors, or gradings, they are preserved (including the triangulation along the breaklines). This only affects the way the triangulation in the areas between data are calculated. Basically, instead of doing a straight grade between one point and the next, it rounds it out.

Something to be aware of, this can add a LOT of data to your surface and can make it very slow to work with so play around with the settings and get the results you want without adding too many points to the surface.

Hopefully this helps out when someone is complaining about your ugly contours!

So a little while ago, someone in the discussion group asked how to go about dropping the zeros at the end of a label. For example, if a value was 100.1111, they wanted to see 100.111. If the value was 100.0001, they wanted to see 100. Apply this to the entire range and you get an idea of what was wanted;

One Label Style, Different Precisions

One Label Style, Different Precisions

In the image above, you can see the total length of the line in the component on the bottom and the component on the top is displaying with different precision based on the value of the label.

NOTE: The method I came up for solving this issue only works if the values can never be negative. If the values you are labeling can be negative (such as a surface elevation) this technique won’t work

Setting Up the Style

What you’ll need: 1 component for each precision you’ll want in the label and one expression for each of those. I’ll start this off by creating the component if the label rounds to the nearest ones place.

The expression basically does this: It checks to see if the number is the same when rounded to the nearest one and when it’s rounded to the nearest one thousandth. If they are the same, return the value. If they are different, return -1 (negative one). The expression will look like this (for a line label):
IF(ROUND({General Segment Length})=ROUND({General Segment Length}*1000)/1000,{General Segment Length},-1)

Expression for Display to the Ones Place

Expression for Display to the Ones Place

I called this expression “ones”.

Now use this expression within a label component. Instead of using the length of the line in the label, use this expression. The trick here is to change the precision to the ones place and then set the “Sign” value to “hide negative value”. That’s what the -1 is used for. If the test in the expression is false, then don’t display anything, if it’s true, display the value at a precision of 1.

Label Component Used to Display the Ones Place

Label Component Used to Display the Ones Place

Repeat the expression/component process for the rest of the precisions you want to use in the label (tip: just copy the “ones” component for the rest of them). For the tenths place, add an additional IF statement to the expression. If the “ones” expression is greater then or equal to zero, then return -1, otherwise, test for the next precision. This expression looks like this:
IF(ones>=0,-1,IF(ROUND({General Segment Length}*10)/10=ROUND({General Segment Length}*1000)/1000,{General Segment Length},-1))

Expression for Display to the Tens Place

Expression for Display to the Tens Place

The expression for the hundredths place is very similar but with an extra IF statement to check both the “ones” and “tenths” expressions.

Finally, you’ll need one last expression for everything else. This one is really simple, basically, if “ones” is greater then 0 or if “tens” is greater then 0 or if “hundreds” is greater then 0 then return -1. Otherwise, return the value.

IF(ones>=0,-1,IF(tens>=0,-1,IF(hundreds>=0,-1,{General Segment Length})))

Expression for Display to the Thousands Place

Expression for Display to the Thousands Place

Wrap Up

Once you have the expressions created and added to your label, it works like a charm. HERE is a quick little video I made showing the expression at work. I took a line and labeled it and then changed the length of the line using the dynamic input.

Additionally, if you would like a copy of the file that I showed in the video, you can download it HERE.

Have fun playing with your new label knowledge!

Civil 3D uses a Triangulated Irregular Network (TIN)  for surface models, just like every other piece of civil engineering software that I’m aware of. There a  couple of major limitation to a TIN that you should be aware of. First, every single horizontal location (i.e. every x,y coordinate) can have only one elevation. This means no vertical faces and no overhangs or undercuts. The other limitation is since it’s made up of a bunch of triangles, you can’t have curves in your surface. If you have curved data that you want to add to your surface, you must approximate this with straight line segments, and this is where the mid-ordinate distance comes into play.

What the Mid Ordinate Distance Is

When you add data to your surface, one of the options is the mid-ordinate distance. What the heck is the mid-ordinate distance? Well, it’s the distance from the midpoint of a curve to the midpoint of the arc.

Mid Ordinate Distance

Mid Ordinate Distance

When you add something like a curve to your surface as a breakline, boundary, or contour; the surface cannot follow the curve so it uses the Mid Ordinate Distance to approximate the curve. Basically what happens is C3D will start at the end of the curve and draw a line to another point on the curve so the mid ordinate distance between those two points on the curve equal what is set in the dialog box.

Mid Ordinate Calculated

Mid Ordinate Calculated

As you can see in the image, there is a little bit left over at the end, when you add this to a surface, you don’t want that little bit left over so Civil 3D then evenly distributes the number of points added to the feature along it. This will result in a final Mid Ordinate Distance slightly less then what was calculated.

Mid Ordinates Distributed Along Curve

Mid Ordinates Distributed Along Curve

So, instead of adding just the ends of the curve to the surface, the Mid Ordinate Distance allows us to determine how many points along the curve we want to add.

What Should You Set It To?

Now that you know what it is, what should it be set to? In the default template, it’s value is set to 1 drawing unit (1′ in the imperial template and 1m in the metric template). Is this value too big? Too small? Or just right? Let’s think of this in a different way. Don’t think of it in the abstract Mid Ordinate Distance way, think of it instead as “How far away from my data should I allow my surface to be created?” If you set the Mid Ordinate Distance to 1′, then the triangle of your surface can be up to 1′ away from the actual data. It’s your call, is this acceptable or not?

Here’s how I like to figure out an acceptable Mid Ordinate Distance. What is the smallest distance between any two breaklines you’ll have in your surface? Are you modeling a haul road for a mine? Or are you modeling curb and gutter for a commercial parking lot? In my experience (primarily land development) I use a lot of curb and gutter. When I model the flow line and the top face of curb in a standard curb and gutter, that’s a horizontal distance of 2″. Take that smallest distance and cut it in half to get your desired Mid Ordinate Distance, in this case 1″. Since 1″ is about 0.08333 I will typically us 0.1′.

Can I Change the Default?

Well, of course you can! Ok, let me rephrase that, if you are using Civil 3D 2010 or later you can. On your toolspace, go to the Settings tab and expand out Surface and Commands:

Command Settings Location

Command Settings Location

As shown in the image, there are three commands (at least that I know of) that can have the Mid Ordinate Distance set, AddSurfaceBoundaries, AddSurfaceBreaklines, and AddSurfaceContours. Right click on the command you want to change and choose Edit Command Settings. In the command settings, expand out “Add data options” and change the “Default mid-ordinate distance” setting.

Mid Ordinate Distance Defaults

Mid Ordinate Distance Defaults

Hopefully this will help you understand what’s going on with this setting and, have a Merry Christmas!

A while back, I did a post about bringing DEM data into AutoCAD Civil 3D (you can read it HERE if you are interested). In the comments, people have asked several questions and have had some issues. One of the issues is, you have to know what coordinate system the DEM file is using. Another is that, no matter what coordinate system you are using, the DEM comes in as though the elevations where in meters (and will then convert those meters to feet).

Well, all that’s about to change. If you have the Autodesk Infrastructure Design Suite (Premium or Ultimate) then you also have Autodesk Infrastructure Modeler (AIM). You can use AIM as a DEM to Civil 3D surface converter. Simply import your DEM file into AIM, export to a .imx file, and then import that into Civil 3D.

Open up AIM and create a new project. Give it a name and a place to save it. Keep the coordinate system as LL84 (there’s no need to change it) and leave everything else the way it is.

Create a new project

Once the project is created, import the DEM file into AIM. This is done through the Data Sources panel. Expand out the different data sources and choose “Raster” as the data source. Browse to your DEM file, open it, and then Refresh the data. You will now have a beautiful surface in your model.

Import DEM as Raster

Refresh DEM

Now that the DEM is added to your model, export it out to Civil 3D via the .imx file. In the application menu of AIM (that’s the purple I in the top left corner of the application), choose the Export menu and then “Export to IMX”. In the Export to IMX dialog box, choose to export the entire model, and give it a file name. AIM will choose an appropriate coordinate system so just leave that alone. Depending on the size of the DEM file, this could take a few minutes.

Export to IMX

Once the .imx file is created, open Civil 3D. To import the .imx file, it’s important to remember to assign a coordinate system to your drawing. If you aren’t sure how to do this, click HERE. Once in Civil 3D choose the Import IMX command (it’s on the Import panel of the Home tab of the ribbon or type IMX_IMPORT at the command line). Simply browse to the .imx file and bring it in. Because both the .imx file and your drawing have coordinate systems assigned, the DEM file comes in at the correct location and at the correct elevation. You may want to change the name of the surface as well as the style but, you now have a beautiful DEM file in your drawing and you didn’t ever have to know what coordinate system it was using!

Import the .imx file into Civil 3D

And if anyone is wondering, the DEM file I used while creating this blog post created a surface in Civil 3D with almost 4 million points.

Surface Properties

I’ve been playing around with Autodesk Infrastructure Modeler (AIM) quite a bit and I’ve been liking it A LOT! It’s SO easy to bring all that GIS data into your model and make it look really good.

One thing that will really help out your model is bringing in 3D models of some of the more recognizable buildings and features of the area you are modeling. For example, here is the City of Denver with the building outlines modeled as buildings and the height of the buildings captured from the GIS data:

Mile High Stadium Building Outline

As you can see, centered in the image is Mile High Stadium and, well, it really doesn’t look like that AT ALL! So, what can you do? There is a ton of free 3D models out there on the internet, one of the best resources I’ve found is the Google Sketchup Warehouse. You can find all sorts of free 3D models there in the Sketchup format. In fact, HERE is a 3D model of Mile High Stadium. Simply save the file to your hard drive.

Next thing we want to do is bring it into AIM (Autodesk Infrastructure Modeler). The easiest way to do that is bring it first into 3ds Max Design. If you are using AIM, most likely you have one of the Autodesk design suites (and if you are reading this blog, most likely it’s the Autodesk Infrastructure Design Suite). The Premium version of the Infrastructure Design Suite comes with both AIM as well as 3ds Max Design so you are golden if you have that. Open up 3ds Max Design and close the opening welcome screen. You probably have never used 3ds Max Design before, don’t worry, what we are doing is easy.

Within 3ds Max, on the Application Menu (that’s the big green M in the top left corner of the application) choose the IMPORT (Import  non-native file formats into 3ds Max.) command

Import Model into 3ds Max Design

Now browse to the file you downloaded from the Google Sketchup Warehouse and you’ll see the another dialog box. The only thing you’ll want checked on is “Split Objects by Layer”

Import Sketchup File Settings

After importing, you’ll see your model in 3ds Max

Model Imported into 3ds Max Design

In our case, I don’t want to use the background image of the model, just the model itself so I can select it and hit the delete key on my keyboard (alternatively, you could just not select it in the next step). Now that 3ds Max has imported the file, I want to send it out to AIM, and that’s the easy part. In the Application Menu of 3ds Max (same place we went to import the model), there is a Send To menu and one of the options under that is Send to AIM. This will send whatever you have selected in 3ds Max so select your model, and run the command.

Send to AIM

MAKE SURE YOU AREN’T IN THE MIDDLE OF A COMMAND WITHIN AIM PRIOR TO DOING THIS!!!!!!!

You’ll be switched back over to AIM where you will then be asked to configure the data source that you are importing from 3ds Max. You’ll want to do a minimum of two things here. First, assign “Type” to the data source (in my example I chose Buildings because, well, it’s a building). Second, you’ll want to specify the location. Most likely when specifying the location you’ll want to use the “Interactive Placing…” option. This allows you to place it in your model wherever you choose. When it’s where you want it, just double click and you are done.

Configure Data Source

And now you’ll be able to see your 3D model in AIM and it will cast shadows and just look really awesome!

Here’s the Space Shuttle being carried by a 747 over Mile High

Space Shuttle over Mile High Stadium

Follow

Get every new post delivered to your Inbox.

Join 805 other followers