How to Draw Roads for Large Urban Site Diagrams in Rhino

Possibly the most tedious task I encountered as an undergraduate student in architecture school was drawing road diagrams for large scale urban site plans. The tracing of lines, offsetting for road width, and filleting curbs into rounded edges late into the night nearly drove me to insanity the first time around.

The second time I encountered this problem, as a more seasoned graduate student, I took a bit of extra time to figure out a way to speed up the process. Below is a description of my method using a combination of Rhinoceros3D and Adobe Illustrator to automate the road width and filleting portion of the process.

The first step is to draw the centerlines for your roads. You can do this by either tracing the centerline of roads from a Google satellite image, creating your own network of roads, or by using the free city files offered by cadmapper.com. If you intend to have more than one road width, separate your centerlines into separate layers based on intended road width.

Next you will have to select the roads and export it to Illustrator. Once in Illustrator you should assign stroke weights to your lines to match the desired width of your roads.

Now select all of your roads and use the Outline Stroke command from the Object -> Path menu.

Then Unite the lines together by selecting them all and clicking unit in the Pathfinder dialogue box. Then hit Shft+X to switch the color fill for an outline stroke.

You can then export all of your linework as an AutoCAD Drawing (*.DWG)

Next drag the .AI file into the Rhino environment, and select the "Import" option on the File Options dialog box that pops up. Click okay through the default settings.

I then like to explode the linework then select all of the inner lines, excluding the lines directly around the perimeter of your drawing, then join it all back together.

If you have only one road width, simply select FilletCorners and set the radius to the desired dimension. If you have multiple road widths, you will also want multiple radii. Without getting into Grasshopper or Python for Rhino, the simplest way to do this is to select everything and set the radius to your most common curb radius.

Then selectively go in and change the radius for the less common ones manually using fillet curves repeat command.

Then just rejoin your perimeter curves to the rest of your linework, add a hatch and voilà, in about 20 minutes you have yourself a nice clean road graphic for all of your large scale urban representations.