Preparing Files for a Site Model: Surface Modeling



Using a digital model to prepare cut files for a physical site model using the SURFACE MODELING method. Involves the use of the Rebuild and ExtractWireframe commands before using the SrfPt command to build new triangulated surfaces.
Uses Tool(s)

For this workflow, we will use surface modeling to reconstruct the ground surface, paying special attention to the streets and sidewalks. The surface modeling method allows us to simplify and restructure the geometry of complex surfaces in Rhino. After the surface has been restructured, though, it still needs to be unfolded. This is why the surface modeling technique is often used in conjunction with the unfolding technique.

Since the buildings are fairly regular and rectilinear, it doesn't make sense to triangulate them, so we will ignore the buildings in this workflow. Remember, the surface modeling technique is most useful for dealing with curved surfaces, but is not the most efficient method for dealing with straight surfaces.

The physical model will be made out of paper and will be at 1/8" = 1'-0" scale .


Before starting to prepare cut files, there are several steps to take.

Scale the Model

Use Save As to save the Rhino file as a separate file. This file will be used only for the preparation of files for physical modeling. Then, make sure no layers are locked and that no objects are hidden. Use the SelAll command to select all objects, and scale it to 1/8" = 1'-0".

Ground Surface

The ground surface has already been prepared for you using this workflow . The ground surface is now a closed polysurface (instead of a floating plane) and is ready to model.

Surface Modeling the Ground

Keep in mind that the surface modeling method is primarily useful for curved, complex surfaces. It is unnecessarily time-consuming and complicated for simple, straight, planar surfaces. For this reason, we will only surface model part of the ground surface, before unfolding it. In this workflow, we will focus on the roads and sidewalks. To isolate these surfaces, Explode the ground and use Control+Click to de-select these surfaces. Then type Join to join the rest of the ground surfaces back together. We will now individually model the road and the sidewalk (you can temporarily Hide the other surfaces).


Select the road surface and type Rebuild . The dialog box allows you to specify the new number of X and Y points. Change these numbers and use the Preview option to see the resulting changes. These numbers will differ depending on the size and geometry of the surface. Adjust the X and Y points until the gridlines seem reasonably spaced apart. If they're too close together, the process will take an obscene amount of time, but if they're too far apart, the geometry will be very inaccurate. Try to find a middle balance. Note: because this surface was initially split, the "rebuild lines" will extend past the surface because they are rebuilding the original geometry, before the split. This is okay, do not worry, it just means that you'll have to increase the numbers to a higher point.

Extract Wireframe

Now, select the surface and type ExtractWireframe . The isocurves--the gridlines that you just manipulated--will now become actual curves in Rhino. Create a new layer called "Gridlines" and place these curves on that layer. Turn off the "Roads" layer so that only the gridlines are remaining.

Alternative to Rebuilding

As another option, you can use the Contour command in both axes. This is comparable to using the Rebuild and ExtractWireframe commands, and both methods are equally valid. The Contour option might be preferable if you know the exact spacing between gridlines that you wish to achieve (as opposed to rebuilding, which focuses on dividing the object into a specific number of sections). The only negative to this approach is that it may not provide accurate contour lines for the perimeter edges of the surface.

Build New Surfaces

Create a new layer called "Triangulation" and type the SrfPt command. In each box where the gridlines cross, create 2 triangular surfaces by selecting 3 intersection points as the corners. Repeat for the rest of the gridlines. When finished, Join all surfaces together to form a new polysurface.

Repeat the entire process with the sidewalk surface. Then proceed to the unfolding stage.

Folding Direction + Design Intent

Also consider how the wireframe or contour command affect the final model - both the overall form and precision. More contours or folds will create a model that more closely resembles the actual form, but may become incredibly tedious to fabricate. Consider areas that are long and skinny that may be better as long horizontal folds, or large almost-flat expanses that could be reduces to less folds. Below is an example of the road being split into two different folding orientations.

Unfold the New Ground Surface

Once the ground is a closed polysurface again, the quickest way to unfold it is to use the UnrollSrf command. However, this command is not perfect, and often times it will result in overlapping edges (depending on the complexity of the polysurface). In these cases, we have to manually perform the same action using the Explode and Rotate3D commands.


To use this command, select the ground and type UnrollSrf . In the command line, make sure that you do not select the Explode option, as this will separate all of the individual surfaces. Again, the purpose of the unfolding method is to minimize the number of cut+glued edges, and maximize the number of folded edges. In order for this to work, the surfaces need to remain as intact as possible after they are unrolled. Since this particular surface is very complicated, turn the Labels option in the command line on so that there's a guide to what edges should be joined.

Generating Linework

In the top view, the flattened surfaces will appear. If it works successfully, there will be no overlapping edges. The next step is generate linework from these surfaces by using the Make2D command in top view. Then, it's very important to differentiate the lines that will be cut all the way through the material, from the lines that will only be cut partially through to create a folded edge. Create two new layers called "Cut" and "Fold." Add all of the perimeter lines to the "Cut" layer. Add all of the interior lines to the "Fold" layer.

Manually Unrolling

In many cases where the object is complicated and/or has many individual surfaces that make it up, the UnrollSrf command will not work perfectly. The resulting linework may have multiple overlapping edges, which makes it impossible to cut out. In these cases, there are two options to proceed.

Unroll Portions

Split the original polysurface into smaller sections by using the Explode and Join commands. Then unroll these sections individually using the UnrollSrf command. Remember to label which edges will be joined, so you don't lose track of the pieces. This will probably be the most successful technique for this particular ground surface.

Explode and Rotate3D

It's also possible to do the entire unfolding process manually, which gives you the utmost control over how the surface is unfolded. Explode the polysurface. Select individual surfaces that you want to rotate, and use the Rotate3D command in the perspective viewport. The start and end of the rotation axis should be the endpoints of the folded seam, where the surface connects to an adjacent surface. The first reference point should be the current angle of the surface (click a third endpoint), and hold down shift to click the second reference point flat along the X axis (you may need to switch to the front or right viewport for this).

Finished Cut Files

Arrange the unfolded ground surface(s) in a row with minimal space between. Use the Text tool to label each object so keep track of the pieces. Keep the labels on a separate "text" layer so that they can be turned off later if needed.


Save the final result as a Rhino file (.3dm) and upload to your bSpace dropbox by the end of section.