3D Modeling from 2D Drawings in Rhino


6-finishing touches.JPG

This workflow emphasizes precision, accuracy and organization to create a finished, "water-tight" 3D model. Using floor plans and a section as a framework, we will model the contents of a building. Layer management is emphasized.
Uses Tool(s) Rhinoceros


Organizing Content for Modeling

The plans and section within this file are of "Stone House" by Herzog + De Meuron. We will be using these drawings as the basis for modeling the building in 3D.

Before beginning, study the plans and their relation to the section. Notice, they are aligned along the Y axis, there are three floors, a flight of stairs, an oddly shaped roof, etc.

Based on our observations, we need to organize the three floor plans and section so they refer to each other in the Z dimension. In other words, we need the floor plans to stack upward and in strict relation to the dimensions of the section.

In preparation, lets copy the drawings so we can have two sets; one to work on and the other to refer back to.

Make sure your "base image" layer is locked, and in ORTHO mode copy the plans and section to the side of the originals.

Copying Drawings


Rotate 3D

To begin, we need to rotate the section so it stands upward along the Z axis. In PLAN view select the section and type Rotate3D . Now, following the command sequence with the top command line, select the start and end of the section's rotational axis (the length of the ground plane), the first then second reference points, (the height of the building from ground to roof), and rotate the building in RIGHT or PERSPECTIVE view. Remember in order to ensure a 90° rotation to either work in ORTHO mode or to hold the SHIFT KEY while rotating.

Section Rotated 3-Dimensionally


Construction Lines

In order to stack the "Stone House" plans accurately and efficiently we will need to draw construction lines extending from the relevant locations of the section. To keep our document organized, double click on the "construction" Layer. Now, within the PERSPECTIVE VIEWPORT and starting from the leftmost corner of the ground plane of the section, draw a Line that extends over and beyond the floors plans. Make sure to work in ORTHO MODE or hold the SHIFT KEY while drawing. Also, make sure to use your OSNAPS (in this case make sure to have END activated).

Copy the construction line previously drawn to the ceiling (or bottom plane of the second floor slab), then to the top corner of the same floor slab. Continue to Copy the construction line for the remaining floors and roof slab.

Next, from the bottom leftmost corner of "Floor 1" plan, draw a Line that extends straight up (at a 90° angle with the ground plane). You can ensure a perfectly vertical line while working within the Line command. Directly after typing Line , notice that there are several option indicated within the command line. Type V to select Vertical. Select the leftmost corner and draw a line that extends beyond the top of the previously drawn sections. This is a quick method of avoiding interference from your OSNAPS, which can hijack the previous Vertical command.

Now you will have construction lines that intersect creating a frame to move the plans vertically within.

Construction Lines Drawn

6-construction final.JPG

Moving the Floor Plans

Working within the PLAN VIEWPORT, select "floor 2." In order not to select the construction lines, while holding down left click, sweep downward over the floor plan from the upper left to the lower right. Switch over to your PERSPECTIVE VIEWPORT and Move it from its leftmost corner to the intersection of your vertical construction line and the construction line extending from the top surface of the second floor slab. Make sure to have the INTersection OSNAP selected.

Repeat for the "floor 3." Note: Make sure to move "floor 3" from the corner of the building and not the roof. The corner will be defined by its intersection with the overlapping construction line.

We can confirm that our plans are properly aligned through viewing them in all of the available VIEWPORTS

Plans Stacked Vertically & Aligned

6-plans stacked.JPG

Moving the Roof

Within the LAYERS PANEL find the "roof" layer and RIGHT CLICK on it. Select "Select Objects." Notice that the roof is highlighted.

Now, with the roof selected, Type Move . Notice that there is a Vertical option within the command line. Type V . This will activate the vertical movement of the selected object.

Making sure that your NEAR OSNAP is selected, click on the topmost construction line. Because the Vertical option is selected, the roof will automatically move directly upward to the chosen height; in this case the uppermost roof height.

Check your other VIEWPORTS to confirm its alignment.

Roof Moved & Aligned

6-roof moved.JPG

Hiding Extraneous Objects

Within your RIGHT VIEWPORT, and while holding down left click, sweep upward over all of the linework above the construction line that extends from the bottom surface of the second floor slab. For efficiency, remember to sweep from the lower right to the upper left. With these objects now selected, type Hide . Now we can concentrate on the '"floor 1" plan.

Also, Hide the original drawings that we copied.

Extraneous Objects Hidden

6-hiding floors.JPG

Extruding Floor Plans

Now, to ensure that we are preserving the organization of our drawing, double click on the "1 concrete" sublayer found within the "floor 1" layer. A checkmark will appear within the layer indicating that all objects subsequently introduced will be identified with it.

Right click on the "1 concrete" layer and select "Select Objects". Type ExtrudeCrv . Using your mouse click on the construction line above. Using your NEAR OSNAP can be helpful in this situation.

Continue with the remaining sublayers within the "floor 1" layer. Remember to ExtrudeCrv only after double clicking within the layer that you are extruding from.

Floor 1 Extruded

6-extruded 1stflr.JPG

Notice how the extruded surfaces are open at the top. We can quickly closed them by selecting them and typing Cap .

Floor 1 Capped

Creating Floor Slabs

If we type Show , all of our hidden objects will appear and we will see a gap between the extruded "floor 1" layer and the linework of "floor 2." This is where a concrete floor slab is to be modeled.

Floor Slab Space

6-floorslab needed.JPG

Before modeling a floor slab, create a new layer, title it "floor slab," and double click it in order to work within it. And Hide any obscuring linework / objects.

Select the Box tool from the left main toolbar. It is the icon in the shape of a cube. After selecting, notice the options within the top command line. Type P for 3Point.

In PERSPECTIVE VIEW, zoom into a corner where you will begin to draw your floor slab. Follow the prompts within the command line by selecting the points for your two edges, the width, and the height.

Floor Slab

6-floor slab.JPG

Notice in the section that the second floor slab extends beyond the first floor plan. In order to reflect this within our model, select the floor slab that we just modeled and type Scale1D .

Following the prompts within the main command line, select the origin point (the far corner), the first reference point (the opposite corner of the modeled floor slab), and the second reference point (the end of the floor slab within the sectional drawing).

Scaled Floor Slab

6-flr slab scaled.JPG

Extruding Floor 2

Before we begin to ExtrudeCrv "floor 2" notice that we have stairs drawn in our section.

Copy the stairs from the section over to the "floor 2" plan. Make sure to work in ORTHO MODE and with relevant OSNAPS activated.

Stairs Copied

6-stairs moved.JPG

ExtrudeCrv the stairs to their appropriate width. Make sure to work within the "2 stairs" sublayer of the "floor 2" layer.

Stairs Extruded

6-stairs extruded.JPG

Cap the extruded stairs

Stairs Capped

6-stairs capped.JPG

Continue to ExtrudeCrv and Cap all relevant elements of "floor 2." Also, after you have extruded all of the necessary layers, you can type SelPolysrf in order to selected all of the extruded curves, or polysurfaces and Cap them all at once!

REMEMBER: Window sills are not extruded upward and doors are not properly drawn for modeling purposes.

Next, within your "floor slab" layer, create a third floor slab.

Floor 2 Extruded & Capped with Floor Slab (Ghosted View)

6-floor 2 ghosted.JPG

Extruding Floor 3

Before proceeding on extruding the wall elements of "floor 3," we have a few problems to address.

First, take a look at how the third floor access to the stair case is being obstructed by the floor slab.

In order to correct this, select the object within the "3 stairs" sublayer from the "floor 3" layer. ExtrudeCrv the selected rectangular closed curve downward and to the same thickness of the floor slab beneath. With OSNAPS on you can easily perform this by selecting the construction line directly below.

"3 stairs" Layer Extruded

6-stairs layer extruded.JPG

Next, type Boolean2Objects and follow the prompts within the command line: Select the floor slab and the extruded "3 stairs" object (in any order). After you have selected them, notice how the objects have changed. Following the prompts within the command line, left click until the condition you are seeking becomes visible, and to finish type the RETURN / ENTER KEY.

Stair Case Booleaned

6-stairs booleaned.JPG

There is another irregular condition that we need to address. There is a concrete trellis that must be extruded downward. This is visible in the section and the recently created model. Select the trellis (closed curve) and ExtrudeCrv downward to meet the pillars below.

Concrete Trellis Needed

6-downward extrusion.JPG

Trellis Extruded & Capped

6-trellis capped.JPG

Lastly, within our section, we can see that there are windows that span a significant portion of the third floor of the building. We can begin to define this condition by moving and then extruding the "3 windowsill" sublayer.

Working within the "3 windowsill" sublayer, "Select Objects" and Move vertically ( V from the options within the command line) to the height of the windowsill within the section.

ExtrudeCrv to the height of the windowsill (.03 meters) and Cap .

Windowsill Moved, Extruded & Capped

6-windowsill moved extr capped.JPG

Show hidden objects and begin to ExtrudeCrv and Cap the remaining elements of "floor 3."

REMEMBER: The trellis portion of the "3 concrete" sublayer has already been extruded. Make sure to deselect it (CONTROL + SELECT) before extruding the "3 concrete" sublayer.

Floor 3 Extruded & Capped

6-third floor extruded.JPG

Adjusting Window Heights

Now that we have the basics of our model defined we can begin to see that there are several inconsistencies with its section. Namely, on Floors 2 & 3, there are walls beneath the windowsills.

Inconsistent Model


First, and like we previously did on "floor 3", within the "2 windowsill" sublayer, "Select Objects" and Move them vertically ( V ) to their proper height. Next, Extrude and Cap them appropriately.

Windowsills Moved, Extruded & Capped

6-windowsills adjusted.JPG

Next, take note of how the window frames are too long and overlap now with the windowsills. To correct, within the "2 windowsill" sublayer, "Select All" and Scale1D . Your origin point will be the top of the frame and your second reference point will be the bottom of the windowsill.

Note: There are two narrow windows that are the full height of Floor 2. Either deselect their respective window frames before scaling the others, or Scale1D them back to their original height.

Narrow Windows Not To Be Scaled

6-windowsills correction.JPG

Repeat steps for Floor 3 window frames.

Modeling Absent Walls

Now that our windows are properly placed, it is clear that there are several walls missing from the model. This is because they were not legible within our floor plans. We can easily fill in the empty wall space with a couple of familiar commands.

It is smart to work from the inside out here. First, deactivate the "2 stone wall" sublayer.

"2 Stone wall" Deactivated

6-stone wall deactivated.JPG

Now that we can clearly see the corrections needed for the "2 interior wall" sublayer, zoom in to a window and select the Box tool from the left main toolbar. After selecting type P for 3Point and through placing points, model the void space underneath the window of your choosing. And make sure that you are working within your "2 interior wall" sublayer.

Interior Wall Corrected

6-interior wall modeled.JPG

Next, activate the "2 stone wall" sublayer and repeat the Box tool operation underneath the same window as before. Make sure to work within the "2 stone wall" sublayer.

Stone Wall Corrected

6-stone wall corrected.JPG

Copy both the "2 interior wall" and the "2 stone wall" segments and place them where needed.

REMEMBER: We will have to subsequently Rotate and Template:Scale1D some of them to fit into their areas.

Wall Segment Copied

6-wall copied.JPG

Wall Segment Rotated & Scaled

6-wall rotated scaled.JPG

Continue these operations for Floor 3. And work in the correct layers!

Modeling the Roof

The roof is a complex geometric form that will take some more advanced problem solving to properly model. In order to get started, lets hide all extraneous objects in an effort to isolate the roof in both plan and section.

Roof Isolated

6-roof modeling intro.JPG

From the section it is apparent that the roof slopes downward towards the center of the building. Using this slope is instrumental in modeling the "Stone House" accurately. We need to use the curves from our section but do not want to modify to such a degree that we cannot use it for unforeseen future needs. Lets copy what we need; namely the concrete portion. Go ahead and Hide the remaining linework.

Next, draw a Line that completes the roof portion of the section. Trim away the below portion of the section to further isolate the important pieces in building the roof.

Join the remaining curves into a "closed curve."

Concrete Portion of Section Copied, Trimmed, Joined & Isolated

6-concrete roof trimmed and isolated.JPG

Next, ExtrudeCrv and Template:Scale1D the closed curve in order to fit within the extents of the "roof" layer.

Closed Curve Extruded & Scaled

6-roof extruded.JPG

Now we need to imprint our roof plan into our section extrusion. Type Project and follow the prompts indicated within the command line: First, select the curves that compose the front lip of the roof, and then select the extrusion as the surface to project to.

Roof Plan Projected

6-roof projected.JPG

Hide the extruded surface and draw Line s in order to define the 4 panels that define the new form. Make sure that they are vertical!

Completing the Projected Form

6-roof line drwn.JPG

Type PlanarSrf and follow the prompts. Continue the Planar Surface command for all 4 projected panels.

Planar Surface

6-roof planr srf.JPG

Select the 4 new panels and Join them. Next, with your new joined surfaces selected type Cap .

Capped Roof Lip

6-roof capped.JPG

Mirror the new capped roof lip 90° so its mitered edge connects with the original piece.

Mirrored Roof Lip

6-roof mirrored.JPG

Draw a Line that perpendicularly overlays the mirrored roof lip. Make sure that the line is planar with the ground (construction plane), not the sloped edge of the roof lip. Draw the line close to the open mitered edge of the mirrored roof lip.

Perpendicular Line

6-roof line.JPG

ExtrudeCrv the line downward so it transects the mirrored roof lip. Make sure that the extrusion extends below the mirrored roof lip.

Line Extruded

6-roof line extruded.JPG

Trim the mitered side of the mirrored roof lip. Subsequently delete the recently drawn line and extrusion.

Mirrored Roof Lip Trimmed

6-roof trimmed.JPG

Now we want to Scale1D this mirrored roof lip to the edge of the extents of the roof plan. Unfortunately we cannot because the Scale 1D command only works accurately with rectilinear objects and we have an irregularly shaped one.

We can however, create a rectilinear object to scale and join to our existing roof lip.

Type DupEdge and duplicate the four edges that compose our recently trimmed section of the mirrored roof lip.

Duplicate Edges


Now, Join our new lines and ExtrudeCrv them to the extents of the roof plan. Now Join them to the existing mirrored roof lip and Mirror the new unified piece to the other side of the roof plan.

Roof Lip Extruded, Joined & Mirrored

6-roof extruded joined mirrored.JPG

Show the original extrusion of the concrete closed curve from the section and Trim the excess of the roof lip extrusion away.

Roof Lip Trimmed

6-roof trimmed shown.JPG

Project the three lines representing a gabled roof in plan to the extruded "concrete" surface beneath. After projecting the lines, Hide the "concrete" sublayer extrusion.

Projecting Inverted Gable Structure

6-roof projected 2.JPG

Explode and delete any unwanted lines. Next, like we did before with the the roof lip, draw new connecting Line s where needed in order to delineate the panels.

Edges Created and Defined for Inverted Gable Structure

6-roof edges defined.JPG

PlanarSrf the edges that compose the 6 panels for the gabled roof structure. Start with the 3 panels on the bottom.

Planar Surface - Bottom 3 Panels

6-planarsrf bottom.JPG

Planar Surface - Complete

6-roof planar srf complete.JPG

When we Show the hidden layers, we can see that the "floor 3" layer extrusions are penetrating the roof. To correct, Hide the top panels of the roof and Trim the penetrating objects away using the bottom roof panels as your cutting object.

Floor 3 Extrusion Penetrating Roof

6-complete trim.JPG

If you are having trouble trimming certain object, Join all of the roof objects and try again. Also, sometimes objects accidentily split instead of trim away. To remove split fragments, simply Hide the "roof" layer in order to view the fragments and delete them.

Trimmed Fragments for Deletion

6-trimming detail.JPG

Now, using the tools that we have explored throughout our creation of the inverted gabled roof, we can begin to manipulate the existing "floor 3" layer extrusions in order to better embed the roof structure into the overall building.

Unifying the Roof & Building

6-finishing touches.JPG

Cleaning up Curves

Now that our drawings have been modeled, it is wise to get rid of the "curves," or lines that are hidden among the surfaces of our model. This is because when we eventually cut this model and generate line drawings from it, we do not want overlapping lines.

Type SelCrv . This will highlight all of the curves within our model. Now with them selected, simply delete.

Selecting Curves for Deletion