Rhino Modeling Workflows in Architecture
Rhino Modeling Workflows in Architecture
Rhino Modeling Workflows in Architecture
Permission to make digital or hard copies of part or all of this work for personal or classroom use is
granted without fee provided that copies are not made or distributed for profit or commercial
advantage. To copy otherwise, to republish, to post on servers, or to redistribute to lists requires prior
specific permission. Request permission to republish from: Publications, Robert McNeel & Associates,
3670 Woodland Park Avenue North, Seattle, WA 98103; FAX (206) 545-7321; email
[email protected].
Table of Contents
Preface 3
Resources 113
Support: 113
Workflows: 113
Rhino in Architecture: 113
2
Preface
Digital modeling has taken leaps and bounds in the past few decades. From basic tools used to
optimize drafting, to an intelligent medium that is changing how we design and build. Digital
means are infiltrating every single aspect of design and construction today. This fast pace
development of technology, and the inclusion of end users in the making of digital tools, is
forcing a volatile and fast-changing platform with numerous workflows. In commercial software
available today, we can distinguish four dominant approaches to digital modeling: direct,
algorithmic, object-based and parametric. Rhinoceros and its plugins support all four modeling
methods, which makes the task of presenting Rhino to new users very challenging. The
versatility of Rhino and the ease in which they can be extended through plugins means that it is
very hard to be specific about how Rhino is used, by who and when.
While contemplating best ways to present the Rhino modeling environment to architects, I
thought it might be best to base the presentation on modeling methods and workflows, rather
than a description of a finite set of tools. My hope is that this approach will promote critical
understanding of the tools, and encourage users to be creative in how they use Rhino. This is
perhaps the best way to understand Rhino’s best potential, but also help challenge and push it
in a positive direction.
The content is presented in three parts. The first part presents common modeling vocabulary,
and how it manifests in Rhino. The second part, which is the bulk of this document, is about
modeling workflows in architecture using Rhino core modeling tools. It covers four critical stages
of modeling: setting up the modeling environment, concept modeling workflows, detailed
modeling workflows, and prototyping. The third involves a brief discussion of digital modeling
methods in architecture, and how Rhinoceros, Grasshopper and other McNeel plugins fit within
these methods.
While this is by no means a comprehensive manual, I hope that it will serve as an introduction to
help getting started with Rhino and Grasshopper.
Rajaa Issa
Robert McNeel & Associates
January, 2021
3
Part I: Modeling vocabulary
3D modeling is the process of using computers to create, reflect on, and share three
dimensional forms. Computers use geometry as the primary conduit to represent design ideas
and use data to attach information to the geometry. Most 3D modeling applications share
common vocabulary and the very first step to learn how to model within any environment is to
understand its vocabulary. That includes workspace organization, access to different tools,
interface and modeling controls, what geometry is supported and how it aggregates and how
data is applied and managed. Visualization, analysis and presentation of 3D forms is an
important part of any modeling application. Models are stored and exchanged using files and file
formats are either specific to the application or more widely used across multiple ones. This
chapter discusses the modeling vocabulary in Rhino.
Workspace interface
Once you open the Rhino application, you will see a screen with a graphic area in the center
(viewports) surrounded by menus, toolbars, controls and panels. Most of the workspace
elements can be rearranged, removed or expanded.
Title Bar Displays the filename and the Rhino version used.
4
Menu Bar Access commands, options, and help through text-based drop-down menus.
Command Prompt Area to type and run commands, and see options and other information displayed by the
command while running or after it exits.
Command History Displays the most recently used commands and all their prompts.
Tabbed Toolbars Groups are containers with one or more toolbar, with a tab at the top for each toolbar.
Sidebar Toolbar to access common commands and options related to the selected tabbed
toolbar.
Tabbed Panels Rhino controls such as layers, properties, materials, lights, display mode, help and more
are displayed in panels with tabs. Tabbed panels can be arranged side by side, or
vertically.
Layer and Property One of the important panels that can be tabbed. The other important panel is the
Panels properties panel. Most users have at least these two panels visible.
Status Bar Displays the coordinates of the pointer, the units and the current layer of the model,
toggles and other options.
Selection Filter Toolbar Used to narrow down what geometry can be selected.
Viewport Tabs Click to make active a viewport. Also, use the “+” to add more viewports and Layouts
(paper space).
Standard Viewports Displays different views of the model within the graphics area. Viewports can show a
grid, grid axes, and world axes icon. Any number and combination of viewports can be
arranged within the graphic area. The default viewport layout displays four viewports
(Top, Front, Right, and Perspective).
Viewport Title Display the viewport projection. Click the arrow to access viewport settings through the
drop-down menu.
Gridlines and Axes Used to aid modeling. Their visibility, colors and other settings can be customized.
World Axes Icon Used to aid modeling. It changes when rotating the model.
Description of Rhinoceros interface elements
User interface for Windows and user interface for Mac video tutorials
Commands
Commands are actions or functions that perform specific operations. For example, ”Circle” is a
command that helps create and add a circle to the 3D model. Rhino allows invoking the same
commands in many different ways: menus, toolbars, command line and interactively through
widgets, mouse and keyboard events. For advanced users, Rhino also supports creating new
5
custom user commands and toolbars through macros and scripting. The different ways to
access Rhino commands allows users flexibility to access in the way they are most comfortable
with and to help increase their productivity.
Command Line
This is a widely used method to access commands in Rhino especially among users familiar
with Rhino and the command set they commonly use. Commands are run by typing their names
(or the first few letters of the command) in the Command Prompt. Typing in the command
prompt shows a list of all commands starting with the same letters. Frequently used commands
show on top and it’s also possible to repeat recently run commands. You can press “Enter” to
run the last command (or right-mouse-click), and press “Esc” to cancel a running command.
When inside a command, the command prompt area shows the command instructions and
options. Many Rhino commands do not support dialogs and hence command options can only
be set through the command prompt area.
Figure (14): The command prompt shows options and record steps in the command history area
The command history area shows recent commands and options used. Right-click on the
command line to view recently used commands. You can Press F2 to view the command history
and options used.
6
Figure (15): Right-click on the command area to access recent commands. Click F2 to navigate the last 500.
Menus
You can find most of the Rhino commands in the menu bar. Menus group similar commands
together. There are many submenus within the drop-down menu. Third party plug-ins
sometimes add their own menus to the menu bar. Each menu groups similar commands
together. For example the “Curve” menu includes curve creation and editing commands.
7
Figure (13): Curve menu and submenus include all Curve commands
Toolbars
Rhino toolbars contain buttons that provide shortcuts to commands and options. You can float a
toolbar anywhere on the screen, or dock it at the edge of the graphics area. Rhino starts up with
the Standard toolbar group docked above the graphics area and the Main toolbar as the sidebar
on the left.
Tooltips
Tooltips tell what each button does. To access the tooltip, move your pointer over a button
without clicking it and a small tag with the name of the command appears. In Rhino, buttons can
be set to execute multiple commands and set specific options. The tooltips aslo indicate which
buttons have dual functions as in the following example.
8
Tooltips give hints about what the button command does
Cascading toolbars
A button on a toolbar may include other buttons in a cascading toolbar. Usually, the cascading
toolbar contains variations of the base command. After you select a button on the cascading
toolbar, the toolbar disappears. Buttons with cascading toolbars are marked with a small black
triangle in the lower right corner. To open the cascading toolbar, hover over the black triangle
and LMB click. You can select a button from the cascade toolbar, or peal out by clicking on the
top margin of the toolbar.
Panels
Many Rhino controls are contained in tabbed panels. Open any panel from the Panels menu or
right-mouse-click on the margin of another open panel and check the desired panel. Once a
panel is opened, you can click on its title and drag to dock.
9
Open panels through panel menu or by clicking on the gear of the tabbed panels or right-mouse-click the margin
Help
The help documents the full functionality of any modeling application. Many times the help is
accessible online. The CommandHelp in Rhino displays help topics in a dockable panel. The
help offers detailed description of the commands and short videos that show the workflow. If you
check Auto-update, the help for the current command displays.
10
Help can be set to display help for the current command
To access the entire Rhino help document in a browser window, go to “Help > Help Topics”
menu, or press F1.
Viewports
The 3D modeling space is contained inside special windows called viewports. You can think of
viewports as cameras looking at the same model from different angles. Viewports can be set to
parallel, isometric or perspective projection. To assist modeling, viewports include origin,
coordinate axes and a grid drawn on a default plane called construction plane. Construction
planes are the default plane where geometry is drawn unless coordinates are keyed in, or snap
to some other geometry.
11
Viewports specify camera information and projection
You can customize the viewports and their position to suit your preferences. The position of
viewports is adjustable. To move and resize viewports, drag the viewport title or borders. You
can create new viewports, rename them, and use predefined viewport configurations. To toggle
between a small viewport and one that fills the graphics area, double-click the viewport title. You
can display the viewport titles in tabs if you prefer. The highlighted tab designates the active
viewport. Tabs make it easy to switch between viewports when using maximized or floating
viewports. One unique feature about Rhino is that each of the standard four viewports has a
different construction plane (except perspective, which uses the Top CPlane by default).
With Rhino, you can open an unlimited number of viewports. Each viewport has its own
projection, view, construction plane, and grid. If a command is active, a viewport becomes active
when you move the mouse over it. If a command is not active, you must click in the viewport to
activate it. You can divide your viewport to have multiple viewports with different projections
from Viewport Layouts, then split it either horizontally or vertically. You can go back to the
standard four views.
12
Each view in a viewport is seen through a camera lens. The invisible target of the camera is
located in the middle of the viewport. You can assign different projection, zoom and camera
angles for each of the viewports as needed. To change your view:
1. Click on the arrow next to the viewport title.
2. Select Set View submenu.
3. Choose your preferred view.
Access these steps from the command line using the “_ SetView” command.
Viewport options
To toggle a viewport between parallel and perspective view: Under the properties panel >
Projection > change from Parallel to Perspective to two point perspective.
13
Change view projection
There is a separate undo command to undo and redo view changes. Click in a viewport, press
your Home or End key on your keyboard to undo and redo view changes, or click on Undo/Redo
view changes under the Set View Tab.
Navigation
Navigating modeling space refers to the ability to reach certain parts of your model and be able
to view them up close or from far at any angle and projection. Terms such as “zoom”, “pan”,
“parallel projection” are standard in all modeling software. The computer mouse is usually used
to navigate models along with specialized commands or tools to help quickly get around. Screen
gestures and virtual reality tools allow navigating touch screens and VR.
View navigation
View navigation includes panning, zooming and orbiting. Panning means shifting the view
without changing the camera angle. Rhino Pan command supports panning at any projection by
holding down the left mouse and moving the mouse to Shift. Otherwise, the simplest way to pan
is to hold down the Shift key and drag the mouse with the right mouse button held down (no
need for holding the Shift if you are in a parallel projection view). To zoom in and out, use the
mouse wheel, or hold down the Ctrl key and drag your mouse up and down with the right mouse
14
button down. Orbiting is only active in perspective views. With the right mouse button down,
moving the mouse rotates the view around the center of the view. You can pan, zoom or orbit
your view in the middle of a command to see precisely where you want to select or snap to a
point.
Orbit the perspective viewport and Pan Parallel Viewports Drag with right mouse button down
Coordinate system
All modeling software uses a coordinate system to describe the location of points in space. The
most common one for architectural applications is the Cartesian coordinates. Rhino uses
left-hand Cartesian coordinates with three World planes (XY, XZ, and YZ) that meet the origin.
The location of a point is described with three ordered numbers (tuple). The World origin is
located at (0,0,0). Points in Rhino can be defined in either absolute or relative coordinates. You
can also use polar notation to describe a point.
15
Construction plane Enter x,y,z values to place points relative to the current
coordinates construction plane. You may omit z and y values (they are set to
0 in this case). Examples:
0 = (0, 0, 0) in CPlane coordinates
1,3.5 = (1, 3.5, 0) in CPlane coordinates
1,3.5,6 = (1,3.5,6) in CPlane coordinates
World coordinates When the construction plane is different from the World planes,
you need to specify that your point is relative to World
coordinates by preceding the x,y,z by “w”. Examples:
w0 = (0, 0, 0) in World coordinates
w1,3.5 = (1, 3.5, 0) in World coordinates
w1,3.5,6 = (1,3.5,6) in World coordinates
Polar coordinates Use distance, angle and z value ( from CPlane origin).
Examples:
17<45 (radius<rotation angle)
17<45,8 (radius<rotation angle,z)
Relative coordinates This helps locate a point relative to the last point used.
Suppose last point used was (1,1,0):
@3,4 = 4,5,0 (move 3 units in the x direction and 4 units in the y
direction from the previous point)
Alternatively, use “R” or “r” instead of “@” to express relative
coordinates:
R3,4 (or r3,4)
You can also use relative polar coordinates:
r4<45 or @4<45
Coordinate notation in Rhino
Construction planes
Construction planes (CPlane) are used in modeling software to orient and guide modeling. They
align to the World origin and direction by default but can change to be relevant to the model.
Creating moving and viewing geometry is highly influenced by the orientation of the construction
planes. For example, Points you pick are always on the construction plane unless you use
coordinate input, elevator mode, or object snaps.
Rhino default parallel views each have their own construction plane that is parallel to the view
itself but share the World origin. Perspective view uses World Top construction plane.
16
Four Rhino view construction planes
Rhino supplies a rich set of commands to realign the construction plane, and synchronize other
viewports to follow if needed. If your model has specific directions that you need to use often,
then you should save in the Named construction plane table. This way you can reference
quickly and not have to recreate every time you need them.
17
Exercise: Accurate modeling
For details about accurate modeling in Rhino, please check the Rhino help on this topic.
18
Grids align with construction plane and has major and minor lines
Grid Snap helps snap on grid intersections. You can also toggle Grid Snap on and off by
pressing F9 or typing the letter S and pressing Enter. Pressing F7 hides or shows a reference
grid in the current viewport of the graphics screen at the construction plane.
Osnap
Object snaps constrain the marker to an exact location on an object such as the end of a line or
the center of a circle. These are very important tools to help model accurately and quickly. You
can customize Osnap on one or more constraints. To quickly use one constraint, right mouse
click on it to disable the others. Another right mouse click on it will restore the previous Osnap
state. One special Osnap is “Project”. If checked, your geometry will be projected to the view
construction plane even if you snap outside it.
Object snaps
Smart Track
Smart Tracking uses temporary reference lines and points that are drawn in the Rhino viewport
using implicit relationships among various 3D points, other geometry in space, and the
coordinate axes' directions. Smart Track uses OSnap settings to create the reference lines.
19
Smart Track to create temporary guides and snap on these guides
It is also possible to set up persistent modeling guides that appear when selecting points. Use
AddGuide and RemoveGuide to add and remove these guides.
Selection
Rhino supports different ways to select geometry. Selection commands allow selecting all
objects in the file that are of a certain type or share certain attributes.
Selection tools
A cross or box window selection is used to select geometry by dragging the mouse (with left
button down) around a specific area inside a viewport.
Left: cross window selection from right to left selects objects completely within the window. Right: box window
selection from left to right selects all objects wholly or partially within the window
The selection filter allows isolating certain object types. The window selection would then select
only the types permitted by the selection filter. For example, if only “Curves” is checked, then no
other object type is selected even if they are within the window.
20
Selection filter to isolate types for selection
Gumball
Gumball displays a widget on a selected object which is used to facilitate direct editing. The
Gumball provides move, scale, and rotate transformations around the Gumball origin.
21
Dragging the arrow handle extrudes the
object. With Shift, it extrudes in both
directions.
Gumball functions
Gumball
22
Units and tolerances settings
Rhino modeling involves two types of operations. One is exact, and the other is approximate.
For example, when you create a circle, you specify the exact location in space for the center,
and exact radius. Now if you project this circle on a NURBS surface, this cannot be an exact
operation in NURBS modeling. The amount of approximation is made within some tolerance.
You can set that tolerance in the “Absolute tolerance” field. The smaller the tolerance, the tighter
the model, but it may involve more complex structure, or take longer to calculate. You should
consider what the model will be used for downstream when deciding what tolerance value to
use. If the model is only used for visual representation, or renderings, then tolerances can be
relaxed. If you will pass the model to be printed or analyzed in some engineering application,
you need to check acceptable tolerances in the target application. Angle tolerance is used to
evaluate if two curves or two surfaces are tangent within that tolerance.
Set up tutorial
Geometry
Modelers support various geometry types. The most common types are NURBS and polygon
meshes. NURBS is the primary geometry type in Rhino, and it enables high precision free-form
modeling in very small tolerances.
NURBS geometry
Rhino uses NURBS curves and surfaces as its primary method to represent geometry. NURBS
is an accurate mathematical representation of curves that is highly intuitive to edit.
NURBS Curves
23
It is effective to represent free-form curves using NURBS, and the control structure makes it
easy and predictable to edit. The control structure of a curve consists of a list of points that are
used to construct the curve and also to edit it. Rhino Curve command draws a NURBS curve by
default. For example, here are the steps to create a curve.
NURBS curves
At any point after you create the curve, control points can be turned on (use PointsOn
command) and dragged to adjust the curve interactively (use PointsOff command, or Esc to turn
off control points when done), as in the following.
Other than control points, you need to pay attention to the curve degree. The degree determines
how smooth a curve is. In simple terms, degree 1 creates polylines, degree 2 creates arcs, and
degree 3 creates smooth curves. Higher degrees simply increase the smoothness and are not
very commonly used. The degree of the curve in the example above is set to 3 (the default
when you run Curve command), but there is a degree option that you can change. Here is how
our curve looks when set to degrees 1 and 2 using the same control structure.
It is possible to join two curves together if their end points coincide. The new curve is called
polycurve (or polyline if consists of lines).
24
Notice that joining smooth NURBS curves together creates a “kink”. Deleting the control point
directly on the kink fixes the curve continuity, but you can also join curves smoothly using
commands such as BlendCrv.
Delete control points or join curves with a blend helps create smooth curves from two curves input
NURBS surfaces
Surfaces in Rhino are created using NURBS. You can think of them as a network of NURBS
curves in two directions. They are infinitely thin, infinitely flexible, mathematically defined digital
membranes. Surfaces are represented on screen by either some outline curves plus some
interior curves, called isocurves, or by a shaded picture which makes a surface appear to have
some substance and to show light and shading. How surfaces are painted on the screen is
dependent on the display mode in the viewport, and does not affect the surface in any way. The
important thing to remember about surfaces is that they are defined with great precision at every
point. They are not approximations.
Two NURBS curves can be turned into a surface using Loft command. Notice that the control
structure (the collection of control points) is very similar to the curves used to make the lofted
surface. In the same manner, a NURBS curve can be edited by dragging control points, NURBS
surfaces are modified when dragging control points.
Loft two curves to create a surface preserves input NURBS curve structure when possible
There are a few concepts associated with NURBS surfaces are useful to remember. NURBS
surfaces are rectangular with two main directions referred to as the “u” and “v” directions. The
two directions do not have to be linear, so surfaces may bend in space. It is always useful to
25
change the color of isocurves going in u-direction (red) from those going in v-direction (green). It
keeps you aware of the general structure of your surface.
There is the idea of a “degree” in NURBS surfaces, and it defines the level of smoothness of the
surface. With degree 1 surfaces, you end up with a faceted surface that has creases
surrounding each unit area surrounded by adjacent control points. The higher the degree, the
smoother the surface, but you typically need more control points to achieve it. Commonly used
degrees are 1, 2, 3 and 5.
NURBS surfaces typically have a rectangular boundary. If the surface is non-rectangular, then it
is likely to be “trimmed”. Trimming involves defining a boundary (using curves). The underlying
surface remains rectangular, and you can always untrim the boundary to go back to the original
surface. Adding holes to a surface is the same as adding an irregular boundary. It involves
trimming an inner boundary. Again, the underlying structure of the NURBS surface remains
intact in all cases.
It is possible to join surfaces together to make a bigger object. That happens if the two surfaces
can be joined along at least one edge with the model tolerance. If you don’t plan carefully, the
two surfaces might not connect smoothly. There are tools in Rhino to blend surfaces with the
desired smoothness (or what is technically called continuity). One example is to use BlendSrf
command. It is also possible to blend or round the edges connecting two surfaces stitched
together using a command such as FilletEdge and BlendEdge.
26
Joining two surfaces with or without blending
Solid geometry
Rhino NURBS surfaces are infinitely thin; they have zero thickness. Enclosing a volume can be
achieved with one or more surfaces stitched together as one object. Examples of single surface
breps are spheres and ellipsoids. One problem with such surfaces is that they introduce
“singularity”, when one or both ends of the NURBS surface collapse in one point. Singularities
are not desirable in modeling because they might not intersect well, for example. The Solid
menu includes all primitive forms such as box, sphere, cylinder, etc.
Solid primitives
The more common way to create a closed polysurface or solid in Rhino is to join enough single
surfaces together to enclose a space producing “boundary representation”, or brep for short. A
box is an example of this type of object. We call these objects solids, but it is important to
remember that there is nothing inside them. They are volumes in space enclosed by the
infinitely thin surfaces. If you remove one side of a box and look inside you will see the
backsides of the five surfaces.
Solids are made out of surfaces joined together to enclose a closed volume
27
You can also create breps by extruding or offsetting surfaces. Shell command is another
example of turning an open surface or polysurface into a solid with thickness.
You can create solids from curves as input using commands such as Slab.
Slab command starts with a curve, offset, then extrude normal to the curve plane
There are modeling operations that work only with solids; most importantly the Boolean
Operations. Commands such as BooleanUnion, BooleanDifference, and BooleanSplit ensure
that the results remain solid.
28
Extrusion geometry
Another object type that is related to a polysurface and a solid is the lightweight extrusion
object. Lightweight extrusion objects use less memory, mesh faster, and save smaller than the
traditional polysurfaces.
In Rhino 5 commands like Box, Cylinder, Pipe, and ExtrudeCrv create lightweight extrusion
objects by default. Note that editing these objects might result in converting them to Breps
(typically when the operation result has no reasonable extrusion replacement that can be
found).
Mesh geometry
Rhino creates, edits, and otherwise uses polygon meshes. Polygon meshes are sometimes
used to depict the same type of objects as surfaces, but there are important differences.
Polygon meshes consist of a number, sometimes a very large number, of points in space
connected by straight lines. These straight lines form closed loops of three or four sides, that is,
polygons.
One important thing to know about polygon meshes is that the 3D data only exists for these
points, or mesh vertices; the space between these points is not considered. Dense meshes are
more accurate than very loose meshes, but not as accurate as surfaces.
Meshes in Rhino come in two forms, either as the primary object, or as part of the NURBS
objects. The Rhino mesh menu allows creating both closed and open meshes.
Mesh primitives
If you look at a surface in a shaded viewport, you actually see a polygon mesh derived from the
surface to make a nice image on the screen (you can only shade meshes). All breps, which are
NURBS surfaces joined together in one object, have a render mesh attached to them to help
29
apply shading and rendering. The render mesh can be made more or less accurate based on
speed and resolution requirements. Note that it is relatively easy to go from smooth breps to any
resolution mesh, but it is hard to turn a faceted mesh into a smooth brep.
Render Meshes are generated for NURBS to be able to shade Brep objects on the screen
Typically, you will export mesh data for rapid-prototyped parts. Deriving accurate meshes from
surface models is important. Rhino has several tools to help accomplish this. Rhino supports
mesh operations to edit meshes, boolean and repair.
For surfaces, there are three main geometry types: extrusions, NURBS and meshes. There are
a number of commands in Rhino to convert between surface types.
30
Convert geometry: (1) Curve (2) Extrusion surface (3) Convert to Brep (4) Mesh (5) Mesh to NURBS
Selection tools by object type or attributes are other important tools to help navigate your model.
For example, you might need to hide all points in the model. You can run SelPt, then Hide
commands. You might also want to delete all duplicate geometry in a model. The command
SelDup selects geometry that perfectly overlap (within your document tolerance), then runs the
Delete command. It is also possible to select objects with a certain name or color. Knowing how
to use selection commands can improve your productivity.
31
Selecting duplicate geometry using SelDup
There are also specialized tools to identify specific information about your model. For example,
you might need to zoom to a naked edge in a dense mesh (ShowEdges).
Data
Modeling objects consist of two parts: geometry and data. You can think of data as information
that describes the geometry attributes such as name, color, material, linewidth, group affiliation,
etc. Data also includes custom information specific to the modeler or the workflow.
Rhino objects have attributes that can be accessed and set directly using the properties panel.
Each geometry type has a different set of data and attributes associated with it, and they all
appear as icons under the properties main tab.
32
Curve properties
Users can attach custom data to objects using a user string. You can add functional attributes
such as length or area, but you can also create your own key and value that is specific to your
modeling workflows. For example, you may tag all your roof panels with the “Area” Key and the
area of each panel is calculated and attached. It also changes dynamically when the panels are
scaled. Then you can select all curves that match a certain area.
User text
Rhino plugins can access objects’ user data and attach any information that can inform how
certain objects display or behave.
33
Visualization
Showing your design work to others is an integral part of any creative workflow. Bringing a team
together on the direction of a project and presenting design options to a client are required
throughout the design process in many industries. Rhino includes a variety of options for
visualizing and communicating your work to others. Display modes, interactive rendering and a
myriad of available third-party plugins for rendering ensure you can capture and communicate
your design intent as you create.
Display modes in the Rhino viewport can be selected via the viewport drop-down menus or by
way of the Display panel at the right of the Rhino UI.
34
Display modes can also be created, customized and saved through Rhino Options > View >
Display Modes.
Rendering controls for the default Rhino Render as well as the interactive rendering display
mode called Raytraced can be accessed in the Rendering panel. If you are using a separately
installed rendering plugin in Rhino, refer to that plugin’s documentation for UI locations. The
Render drop down menu > Current Renderer flyout can be used to switch between rendering
plugins.
35
Rendering panel
36
Files
3D modeling applications save geometry and data to a file specific format. When this file format
is ‘open’, other applications can support importing data from that file format. This helps promote
interoperability among different applications. Rhino publishes its 3DM file format in OpenNURBS
allowing other applications to fully support the format.
Some applications support a limited number of geometry types, or specialized object types. This
makes interoperability more challenging, and some data is bound to be lost in the conversion.
Rhino pays great attention to file I/O and supports many different import and export formats,
making it possible to model in Rhino and then export your model to downstream processes, or
import models from other software applications into Rhino. For a complete list of import and
export file types refer to the Rhino Help > Contents > File I/O > File Formats.
37
Part II: Modeling workflows
Workflows in architecture are typically unique to each building, and are highly dependent on the
people and requirements involved. The overall flow contains specific tasks. The following
sections introduce a series of tutorials that are task-based. They are grouped into four sections:
Setting up, conceptual design, detailed design and prototyping workflows. All tutorials use
mostly Rhino, but also Grasshopper and plugins.
Modeling set up
There are a few steps to take before each new project to ensure proper organization and
settings. For this training, you will do the following:
- Create a folder for your model and give a descriptive name. As the project grows, you
may add new folders and subfolders. Also, make sure that files are named to show in
desired order, and describe the content for quick reference.
- Create a new template with appropriate document properties, options, layers and
reference geometry.
- Create your model as close to the World origin as possible.
- Generate scaffolding or reference envelope, guides, and construction planes to match
model orientation.
- Set up views and snapshots for effective visualization.
Project template
A template is a Rhino model file you can use to store basic settings. Templates include all the
information that is stored in a Rhino 3dm file: objects, blocks, layouts, grid settings, viewport
layout, layers, units, tolerances, render settings, dimension settings, notes, and any setting in
document properties.
You can use the default templates that are installed with Rhino, or save your own templates to
base future models on. You will likely want to have templates with specific characteristics
needed for particular types of model building. The standard templates that come with Rhino
have different viewport layouts or unit settings, but no geometry, and default settings for
everything else. Different projects may require other settings to be changed. You can have
templates with different settings for anything that can be saved in a model file, including render
mesh, angle tolerance, named layers, lights, and standard pre-built geometry and notes. If you
include notes in your template, they will show in the Open Template File dialog.
The New command begins a new model with a template (optional). It will use the default
template unless you change it to one of the other templates, or to any other Rhino model file. To
38
change the template that opens by default when Rhino starts up, choose New and select the
template file you would like to open when Rhino starts, then check the Use this file when Rhino
starts box.
To create a template:
1 Start a new model.
2 Select the Large Objects - Meters.3dm file as the template.
3 From the Render menu, click Current Renderer, and then click Rhino Render.
39
To set up the layers and Properties
1 Open the Layers panel and rename Default to Reference and delete the rest of the layers.
2 Open Properties panel and set the camera Lens Length to 50
3 Open Named CPlanes and Help Panels and turn off all other panels
This file with all of its settings is now available any time you start a new model.
Resource 4: Templates
Productivity
You can access existing commands and macros in a variety of ways in Rhino. The following
table is a quick reference of the Rhino common macro key words and characters. For details,
check the wiki article here and the Rhino macros help.
40
Macro character Meaning Example
Enter Simulate pressing “Enter” and is Polyline 1,1 1,9 6,9 Enter
needed to end selection inside or
to end commands ;Same macro using relative coordinates to last point:
Polyline 1,1 r0,8 r5,0 Enter
41
Figure (65): Set Aliases
● Context Menu macros can be added through Rhino Options. Add the following three
macros:
○ Plan CPlane : Plan
○ Perspective : _SetView _World _Perspective
○ 3Pts CPlane : _CPlane _3Point
42
Figure (66): Set Context menu
The context menu appears when you perform a right-click and hold:
43
Figure (68): Set Keyboard shortcuts
● Startup commands: Right mouse click on the command area shows recently used
commands. You can add your choice of command on top of the list by setting the Rhino
options > General, then enter your macros in the top field as in the following:
44
● Toolbars: macros can also be placed inside toolbar buttons. If you prefer toolbar access,
you can create your own custom toolbars to include repeated commands and macros.
You start by creating a new toolbar:
45
Figure (71): Button editor
Appearance
You can also customize the color scheme and fonts in the Appearance and Colors under Rhino
Options. You can always restore defaults to revert to original settings.
46
Figure (72): Customize appearance
Plugins
Professionals typically need specialized plugins to support the core Rhino functionality and
improve productivity. Installed plugins are saved in a special McNeel folder and Rhino knows
where to find them. Rhino ships with many plugins, especially those for file input/output. If you
run the PluginManager command, you can see a long list of plugins
47
Figure (73): Plugin manager
Most third party plugins come as .rhi files. Those are special zipped files that Rhino recognizes.
The user can install .rhi files by double clicking on them, and following the wizard to install for
one user or all users. Rhino places installed plugins in the proper folder and loads when Rhino
opens next time. Rhino also recognizes if there is a toolbar that comes with the plugin and
allows loading it by the user.
If there are plugins that you do not like Rhino to load, you can place load protection by
un-checking the “Enabled” box for these plugins. Next time you open Rhino, they will not load.
You can always check the box again any time.
Concept modeling
This involves generating site and building geometry of the concept. Concept design goes
through multiple iterations and can be modified before reaching the final solution. It is a good
practice to keep a record of the steps to be able to communicate and modify easily. Architectural
projects typically start with a site geometry, then generate mass model, analysis and
visualization. We will cover all of these aspects using step by step tutorials.
48
Site terrain and surroundings
Geographical information is documented digitally with multiple layers of information. This is
usually public information. To be able to bring site data to the modeling environment, and use
relevant information is an important part of design. Designers need to model their site terrain,
surroundings, and place their building in site.
Workflow to import GIS data and generate site geometry: Tutorial: import GIS information and model the terrain
and surroundings
In the GIS tutorial we will be looking at how to acquire, parse and represent data from open
source geospatial data.
Import GIS data for the location with terrain, roads and buildings.
Need to use specialized plugins to import GIS data from surveys or
images. The following link has a workflow that uses a Grasshopper
plugin to turn GIS data into terrain surface and surroundings.
49
Place in Rhino approximate site near World origin
50
To add the terrain photo as a texture map, drag and drop the
Terrain.png image onto the model in any Rhino viewport. This will
create and assign a new material in the Materials panel with the
terrain image set to the color channel. Enter Rendered mode in the
Perspective view to see the applied material.
The terrain image is not sized and positioned correctly yet. Use the
texture mapping section of the Properties panel to adjust it.
● Select the model and click the texture mapping icon in the
Properties panel.
● Change the mapping method used to Planar. There will be
several options prompted within the command line. Choose
‘Bounding Box’ for the sizing and enter through the others
to accept their defaults.
● Next, click the ‘Size to image aspect’ button in the texture
mapping settings.
● Then click the icon to show the planar mapping widget for
adjustment.
Enter the Top view and use Rendered mode to see the terrain
texture. Select the mapping widget which is displayed as a dashed
yellow rectangle. It will be easier to see the widget if you change the
solid color backdrop in the Rendering panel to dark gray. With the
Gumball enabled, either right click the center of it and choose
Relocate Gumball, or use the command RelocateGumball. Position
the Gumball origin to the center of the circular structure in the terrain
image as shown. Use the Shift key while placing the X and Y axis
directions to keep them aligned with the edges of the planar
mapping widget.
Using the Gumball, reposition the mapping widget so that the origin
point is over the center of the circular structure in the model. Next,
scale the mapping widget by clicking and dragging on either of the
scale boxes at the end of gumball axis, hold the Shift key while
dragging to maintain the aspect ratio of the image. Look at matching
the white lines in the model to some existing roadways in the image
as it’s scaled. Once done, you can hide the mapping widget via
Properties using the same icon that displayed it.
51
Cut out smaller part of the terrain and place near World Origin
- Boolean out part of the site with buildings and roads.
- Define site boundary in the flat XY Plane (40*40 tilted 30
degrees clockwise)
You can take part of the terrain closer to the site to model the concept. The following workflow
shows how to take part of the terrain and define site boundaries and a cut region.
Set CPlane to be at the center of the site and save three main
CPlanes for quick reference.
- CPlane > 3Point to set the CPlane to the Top, Front and
Side relative to the site orientation
- In Named CPlane panel, save the new CPlane as Top,
Front and Side
Note: you can set up the site CPlanes in the template file
Create the site cut for the building mass (24*6*6). Calculate the cut
volume (~420 cubic meter).
- Rectangle > Center > 24 > 6 to outline building base.
- Box for the building mass across the site
- BooleanSplit to cut the site
52
Mass model
Generating building geometry involves creating scaffolding, placing sketches, and modeling the
building’s main geometry elements.
Scaffolding is very useful to define reference geometry to help create the building. This
geometry helps define things such as orientation, dimensions, and levels. Scaffolding geometry
can be used as a reference when creating the building geometry.
53
Go back to perspective view to verify that all sketched in place.
Use scaffolding and sketches to create floor slabs and elevation and staircase surfaces.
Generate fill
- ExtrudeSrf platform surface in the -Z direction, then
BooleanSplit with the site to generate the fill solid
- Volume = ~47 cubic meter
Clean up
- Trim rails and platform surfaces
54
Use reference sketches as reference to create main curves of the roof in each picture plane,
then adjust curves to be placed correctly in 3D space. Use the curves to generate the roof
surface.
Trace roof outline in the top picture. Snap to other end curves and
scaffolding when relevant.
- Set CPlane to top picture
- Use Curve to trace one side
- Use ProjectToCPlane to ensure curves on plane (snapping
can cause control points to go off the plane)
- Use Mirror to reflect the curves and ensure symmetry
Test curves’ smoothness with curvature graph for curves. The points
mark significant locations on the curve where curvature changes
from concave convex, or the middle of a long span.
55
Now Patch with starting surface.
Create a plane that goes through the three extreme points and make
slightly bigger. Use that plane as a starting surface in Patch
command.
Repeat steps above to create the patch surface.
Loft surfaces are typically easy to set up, construction curves are in
one direction and are easy to adjust and match. History also allows
more interactive editing until reaching a desirable solution.
Concept visualization
Visualization is an essential part of concept development and communication. Rhino has a rich
set of tools for quick as well as elaborate visualization. Viewport display modes offer quick
access to a variety of effects. They all are working modes where you can continue to edit and
orbit your model. There are also tools to assign materials, create renderings and capture
images.
56
Display modes:
Display mode settings are system specific and are not part of the
3dm file. To export and import customized display modes, use the
Options command and navigate to View>Display Modes. Any
existing display mode can be copied as the starting point for a new
display mode.
Named Views:
Use the icons at the top of the panel to access various named
views functionality. Among these controls you can import named
views from another 3dm, edit a named view by simply rotating the
viewport as well as animate the transition between named views.
57
Display mode features:
58
Arctic mode will override any material assignments and custom
lighting to produce a soft shadowed grayscale display mode.
Materials remain in the file and are still assigned. By default,
transparent materials such as glass will remain transparent in the
Arctic mode. This option is configurable within the display mode
settings.
59
Another display feature that can be quite helpful in concept
visualization is the use of ‘clipping planes’. You can create a
clipping plane with the ClippingPlane command or by clicking the
icon in the Display toolbar group.
Multiple clipping planes can be used together and the views they
affect can be specified in the Properties panel > Clipping Plane
section while selected.
Display modes also have the ability to set how clipping planes are
displayed and whether the clipping plane widget is shown.
60
To save an image of the viewport in any display mode, you can use
the commands ViewCaptureToFile or ViewCaptureToClipboard.
Both commands will offer additional options in a floating dialog.
Here you can change the scale of the image to be greater than the
monitor resolution*. This can be useful for instance if you wish to
ultimately print the image as part of a high resolution poster.
Concept analysis
Analysis helps evaluate the design option and develop the concept. We have done some
analysis above for the roof surface continuity, the overall volume of cut and fill in the site and
building orientation. Rhino supports many workflows for concept analysis and the following
includes some of those.
Shadows study
- Use SetOneDaySunAnimation, then PlayAnimation to view
and RecordAnimation to save.
61
Basic scheduling:
- Building areas of floors, glass, outdoor payments.
- Add data to objects (names and other attributes) in the
object properties panel.
Detailed modeling
Advanced NURBS modeling
As the model progresses from concept to details, changes become more time consuming. Direct
modeling favors a more linear approach where the overall concept is decided upon before
starting to add more details. In Rhino, there are few parametric features, such as blocks and
history, that allow for updates past the concept stage but they are typically more limited.
Algorithmic modeling is more suitable for a nonlinear approach to design where details can be
worked on before the concept is finalized. That is because it is easy to adjust at a later stage.
Workflows past concept stages include advanced geometry, rationalization, visualization and
documentation.
Building details
Building details include circulation, layout, materials, structure and floor plans. This work
involves accurate modeling and considerations of building standards and material specification.
62
Create the stairs’ scaffolding with the desired dimensions.
- Locate the staircase center to be on top of the lower floor.
Adjust the named CPlanes origins to be that center point.
- Make circles with radiuses equal 0.15, 0.95 and 1m. Each
step width equal 0.8m.
- Floor to floor height equal 3m.
- Use Distance and Dim commands to measure and mark
dimensions. Note that you need to change the CPlane to be
parallel to vertical center line before you can apply
dimension.
63
Create all steps.
- Change CPlane so that Z direction points downwards.
- ArrayPolar command with 11 steps StepAngle=30, offset
option “ZOffset=0.25” to create all the steps
Repeated geometry, such as the step solid in the staircase tutorial, are best modeled as blocks.
This helps keep model size smaller and allows designers to change step geometry and populate
to all steps without remodeling. The following tutorial creates steps and railing as blocks.
64
Create a block
- Copy one of the steps into new layer
- Select the step geometry, then run Block to define a new
block. The selected step will turn into a block instant.
- Run What command to confirm that it is a block instant.
65
Add the handrail
- Use InterpCrv to connect the tops of the spindles.
- Pipe through the curve for circle cross section (r=0.02), or
Sweep for custom cross section.
- Cap the ends of the pipe
Create stringer
- Adjust stringer concept surfaces to appropriate height
- ExtrudeSrf to create the solid
Create rails
- Create cylinder on the first step, then turn into a block.
- Copy rails.
- Polyline to create the curve for the handrail
- Pipe the handrail
66
Create entrance surfaces
- Draw entrance shape
- Extrude to intersect with terrain
- Create pavement path and project to terrain surface
- Copy terrain surface, then trim with pavement curve to
create pavement surface
67
Tutorial 505: Custom Figures
- Copy and rotate the figure (use alt + rotate 90° on the
gumball widget).
- Select the vertical figure and create a surface (use
PlanarSrf command)
- Scale the horizontal figure in one direction mimicking the
sunset long shadow (use Shear or Scale1D).
Rationalization
The concept of rationalization is closely tied with building and fabrication processes.
Understanding the materials and building workflows is essential to turn models into buildings.
Sometimes designers start with abstract form with little consideration about buildability and cost.
This can potentially lead to compromising design intent. It is very useful that designers be
informed about fabrication processes and workflows to improve communication with other
building professionals. The following tutorials go over a couple of common workflows. One to
generate custom perforation, and the other is to rationalize free-forms.
68
Use an image to print on a screen. This image is taken in Torrey
Pines, San Diego.
Note: to increase the amount of detail in the partition, you can use
more dense grid
With complex free forms, it is usually a compromise between form and cost. For the roof, we will
first create curved panels, then explore strategy to build it with flat panels (more economic, but
might involve changing the form).
69
Tutorial 507: Roof panels
70
Tutorial 507: Flat panels
71
Advanced visualization
After concept visualization there may be a need to more realistically represent a design for
further review or marketing purposes. The term ‘rendering’ is often used here, but the definition
of what this means can vary. In this section, we’ll define rendering as the assignment of real
world materials and the accurate calculation of lighting, reflections and refractions.
Rhino includes two rendering ‘engines’, Rhino Render and the Raytraced display mode. Both of
these will utilize the material library, camera controls, lights, texture mapping and most rendering
settings equally with some exceptions.
Cameras/Views:
Then go into your named views panel and save the named view
again using the same name to replace it.
72
Materials and texture mapping:
Next, use the ‘Import from Material Library’ option when making a
new material in the Materials panel. In Architectural > Wall > CMU
select ‘Concrete blocks.rmtl’ and click Open.
73
Standard material types like glass, metal and paint can be converted
into “custom” materials if and when you want greater control over
their look. Simply click the type drop down menu in the Materials
panel to change a material’s type.
Click the texture name in the color channel for the material to see
the settings for the texture map. Note that the size of the texture is
set to .675, the model is using Meters as the unit of measurement so
this is the scale of the texture shown in the preview once applied to
the model. The texture is also mapped onto objects using WCS and
the box style of projection. This is great for linear objects like walls.
If you want to change the texture scale you can do so globally here
by altering the size. If there is more than one texture in the material,
you will need to adjust each one independently. This will impact all
objects with the material assigned.
74
Experiment with adding more materials to the model from both the
standard material types and the library. Here I’ve added a Paint
material to the interior walls layer and a Tile material from the
library’s Architecture > Floor category.
75
Lighting / Exteriors:
Exteriors are much easier to set up and will calculate faster than
interior shots. Let’s first look at exterior views of the model to render.
Additional materials have been applied as before using sub-object
materials where needed such as the interior wall surfaces of the
exterior wall polysurfaces. The Grass bright material from the
Organic > Grass category of the material library has been used for
the basic ground cover.
For the roof, a standard metal material with the hatch bump texture
selected was used. The reflection of an environment sky becomes
important with a reflective roof material. In the Rendering panel,
change only the reflective environment to one from the library by
using the drop down menu and choosing ‘use new environment’
>’Import from environment library’, the Mt. Monadnock one for
example should work well. Open the Environments panel to adjust
the rotation of the environment reflections.
76
In the Rendering panel you can use the reflection environment as
the visible backdrop but let’s use a simple gradient instead to keep
the focus on our building.
Exteriors are more realistic when the Sun is enabled as well. In the
Rendering panel > lighting section, turn the Sun on and open the
Sun settings to set the location and time. Our site is in San Diego so
either enter the exact lat/long or use Los Angeles which will come up
in the search.
77
With Rhino Render set in the Rendering panel, use Low quality and
do a test render to check overall lighting and contrast. Shadows,
reflections and bump maps will appear different from the Rendered
display mode. The speed of the rendering is determined by several
factors. The pixel dimensions of the image rendered and the quality
set in the Rendering panel being the most significant. Here’s a
comparison of low quality taking 3 mins. versus good quality taking
33.
Note that since Raytraced mode uses Cycles, color saturation and
materials won’t look exactly the same as Rhino Render and overall
will produce a different look.
The Properties panel has focal blur settings when nothing is selected
and that view is active. These focal blur settings get saved in any
named view. Raytraced mode (shown here) as well as Rhino Render
can use this feature. Focal blur helps direct the viewer's eye to an
area of interest in the composition.
78
To save a Raytraced image use the ViewCaptureToFile or
ViewCaptureToClipboard commands. Make certain that the settings
for the resolution are set to Viewport, that the scale is set to 1 and
that the samples field does not have a higher value in it then the
number of samples achieved in the Raytraced viewport prior to
running the command. If these settings differ, a reprocessing of the
Raytraced view will begin.
79
Lighting / Interiors:
You can add a variety of lights in the Render Tools toolbar group.
Follow the prompts in the command line and edit any lights via the
Properties panel > Light section when a light is selected.
80
In these two renders, the first with Rhino Render and the second
with Raytraced, four additional rectangular lights have been added.
Due to Raytraced calculating the bounced light or indirect
illumination, the intensity of the lights was lessened to 20% from the
intensity of 60% used for Rhino Render.
81
Drawings
Extracting 2D data out of the 3D model is useful design and documentation workflow. You might
need to slice through your model to extract useful reference geometry, or use to laser cut your
form, but the more common use of 2D drawings is for documentation. Delivering 2D drawings is
a requirement in most architectural projects. Documents might be needed to issue building
permits and to share with contractors for construction. Rhino is essentially a 3D modeler with
viewports that represent 3D space. It also has paper space that can be set up to organize 2D
data and print to scale. The workflow involves two main parts. The first is extracting the 2D
drawings, and the second is to lay them out to scale in paper space. The following tutorials
show a workflow for extracting and printing drawings.
82
View sections in 3D space
- Run stViewSections, select the section and set options to
“Yes”. Select the view to view the section in.
- Use stClearSectionViews to clear the clipping from a
selected viewport
Edit sections
- stEditSections to reset options
- stEditSectionsObjects to select specific objects to section,
or section through all visible objects
- stEditSectionsHint to edit what part of the section hint to
view
- stMoveSections to move sections
83
Create a new layout:
- Use Layout command to set up
a new layout.
- Enter the layout name, paper
dimensions and the number of
initial details.
- You can use any units to set
paper size. That will not affect
the actual units of your layout
space ( which we have set up to
millimeters).
84
Rendered views and labels:
- Enter other details and set the
view and projection.
- You can use any display mode
for the details.
- Add Rectangle as a border for
the layout
- Inset labels using Text
command
85
Print PDF using
Print command.
Prototyping
Prototyping is an integral part of concept development and detailed design. It is as much a
design tool as it is for communication and presentation. The nature of digital modeling with
virtual screen based representation is bound to miss important aspects that are only noticed
through physical modeling. Prototyping uses CAD/CAM systems such as laser cutters, CNC
machines and 3D printers. We will discuss two workflows using 3D printing and laser cutting,
and CNC routing.
Laser cutting
Tutorial 510: Laser cutting
Use rationalized roof panels (flat panels). For this tutorial, we will
rationalize with reduced number of panels.
- Project the outline of the original roof onto the revolve
surface and trim with it (without shrinking the surface).
- Divide the surface into 4x12 spans using
ptGridSrfDomainNumber (PanelingTools plugin)
86
Create the panels
- Use ptPanelGrid to generate the panels as Faces
- Notice that faces are grouped and each face has a unique
name
Split panels
- Extrude outline curve
- Use Split to split all panels
- Delete the part of panels outside the boundary
Labeling
- If the autolabel for panels is not desirable, you can relabel it
using ptSerializeObjectsName
- To tag objects with their name, use ptTageObjects
Unrolling: you can unroll, tab and glue individual panels, but also
look for a more efficient way if the form allows it.
- Join each step of panels, and make sure the polysurface
normal faces outwards.
- Unroll together using UnrollSrf
- Change the color of steps to make it easier to distinguish
Create tabs
- Create new layer and choose color RED and make it the
current layer (many laser cutting programs designate the
red color for cutting and blue for etching)
- Arrange your strip to fit in the laser cutter bed (check your
laser cutter dimensions)
- Use ptTabs with Recess option to create the cut outlines
87
Extract etch curves
- Explode trips, the DupBorder to get the curves
- Explode the curves then remove duplicates (SelDup, then
Delete)
- Put curves into a new layer and make its color BLUE
- Mirror all curves for the second half of the roof
- Select all cut and etch curves, and Export using file format
suitable for your laser cutter
Note that if you need to bend panels in 2 different directions, then
use a dashed line red cut curves for etching instead of blue
continuous curves.
Also, take into consideration the final scale of the printed part.
3D printing
Tutorial 510: 3D printing
88
- Extract a mesh with reasonable face count. 3D printers
have a limit of how many faces they can print, and
minimum size.
- Check the mesh to make sure it has no naked edges or
holes. Repair when needed using MeshRepair tools and
other Rhino mesh commands
- Export using proper format acceptable by your 3D printer.
Usually as STL or OBJ
CNC routing
Tutorial 510: CNC Routing
Scale the model and adjust model to work well with your router
tolerances
Check for angles and adjust undercuts and angles when necessary
depending on your CNC machine specifications and tools
89
CNC settings and simulation using RhinoCAM
90
Part III: Modeling methods
Architectural design involves creating ideas using a language of expression such as geometry
and materials; and a medium of representation such as drawings or modeling. The media of
representation tends to influence our design thinking and methodology. This is particularly true
in the digital medium of design. Different digital tools are designed to support the different ways
of modeling.
To understand modeling methods using digital means, let us start with a simple example.
Suppose you want to create a composition out of circles with varying radii. You might start with
drawing on paper, cut and experiment with different compositions interactively. This method
uses a very familiar “tool” (pen and paper), and a basic understanding of geometry (circles have
a center and circular curve). One also needs a bit of practice to come up with good hand
sketched circles.
Benefits of using pen and paper to represent geometry are plentiful. Drawings are cheap,
available, easy to pass around, and we all learn how to draw with pencils from a very early age.
Drawing medium is also great at keeping a record of all the attempts. However, there are some
disadvantages, for one, it is hard to draw accurate circles by hand. Also, drawings inked on
paper are hard to change. Designers have invented many tools and methods to help with
drawing challenges. For example, a compass to improve accuracy, tracing paper to layer
sketches, and so on. Just like drawing, digital representation of design ideas has its advantages
and challenges. To fully understand those, we will examine a range of digital design methods.
Digital modeling supports a wide range of workflows for different stages of design; from intuitive
modeling with vague ideas about the final result, to more structured and well-defined designs.
91
For example, you might start with some surface, have not decided yet if it is a wall, a ceiling, or
simply a guiding geometry for something to follow. At that stage, you need flexibility to shape
and mold your ideas. If your tools force you to decide on the material or building part, then your
flexibility to change your mind and morph your initial thoughts into new ones will be hindered.
On the other hand, if your design has matured and you need to deliver your model to engineers
for evaluation, you need to have made detailed decisions about building parts and materials.
Creators of digital tools examine these needs and workflows closely and create digital tools that
suit different stages and modes of design. In general, the creators of digital tools tend to support
one of four modeling approaches: direct, algorithmic, object-based or parametric. Some of these
overlap to a certain degree, especially the parametric one which we will address in a separate
section. The main characteristics of the first three approaches are summarized in the following.
No restriction on the forms created Incorporates mathematics, logic and Uses a library of parts to assemble
or processes used to create them. algorithmic processes to define a model
Highly adaptable to designers forms and relations
preferences
Suitable for intuitive conceptual Desirable for parametric design Efficient when modeling specific
design building types and styles, and for
production.
Abstract geometry is usually highly Can communicate with external Rigid. You are usually limited to the
portable across digital tools, which tools, but is dependent on the workflow designed by the
favors its inclusion in many design environment it is developed with. environment itself and its family of
workflows tools. There are some industry
standards to help interoperability.
Easy to understand and manipulate Well formed and clear algorithms is Relying on standard objects is a
across team members key to collaboration. It is easy to significant advantage to help
generate unreadable scripts that are consistent modeling among team
hard to understand and manipulate. members.
Table (1): Comparison of digital modeling methods
The Rhinoceros core modeling environment supports direct modeling through its intuitive
geometry creation methods and the rich set of tools to manipulate, analyze and share geometry.
The Rhinoceros core is very easy to extend into specialized functionality through plugins. It has
an open source file format (openNURBS), and much of its core is built using the same
development tools available to all third party developers. Grasshopper, which started as a Rhino
plugin and now ships with Rhino, has become a standard tool for algorithmic design. Its intuitive
visual programming method, coupled with the powerful Rhino geometry engine make it very
popular among designers and building professionals. Many plugins for Rhino and Grasshopper
support specialized workflows. For example VisualARQ uses object-based modeling with
92
standard libraries of building parts. ArchiCAD, which is a stand alone object-based tool, has a
plugin linking Rhino and Grasshopper in real time.
VisualARQ makes it very easy to work with building parts (walls, windows, etc.). It is tightly related to both native
Rhino geometry types (easy to transition between the two), and the algorithmic environment of Grasshopper (for
example, it can define blocks algorithmically, and build relational models of the building). For more information
about VisualARQ, go to http://www.visualarq.com
The accessibility and ease of adding to Rhino and Grasshopper resulted in a growing
ecosystem containing hundreds of specialized tools for analysis, interoperability, robotics,
visualization, and others. Most of these tools are shared for free and present an incredible
resource. The inclusive nature of the Rhino and Grasshopper and its affordability make it a great
choice in research and practice.
Hundreds of plugins for Rhinoceros and Grasshopper can be downloaded from the food4Rhino website. Most are
free: http://www.food4rhino.com
Direct modeling
Direct modeling is very comparable to pen and paper. After you familiarize yourself with
Rhinoceros user interface (2 hour tops), you can start modeling with simple geometry such as
curves and surfaces. For example, creating circles in Rhinoceros involves simple steps:
- Find a computer that has Rhinoceros installed,
- Run Rhinoceros and start a new file,
- Run “Circle” command (find it in toolbars, menus, or type the word “circle” in the
command line)
- From here, you are guided through the steps (instructions are typed in the command
line). You’ll be asked to specify a center, radius, all with some nice preview to see what
you’ll get before you commit or accept.
- Run “Circle” command a couple more time snapping to the same center point, but with
different radius.
- For now, ignore the many different ways you can create a circle that are offered by the
“circle” command, or else you’ll be faced with more things to learn and decisions to
make.
93
Figure (2): Modeling circles in Rhino
Designers usually get the hang of direct modeling fairly quickly for few reasons:
- The general workflow is similar to using pen and paper.
- There is not too much upfront work that the designers need to do other than opening the
application and start drawing, albeit digitally.
- Actions (or commands) are typically intuitive and easy to remember. You can guess
many of them (type a couple of letters, and the smart autocomplete will pull a list for you
to choose from). All tools are also grouped in a logical arrangement in menus and
toolbars.
- Once you run a command, it usually guides you through the process step by step.
Once you’re comfortable making circles with Rhino, you’ll find that there are many advantages
that come with direct digital sketching over the good old pen and paper. For example, it is trivial
to interactively scale until you are happy with the circles! But beware, if you are not disciplined,
you can easily lose your early iterations. Unlike on paper, no trace is left on screen. You can
always “undo” but that will only take you a step or two back.
Both methods mentioned above (hand drawing, and direct digital modeling) have limitations:
- Remodel every time you need to create the same thing.
- Hard to keep and compare variations.
- Hard to define dependency or relationships between the parts.
- Hard to embed knowledge about the process or the logic of design.
- Involves more work when transition to detailed design and documentation.
If you hit these limitations frequently at your work, then you should consider using algorithmic or
object-based modeling.
94
Algorithmic modeling
Algorithmic modeling requires clear articulation of design problems and the steps to reach the
solution. Once you wrap your head around the algorithmic design workflow, you will be able to
overcome many of the limitations inherited in other modeling methods. The main advantage is
the ability to work on projects early because it is fast to change input requirements and make
new updates. It also helps with scalability and redoes of similar problems. There is, however, an
upfront cost to learn algorithmic modeling. Knowledge of basic math, geometry, and logic design
is essential. More importantly, developing algorithmic design skill requires discipline and
commitment to learn. The good news is that you can acquire the skills of algorithmic design with
practice and time, and once you get it, it is hard to lose.
Figure (4): Define one circle with fixed (constant) center and a fixed radius
Grasshopper supports many ways to define “input” (the values on the left that feed into the circle battery). The
input can be one or multiple values, and hence the circle may execute any number of times (one for each input
combination). In the above example, the “circle” runs exactly one time using the one (center, radius) combination.
The output (coming out of “C”) at the right side of the component, show that we have created exactly one circle. A
preview of the circle is drawn on the Rhino viewport.
95
Figure (5): Define three circles with a constant center and constant list of radia
Grasshopper supports multiple ways to define or generate input values. You can directly supply
them, but you can also generate them. This is where the power of algorithmic methods shows.
For example, if you need 10 circles starting at radius equal 0.2, and increasing by 0.1 all the
way to the tenth circle with radius equal 1.2, you can do that in many different ways. You can
create a separate definition for each circle with one radius (similar to example 4). You can also
supply a list of typed radia (similar to example 5). These two methods are correct, and they
mimic the “direct modeling” method of repeating each circle. This is tedious to change and does
not exploit the power of algorithmic design. A better way is to generate the list using a starting
radius, step size and number of radia. This way if you like to change the initial radius or step
size, then you can do that efficiently by changing only one value. You’ll notice that definitions
resemble building blocks connected to each other to generate the desired output. First, create
the list:
96
Figure (7): Generative circles
One big advantage of using algorithmic modeling is that it naturally support parametric design.
For example, instead of one value, you can define an input parameter as a range of values. You
can then interactively change input and observe the effect on your output.
Grasshopper has a specific way to generate the list of combinations from input. This is a very advanced topic and
has to do with data management, but it is worth mentioning here to give you the heads up about how it works.
The general case is easy to understand. If a single value is supplied to each of the input, then those make one
combination, and the component is executed once (as in figure 4). If one of the input is supplied with a list of
values, then the component executes once for each value on the list and is combined with the same other single
value input. For example, the radius input in figure 5 consists of three values and only one point for the center.
Subsequently, the circle component executes or runs three times using the following combination for
(center,radius): ((5,5,0), 3), ((5,5,0), 1.5), ((5,5,0), 0.2). The output coming out of “C” at the right side of the
component shows three circles.
Now if a list is supplied for each input, the values of the same index are combined. If one list is shorter, the last
value on the short list continues to be used.
For more control, Grasshopper makes many tools to manage how data is matched. For example, there are ways to
combine each value in a list with all other values from the other list, but we can leave this for another time.
97
At this point, it is useful to define some terms commonly used in algorithmic modeling:
Data Includes all the values (numbers, text, geometry, color, etc.) that are processed to create
the output. These values take two forms: variables (fixed or certain) and parameters
(change, uncertain). Data containers in Grasshopper are all called “parameters”.
Data structures Grasshopper organizes data within three structures: single, list and tree. Properly
representing data structures and managing them is a big part of algorithmic modeling.
Functions, methods, Those typically take input, perform some operation, and produce output. In Grasshopper
and operations operations are encapsulated inside what is called “components”.
Algorithms They are the steps (recipe) that define the sequence of operations. It has three main
parts: input, steps, and output. Grasshopper files contain one or more algorithms, which
are commonly referred to as “definitions”.
Parametric design A method to create design solutions through a set of logical steps (algorithms) and
values that can be changed (parameters) to help efficiently generate design variations.
Parametric design is highly supported by algorithmic modelers.
So far, we learned that Rhinoceros supports direct modeling familiar to most designers, while
Grasshopper is an algorithmic modeling tool that helps articulate the design logic using
algorithms. Here is a summary of what Rhinoceros and Grasshopper are good at, and why you
might want to use them.
Captures the intuitive workflow of traditional design Based on computer programming principles, but is
medium of pen and paper made intuitive through visual, rather than text-based
scripting
Uses NURBS to represent and manipulate geometry Rhino geometry commands are embedded in the
accurately. But also support other types of geometry components, combined with data management tools to
such as meshes support visual algorithmic modeling
Design decisions can be implicit and reflective The workflow forces explicit definition of all modeling
steps
In large, designers do not have to deal with or manage Understanding data types and data structures is
geometry data. essential. Designers have to be aware of data and
actively manage them
Offers direct interaction with geometry. Typically work There is separation between logic and geometry. The
directly in model space. design logic is created in a separate space from that
where the geometry is displayed.
Making changes may involve remodeling. It is not easy The ability to change designs and create variations is
to generate and compare design variations. perhaps the most pronounced advantage.
Hard to leverage mathematics and algorithmic logic. Mathematics and dependencies are in the nature of this
98
Also hard to build model dependencies. method.
Affordable, stable, accessible in Windows and Mac Fully integrated inside Rhinoceros in both Windows and
operating systems. Mac.
Flexible user interface. Customizable tools using Provides access to the platform scripting and
macros. Also, supports many scripting languages development libraries and functions. All can be
(RhinoScript and Python) and plugin development (C++ accessed through text-based editors (Python, VB, and
and DotNet framework). C#). Grasshopper functionality can also be extended
with compiled Add-ons using the DotNet framework.
Object-based modeling
Rhinoceros does not support object-based modeling as part of the core application. However,
there are a few plugins that are integrated tightly with Rhino that do support this modeling
method. One example is VisualARQ.
Object-based modeling almost never deals with abstract geometry. Designers typically model
with objects such as walls, windows, stairs, and roof. These objects behave in predictable way
and hold information about materials, cost, 2D representation, etc. Designers use standard
objects or create their own. The main advantages of using an object-based modeling application
such as VisualARQ can be summarized in the following:
1. IFC is the industry standard format to store objects and their properties. Many
object-based applications use this format; therefore, there is good interoperability
between them. Many other building applications for analysis and construction support
IFC format which makes it more convenient to exchange files.
2. Objects can embed a lot of information about materials, 2D representation, cost, etc.
This makes it more straightforward to generate 2D documentation and bills of materials.
3. Consistency in using standard styles and building parts across an organization or in
future projects. Once these libraries are established, it is very productive to work with
object-based modelers, especially for similar style projects.
Parametric modeling
Parametric modeling is a specialized modeling mode that is gaining popularity. It overlaps with
all other modeling methods. In algorithmic modeling tools such as Grasshopper, all input values
can be turned into parameters. Object-based modeling is also parametric by nature where
changing specifications of any style (height, thickness, material, etc.) leads to updating all
instances that use that style. It is less obvious how parametric design is supported in direct
modeling tools. That is said, the Rhino core does support parametric design in three ways. The
first is embedded in the very nature of the NURBS geometry, the second through blocks and
finally when recording command history.
99
Tangent 5: Transformations and parametric design
Certain parameters are common in all digital tools. All modeling tools allow rotating, scaling, stretching and
changing the geometry location. Such operations are called “transformations”. The angle is the parameter for
rotation, the scale factor is the parameter for scaling, and so on. Rhino supports all basic transformations, but also
a rich collection of advanced ones. Geometry can be stretched, twisted, bent, and flown along a curve or a surface.
All Transformations are listed under the Transform menu.
NURBS stands for non-uniform rational b-splines. A detailed description of parameters curves including NURBS is
described in the “Essential Mathematics for Computational Design”:
http://developer.rhino3d.com/guides/general/essential-mathematics/parametric-curves-surfaces/
Blocks as parameters
Rhinoceros supports blocks. Once a block is defined, any number of instances can be placed in
the model. They all refer to the original block geometry and update when the block is changed.
100
Figure (10): Blocks as parameters
Comparative modeling
All modeling methods are widely used in architectural design, and they can complement each
other. Each has its strengths and utility within the design and building workflow. Designers well
versed in all methods are usually more productivity and competitive.
To gain an appreciation of all three modeling methods, we will model a simple lighthouse using
Rhino, Grasshopper and VisualARQ, all side by side.
101
Direct Modeling using Rhino
Explore scaffolding, concept design and detailed design workflows using Rhino core direct
modeling workflow.
Modeling steps
Open:
01_ModelingMethods>05_Comparati
veModeling>01_RhinoDirectModelin
g>01_RhinoDirectModeling.3dm
102
Can extract basic 2D drawings using
Section and Make2D commands.
Explore parameters, concept design and detailed design workflows using Grasshopper
algorithmic modeling workflow.
Modeling steps
103
Open:
01_ModelingMethods>05_ComparativeModel
ing>02_GrasshopperAlgorithmicModeling>02
_GrasshopperAlgorithmicModeling.3dm
104
Modeling steps
105
Make sure Level 1 Cplane is active.
Draw the lighthouse plan.
106
Click on the stairs from the VisualARQ tab.
Follow the command line to complete the
stairs.
Note: You can always turn the control points
on to change the stair’s insertion point.
107
Now we need to make an opening in the slab.
Draw a planar curve with the shape of the
opening to make the cut.
108
Now highlight the walls and change their
height from the wall properties to 15m.
109
Add the railings.
Select the railing option then start selecting
the corners of the slab.
From the properties panel, change the railing
style.
110
Click on the door or windows and change
their styles and profiles from the default
drop-down menu.
Extract 2D documentation.
Plan:
111
Section:
Under the same tab select Section, then pick
a style (Arrow) in this case.
Then specify two points for the section cutting
line. Type in a name for the section on the
command line then hit enter.
112
Openings Elevation:
Tables:
113
Resources
Support:
● Rhino Support Forum: https://discourse.mcneel.com/ - the best place to ask questions
and meet with other Rhino users.
● Rhino email support: [email protected]
● Rhino support page: https://www.rhino3d.com/support
● Plugins for Rhino: http://www.food4rhino.com/
Workflows:
● Digital Fabrication tutorials for Rhino:
https://www.rhino3d.com/tutorials#digital_fabrication
● Architecture Digital Fabrication:
https://wiki.mcneel.com/rhino/architecture/home#digital_fabrication
● Rhino Fab Studio: http://www.rhinofablab.com/
● Using Rhino with Revit: https://wiki.mcneel.com/rhino/architecture/bim/rhino-to-revit
● Nick Senske Computational Design Courses YouTube :
https://www.youtube.com/user/nsenske
● Jose Sanchez would like to share a series of online videos on Rhino modeling in
architecture: Modeling the LF-ONE by Zaha Hadid :
https://www.plethora-project.com/education/
Rhino in Architecture:
● Many Articles, Books, Workflows: https://wiki.mcneel.com/rhino/architecture/home
● ArchDaily blog covering Rhino: https://www.archdaily.com/tag/rhino
● The latest news about Rhino in AEC: http://blog.rhino3d.com/search/label/AEC
● Many videos on Rhino in Architecture:
https://www.youtube.com/results?search_query=rhino+architecture
● Gallery of a few buildings done with Rhino and Grasshopper:
http://www.grasshopper3d.com/page/architecture-projects
114