Intersection Design Made Easy

I’ve been putting this off for weeks for varying reasons, but the main reason is because I think I suffer from adult-onset ADD. I am so busy when I finally do get a day or two to spend in the office that I get VERY distracted VERY easily. So yesterday, as I’m on the phone with a reader of this site, I’m browsing some of the other blogs out there (see, I told you I get distracted), and came across Angel’s latest post regarding a program from our friends across the pond at CADApps. Believe it or not, there’s a reason we look to alternatives for intersection design – Civil 3D lacks any automation tools for the process. The whole process is tedious.

So, if you’ve read Angel’s post, you now have seen his reaction to CADApps’ program. Now, click more to see my alternative (guess you can’t figure out where this is going…)

Yes, that’s right….Carlson again. I’ve got to say – I haven’t found an easier method of modeling roads. All of the dynamic feel and use of Civil 3D’s corridors, plus automated Cul de Sacs and intersections. “Assemblies” (or Templates in this case) are easy to make and dynamic. Profiles are easy, AND THEY LINK TOGETHER! That has been a wish of Civil 3D users for a while now. And why shouldn’t it be? Why should I move a mainline profile and the side profile not update with it? So today, I’m going to show how RoadNET works in Carlson Ciivil 2007. Everything you see here is running inside Civil 3D 2007, so I’ve got the best of both worlds.

So, I start out with a surface and a polyline representing the baseline of my main road. Here’s a hint – Carlson surfaces are a TIN file. I use XML to get things back and forth. I’ve created my surface in Civil 3D and have the surface functionality there. I can XML out a surface in C3D and XML it in to Carlson – no need to re-draw the surface, you can just use the TIN definition. Here’s where we start:

To get started, I’ll go to the Carlson Civil menu and Select Roads>Road Network. I am asked to specify a road network file, and if none exist, create one. Then, the following window is opened:

The first thing I have to do is go to the settings button to set up how I want my road network to act. This brings up the following window:

Starting at the top, we’ll hit the most important settings that you need to be aware of.

First, we need to determine how the program handles Road Transitions. For my CL intersections, I have a vertical curve length of 30 and a PVI distance of 30 as well. For side intersections, I have a vertical curve length of 30 and a radius of 25. For Cul de Sacs, I have a vertical curve length of 20. Next, we need to set the existing surface that we want to daylight to. I can press that button and select EG.TIN, the file I created from my XML surface. Then, we can set our intervals – I’m going to apply my assembly at each main station (10′ apart), 2.5′ apart in intersections, and set an existing section max offset. I can also turn on dynamic linking, which will reprocess my road network if I update my centerline.

If we go on down the line, I’ll want to triangulate and contour my road network (no reason not to, right?), so I’ll click on that and then set it up (1&5 contours with my proposed contour color.) I can also set it up to tie the new road surface into an existing surface and create one merged surface, which automates a step that I’ll be doing later on anyway. Once those settings are set, I can click OK and start putting in my road.

To start a road, I need to click on the ADD button under Road Name.

This brings up the Select Centerline box, allowing me to use a predefined centerline (Carlson’s word for Alignment) or pick a polyline. Since this is just a polyline, I’m going to select Screen Pick a Polyline.

Once I select my polyline, the program tells me that there is no centerline file associated with the polyline, so I have the option to assign a CL file to the polyline.

I’ll name it Main Road and click Save.

Luckily, the program realizes that you can have a road without both a horizontal AND a vertical definition, so it asks me to select a profile file as well (.PRO) – I just use the name of the CL to keep things straight in my head. I can select OK there, and it takes me to the Edit Road dialog box, as shown below:

Now, let take a look at the profile and see what we can do with it. – I’ll click Edit by the Profile name:

Notice a few things before we explore the profile editor window – see the crosshairs in the profile editor? See the triangle along the centerline? That white triangle represents the location of your cursor in the profile. Pretty neat for knowing where on the alignment you are when you’re working with the profile.

So to add or edit PVI’s, you need to select ADD PVI or EDIT PVI, as shown in the following image:

I’m going to go in and add a few PVI’s so that I can lay out my road. Picking the ADD PVI button allows me to graphically select where I want my PVI to be, then a dialog box comes up which allows me to manually put the information in.

As you can see, we can put in the Station, Elevation, Slope in and ou, and vertical curve information. I’m going to accept the defaults and put the curve info in later. Once I get my PVI’s put where I want them, I can go into the editor and define curves at each PVI based on either curve length or K Value. I’ll use a K Vaule of 30 for crest curves and 50 for sag curves to define the curve at each PVI – note that if a particularly large value won’t work, the program will tell you the maximum value that will work for that particular PVI. As you can see in the following image, I now have all of my PVI’s defined, and my profile is complete.

Once completed, I will click on Save to save the changes out to the PRO file (no pun intended) and go on to create my typical road template. (as I take a break to go get another Mt. Dew Code Red, I realize that this has gotten longer than I’d ever dreamed….) Now, I’ll go to the Template selection, press the Template button, and give my template a name. If the template does not exist, it will ask if I want to create it now. I do. The great thing about this is that every template that I create is stored in a file, so that I can come back and use this same template later in another project. Pretty neat…anyway….now that my template is named, I need to click on the Edit button to actually create the template, not just have an empty file. So, I’ll create it…

There are quite a few good things about this box. First, I have all of these buttons along the top that specify what type of component that I’m wanting to create. I can select Median, Grades, Curbs, ROW, Cut, Fill, Subgrade, and Shoulder Superelevation. The best way to really relate this to my civil users is to describe these components as Generic Links on steroids. Not quite as slick as subassemblies, but easy to use nonetheless. I’m going to select Right Side Same as Left so that I only have to create each component one time. On the left side, I’ll display my Fill option, and on the right, I’ll display my Cut option. (Yes, folks, youi can force a ditch in cut and fill here….)

I’ll start with my lanes, so I’ll pick Grades (don’t be confused by the terminology here, folks….) Now I have to set my grade dimensions:

I’m going to create a 12′ lane on each side with a 2% slope away from the crown. I can define my slope by Percent (2.0), Ratio (50:1), or Vertical (12x.02=-0.24) I’m also going to put in an ID so that I can compute quantites easily.

Next, I’ll add a curb. As you can see in the image below, I’ve got three basic curbs to start with. One good feature about curbs is that my dimensions can be set to feet or inches (unlike certain subassemblies that switch units mid-stream…)

I’ll stick with the first option, an 18″ curb and gutter. Next, I’ll create my bottom of pavement and then my subgrade (6″ of crushed rock.) I’ll do that with the subgrades selection. Here are my bottom of pavement settings:

Next, the subbase settings:

We can verify our settings by looking at the template in the preview window:

Next, we’ll add a sidewalk, but get a bit funky. I want a 2′ grassy strip at a 2% slope toward the curb, a 4′ sidewalk at a .75% slope away from the curb, and another 2′ grassy slope at 2% away from the curb. Pretty simple, no? These are done with grades just like the road was. One grade at 2% for 2′, then another at -0.75% for 4′, then the last is -2% for 2′. The differences don’t show up very well on the display, so I’ll just show the overall when I get the cut and fill in there.

Now, on to cut and fill. We’ll do Cut first by clicking on the Cut button. That brings up the following dialog box:

This will allow us to use different slopes at different differences, but I’m going to stick with a basic 4:1 cut. I’m going to force a ditch as well, and then add my ditch definition by clicking on the Add Ditch button. This is the same as the Grade dialog box, and I’m going to set it up for a 2:1 ditch at 4′:

Now I do the same thing for fill – the only differences is if I want to force a berm, ditch, or guardrail. I’m sticking with just a 4:1 fill, no ditch, no berm, no guardrail.

This brings us back to our template preview, where we can see our entire puzzle put together:

Now, click Save and Exit, and we’re ready to roll with this road. Click on OK at the Edit Road dialog box to get back out to the main program.

Now, to add a side road. I’m going to draw a polyline that represents my side road. I’m going to start at the end, and use OSNAPS to snap to my existing road centerline. This is very important, as it links the two centerlines to each other. I’ll also add a fillet radius to get a nice curve in there. Here is the new centerline:

Now, I’m going to add another road using the ADD button under Roads. I’m going to add the side road the same way I did with the main road – screen pick polyline, add profile, edit profile to put in vertical curves – but this is where I notice something a bit different – look at the image of the side road profile:

That’s right – if we edit the main road profile, the side road profile will update with it. Pretty sweet. So, now that we’ve set up our side road, let’s process it and see what happens. You’ll notice that since we now have two roads intersecting each other, an intersection entry is created automatically in the road network. We can adjust that intersection easily, including the rounding profile (no need to create a new rounding profile and spending all that #$%^ time!) I’ll go ahead and process this one by clicking on the process button – I’ll even do what Angel did and time it from button press to Road Network creation…

14 seconds, and that’s taking time for me to give the new surface a name (Road, in case you were wondering….)

Here are the final results – I’ve zoomed in to the intersection so that we can talk about it for a moment:

The red lines are major contours, the green lines are minor contours, and all the white lines are 3D polylines created at all grade breaks on this road network. Once again, pretty darn sweet.

So, along with this timing thing, let’s add a Cul de Sac to the end of each of these roads. Under Cul de Sacs, I’ll click on Add, then pick my main riad to add the cul de sac to. I’m going to stick with the defaults in the Cul de Sac edit dialog box, and create a 50′ radius cul de sac with 25′ radius returns.

I can edit the profile at this time, but won’t. So I’ll click OK and do the same thing for the side road. Then I’ll click on Process again and see how long it takes to add the two cul de sacs.

16 seconds, and that was me telling it which TIN file to overwrite as it was triangulating and contouring the new road surface.

Here are the final results:

Now, for kicks and giggles, I’m going to go in and edit the profile for my main road. As a matter of fact, I’m going to SEVERELY lower it in the area of my side road intersection. Here’s what I’m doing:

Think you’ll see a change? Well, I’ll save the profile and re-process the road network and see what happens to my final output:

After the re-process (which took less than 10 seconds….), here are the final contours:

Very nice….but even better is clicking on the Report button – that gives me this:

In case that’s hard to read, here’s a cut and paste of that info:

Process Road Network

Road Network File: C:\Carlson Projects\RoadNET\ROAD\roadnet.rdn

Total Cut : 7152.7 C.Y.
Total Fill: 362.6 C.Y.
Total LEFT SUBGRADE1 – Pave Bottom: 411.4 C.Y.
Total LEFT SUBGRADE2 – crushed rock: 464.8 C.Y.
Total RIGHT SUBGRADE1 – Pave Bottom: 559.6 C.Y.
Total RIGHT SUBGRADE2 – crushed rock: 633.2 C.Y.
Total LEFT CURB – CONC: 91.8 C.Y.
Total RIGHT CURB – CONC: 67.1 C.Y.
Total LEFT SUBGRADE1 – Pave Bottom – Series 1: 33.8 C.Y.
Total LEFT SUBGRADE2 – crushed rock – Series 1: 23.8 C.Y.
Total RIGHT SUBGRADE1 – Pave Bottom – Series 1: 0.0 C.Y.
Total RIGHT SUBGRADE2 – crushed rock – Series 1: 0.0 C.Y.
Total LEFT SUBGRADE1 – Pave Bottom – Series 2: 12.1 C.Y.
Total LEFT SUBGRADE2 – crushed rock – Series 2: 8.5 C.Y.
Total RIGHT SUBGRADE1 – Pave Bottom – Series 2: 0.0 C.Y.
Total RIGHT SUBGRADE2 – crushed rock – Series 2: 0.0 C.Y.
Total SUBGRADE1 – Pave Bottom: 181.4 C.Y.
Total SUBGRADE2 – crushed rock: 181.4 C.Y.

Automated quantities anyone?

So what’s the good news here? Carlson Civil runs on top of Civil 3D. If you’re on standalone seats of Civil 3D, you can buy just one license of Carlson Civil and use it networked so that everyone can use it (face it, you’re not designing roads ALL the time.) It’s pretty inexpensive, relatively speaking. Best of all, it fills in one of those feature gaps with Civil 3D that give us such a headache.

Speaking of headaches, I’m done for the day. Have fun!


  1. Sounds like you may need to start a blog on Carlson products. is available(as of 9:58PM 3/6/07)…I checked. 😉

  2. seant says:

    is it possible to convert the model to a civil 3d corridor object when it is complete?

  3. I have to admit, I’m impressed, only in that you slogged through it. IMO, any solution built on top of C3D should use the native objects, not create their own. Creating an object that requires yet more knowledge is no way to move forward.

    I prefer the Aussie’s solution in that it creates a C3D corridor at the end of the process. I can do a lot of things with a corridor that I cannot do with simple objects, even native Acad ones. This is a better solution IMO.

    I think you just have a man-crush on Carlson since they’re surveyors like you.

  4. Jason Hickey says:

    James – I really think you’re right. Mostly because I was driving in to the office this morning wondering how I was going to create cross sections with this new roadway.

    I see this as a fit for some of my clients, not all of them. Believe it or not, I’ve had customers reject corridors completely because of intersection design. Some (granted, only a few) just want to get quantities and a surface and are not interested in what nice things a corridor can do.

    I’ve seen the Aussie product, but have yet to really investigate what it can do – to the point that I didn’t know until reading your comment that it created a corridor at the end of the day. To me, that’s vastly more important from many standpoints.

    Again, only showing an alternative. I’d hope people can research and figure for themselves what is best for them.

  5. Matt Kolberg says:

    Guys, I heard rumours that the next version of ARD will create ITS OWN corridor type object. We’ll see if that’s actually true or not when the time comes.


  6. Matt Kolberg says:

    Ok I just read Angel’s post…and re-read Jason’s last comment. Apparently the new ARD CAN create a C3D corridor…or at least that’s what I read.


  7. shane.ororke says:

    Some clarification, and an offer to learn more:

    CORRIDOR-EZY does output Civil 3D profiles (with single button click to create/update all profiles) and enables the generation of Corridor objects in Civil 3D (singly or as multiple baselines).

    You create one assembly only, then feed the design profile for each alignment through that assembly – we create a Civil 3D corridor including all trimming and road extensions into the intersections.

    Intersection match-in is guaranteed for the ‘side’ roads and will update the Civil 3D profiles.

    Curb returns, cul-de-sacs and knuckles are all able to be created by CORRIDOR-EZY using simple design inputs, with the ability to adjust and review at any time (with dynamic updates of horizontal alignments and vertical geometry).

    Subgrades are linked with the design surface at the time of creating the cross sections (like Civil 3D subassembly components), so using profile or alignment controls on any part of the cross section will result in the subgrade simply stretching out to match the changes (slope and level relationships are maintained).

    Design using CORRIDOR-EZY is an extremely flexible process and enables further additions to the Civil 3D corridor/s at any time.

    Jason, if you have the time and are interested in seeing CORRIDOR-EZY in action I am more than happy to arrange a Web demonstration for you (and anyone else who is interested). Please send an email to and I will contact you to arrange a presentation at a mutually convenient time.