Rhino→Revit Workflow via the Web

advertisement
Rhino→Revit Workflow via the Web
FLUX
Version 1.4
TABLE OF CONTENTS
1.0 INTRODUCTION
1.1 WHY FLUX
1.2 OVERVIEW OF THE PRIMER
1.3 SOFTWARE REQUIREMENTS
1.4 PREREQUISITE KNOWLEDGE
2.0 TRANSFERRING DATA THROUGH FLUX
3.0 SENDING A GRASSHOPPER MODEL TO REVIT
3.1 DOWNLOADING THE FLUX PLUGINS
3.2 CONNECTING GRASSHOPPER TO FLUX
3.3 CONNECTING DYNAMO TO FLUX
4.0 SENDING A RHINO MODEL TO REVIT
4.1 INTERNALIZING RHINO GEOMETRY INTO GRASSHOPPER
4.2 SENDING GEOMETRY TO FLUX
4.3 RECEIVING GEOMETRY FROM FLUX
4.4 CONVERTING RHINO GEOMETRY TO REVIT FAMILY
5.0 APPENDIX
5.1 INDEX
5.2 BUILDING A TWISTY TOWER IN GRASSHOPPER
2
last updated 3/23/2016
1.0 INTRODUCTION
1.1 WHY FLUX
Transferring a model from Rhino to Revit is a common design challenge in the modeling and design
phases of a building project. Many tools and workarounds have been developed over time to address
this need, including Grevit, Hummingbird, Mantis Shrimp, and manually exporting and importing .sat
or .dwg files. Unfortunately, none of these methods create live links. Updates in either the Rhino or
Revit model do not automatically propagate to the other, slowing down design iteration. As the
demands for building design increase in a rapidly urbanizing world, the drawbacks of such
inefficiencies in the design process will only grow.
Flux provides a unique solution for connecting Rhino to Revit via the web. Rather than performing file
conversions locally, Flux enables the transfer of ​
data​
directly from one application to the other. As a
result, any design changes made within a Rhino model will immediately propagate to the Revit model.
Vice versa, any changes made within a Revit model will propagate to a Rhino model. The ability to keep
designs automatically in sync speeds up each iteration cycle and ensures that collaborators on a
project are always working on the latest designs.
1.2 OVERVIEW OF THE PRIMER
This primer will walk you through the basic steps of two different options for creating a Rhino to Revit
workflow with the Flux plugins for Grasshopper and Dynamo. For users that are familiar with
parametric design and comfortable designing in Grasshopper, you may refer to ​
3.0 Sending a
Grasshopper Model to Revit​
. Alternatively, for users that prefer designing in Rhino, you may refer to
4.0 Sending a Rhino Model to Revit​
.
Reference materials are included in ​
5.0 Appendix​
to provide more information about the Flux plugins
and an introductory parametric design example in Grasshopper.
By the end of this primer, you will be able to:
• leverage the Flux Grasshopper and Dynamo plugins to create a live link from Rhino to Revit
• build a basic parametric model within Grasshopper
3
last updated 3/23/2016
1.3 SOFTWARE REQUIREMENTS
•
•
•
•
•
•
•
latest Chrome browser (​
download link​
)
Rhino 5 SR9+ 64-bit for Windows (​
download link​
)
Grasshopper 0.9+ (​
download link​
)
Revit Architecture 2015 or 2016 (​
download link​
)
Dynamo 0.9.0 or Dynamo Studio 2016 (​
download link​
)
Flux account (sign up at ​
flux.io/signup​
using the latest Chrome browser)
Flux Grasshopper plugin and Flux Dynamo plugin (​
download link​
)
1.4 PREREQUISITE KNOWLEDGE
•
•
4
Rhino (proficient) & Grasshopper (beginner)
REVIT (proficient) & Dynamo (beginner)
last updated 3/23/2016
2.0 TRANSFERRING DATA THROUGH
FLUX
Before jumping into the how-to section of this document, let’s quickly review what we are going to do.
Here is a diagram for how your Grasshopper or Rhino model will be sent to Revit:
The first half of the diagram shows what you will do in ​
3.2 Connecting Grasshopper to Flux​
. Using the
Grasshopper plug-in, you will send a model (represented by the blue piece) to the Flux cloud. It will
thereafter be stored in the cloud along with all other data that you send to Flux.
The second half of this diagram shows what you will do in ​
3.3 Connecting Dynamo to Flux​
. You will be
using the Dynamo plug-in to receive the same model from Flux into the Dynamo environment. (Note
this model still exists in the Flux cloud and can be received in any other application with a Flux plug-in
at any time.)
Now that you have an overview of the process, let’s get started.
5
last updated 3/23/2016
3.0 SENDING A GRASSHOPPER MODEL
TO REVIT
This section will cover the first of two options for how to create a Rhino to Revit workflow. An animated
example of the complete workflow can be found ​
here​
.
3.1 DOWNLOADING THE FLUX PLUGINS
To setup up your Flux workspace within Grasshopper and Dynamo, ​
download the Flux plugins​
using
the combined installer. Once you relaunch both applications, you will notice a Flux toolbar has
appeared alongside the other native toolbars.
For a detailed description of the Flux Grasshopper components and how to use them, refer to ​
5.1.1
Flux Grasshopper Components​
. Similarly, for a detailed description of the Flux Dynamo nodes and how
to use them, refer to ​
5.1.2 Flux Dynamo Nodes​
.
3.2 CONNECTING GRASSHOPPER TO FLUX
For the purpose of clarity, this how-to guide uses a Twisty Tower model to demonstrate the Rhino to
Revit workflow. A tutorial for the Twisty Tower is included in ​
5.2 Building a Twisty Tower in
Grasshopper​
. You can use the Twisty Tower or your own Grasshopper model to follow along.
In this section we are going to send the Twisty Tower model to Flux. The image below shows the
completed workflow:
6
last updated 3/23/2016
3.2.1 CREATING OR SELECTING A FLUX PROJECT
Click and drag the ​
Flux Projects​ component onto
your Grasshopper canvas. You will be prompted to log
into your Flux account. Check “Remember me on this
computer” to skip this dialogue box in the future.
Click the down arrow on the ​
Flux Projects​
component tab to view projects that you’ve already
created in Flux. Type a project name into the box and
select “Create project” at the bottom of the list to create a
new project. Alternatively, if you have already created a
project as shown in the image, you can select it.
Once you’ve selected/created the project, the component
will display its name.
7
last updated 3/23/2016
3.2.2 CREATING OR SELECTING A FLUX KEY
Drag the ​
To Flux
component onto the
canvas and connect the Keys (Ks) output from
the ​
Flux Project​
component to the Keys (Ks)
input of the ​
To Flux
component.
Click the down arrow on the ​
To Flux
component to view the keys that already exist in
this project. As you did before, you can create a
new key or select an existing key as shown in the
image.
Once you’ve selected/created the key, the
component will display its name.
3.2.3 SETTING THE FLOW CONTROL
Drag the ​
Flow Control
component onto the
canvas and wire its output to the Mode (M) input
of the ​
To Flux
component. Select
Constantly mode. Check the description under
5.1.1 Flux Grasshopper Components​
to see the
difference between Once and Constantly mode.
8
last updated 3/23/2016
3.2.4 SENDING A MODEL TO FLUX
Wire the output of the component containing
your completed Twisty Tower model to the Value
(V) input of the ​
To Flux​
component.
You have now successfully sent your Twisty Tower to Flux. Any changes you make to the Tower will
automatically be sent to Flux.
3.3 CONNECTING DYNAMO TO FLUX
We are now going to receive the Twisty Tower from Flux into Dynamo. The image below shows the
completed workflow for this section. As you can see, the model below matches what we sent up from
Grasshopper.
9
last updated 3/23/2016
To have this same model appear in Revit, you simply launch Dynamo from within Revit. Below is a
side-by-side view of the open Dynamo and Revit windows.
3.3.1 RETRIEVING A MODEL FROM FLUX
Wire the ​
Flux Projects
node to the ​
Select
From List
node and use the dropdown menu
to select the project that you sent the model to
in Grasshopper.
Once you select the correct project, wire the
Object output of ​
Select From List
Project input of the ​
Data Keys​
Wire the ​
Data Keys
to the
node.
node to another ​
Select
From List
node and use the dropdown menu
to select the key that you sent the model to in
Grasshopper.
10
last updated 3/23/2016
Wire the Object output of ​
Select From List​
to the Key input of ​
From Flux
, and the
Mode output of ​
Flow Control​
to the Mode
input of ​
From Flux
. Set the Mode to
Constantly for live updates. Your model should
now appear in Dynamo. If it does not, check to
see if Dynamo is set to ‘Automatic’ runs, found
on the bottom left corner of the Dynamo
environment as a dropdown menu.
You have now have a complete Rhino to Revit workflow! Make changes to your Twisty Tower in
Grasshopper to see it automatically update your Twisty Tower in Revit (while ​
Flow Control
sending and receiving are set to Constantly).
11
last updated 3/23/2016
for both
4.0 SENDING A RHINO MODEL TO REVIT
This section covers the second of two options for how to create a Rhino to Revit workflow. Rather than
send a parametric model designed in Grasshopper to Revit as covered in ​
3.0 Sending a Grasshopper
Model to Revit​
, you will use send a model designed directly in Rhino to Revit. You still need to use
Grasshopper and Dynamo to create a link, but all design can be done with Rhino. Refer to ​
3.1
Downloading the Flux Plugins​
to set up your workspace.
4.1 INTERNALIZING RHINO GEOMETRY INTO GRASSHOPPER
Once you’ve built your model in Rhino, open up
Grasshopper. Double click the Grasshopper
canvas to bring up the search bar for the
component library.
Search for the ​
Geometry​
component and select
it to bring it onto the canvas.
Right-click the ​
Geometry​
component and select
‘Set Multiple Geometries.’ This will automatically
bring you to Rhino, where you can manually
select (click on) the parts of the model that you
would like to send to Flux.
12
last updated 3/23/2016
To demonstrate the concept of transferring
Rhino geometry, columns were manually drawn
in Rhino for the Twisty Tower as lines running
between each of the floors. Hold down shift to
select multiple lines (or geometries from your
model). When you are done selecting the lines
(or parts of your model) that you’d like to send,
hit enter, and you will be brought back into
Grasshopper. You’ll notice whenever you click
the ​
Geometry​
component, it will reference the
specific parts of the Rhino model by highlighting
them green.
4.2 SENDING GEOMETRY TO FLUX
You can now send the columns to Flux, as
described above in ​
3.2 Connecting Grasshopper
to Flux​
. (Note this step will throw an error if you
used polylines to draw the columns. Revit
recognizes lines but not polylines; therefore
you’ll need two extra components ​
Explode​
and
Line​
to convert your polylines into separate line
segments.)
4.3 RECEIVING GEOMETRY FROM FLUX
Now open up Dynamo within Revit and recieve
the lines from Flux, as described above in the ​
3.3
Connecting Dynamo to Flux​
section.
13
last updated 3/23/2016
4.4 CONVERTING RHINO GEOMETRY TO REVIT FAMILY
In order for the lines to display as actual columns
within Revit, there are a few more operations
needed. Bring in the
StructuralFraming.ColumnByCurve​
node and
feed into its Curve input the Value output of the
From Flux​ node. Next bring in the ​
Levels
node and use the dropdown menu to select
Level 1. Wire that to the Level input. Finally, bring
in the ​
Structural Column Types ​
node and use
the dropdown menu to select a column type.
Connect that to the StructuralColumnType input.
You now have your Rhino model in Revit. Try moving the lines around in Rhino to see how that
propagates to your columns in Revit.
14
last updated 3/23/2016
5.0 APPENDIX
5.1 INDEX
5.1.1 FLUX GRASSHOPPER COMPONENTS
There are four important Flux Grasshopper components within the Flux toolbar (shown above):
Flux Projects
This component allows you to select the Flux project that you’d like to send your
model to. It has an optional Filter (F) input that filters down the project names within
the component’s dropdown menu. It outputs the Keys (Ks) of the selected Flux
project as a list and Metadata (M) of the project.
To Flux
This component allows you to send data to a Flux key within a Flux project. It
requires two inputs: the Keys (Ks) output from the ​
Flux Projects​
component, and
your data for the Value (V) input. It also has a third recommended input called Mode
(M), which receives the output of the ​
Flow Control​
component.
From Flux
This component allows you to receive data from a Flux key within a Flux project. It
has the same Keys (Ks) and Mode (M) inputs as the ​
To Flux​
component. Therefore,
the Value (V) referencing your data is an output instead of an input.
This component sets how frequently you send/receive data and feeds into the Mode
(M) input of the ​
To Flux​
and ​
From Flux​
components. It has two modes: ‘Once’ and
‘Constantly’. ‘Once’ mode allows you to send/receive data to/from a Flux key
manually when you choose. ‘Constantly’ mode allows you to send/receive data
to/from a Flux key automatically every time a change is made. To make this more
clear, check out the table below to understand how the ​
Flow Control​
Modes of the
sender and receiver affect the frequency of data transfer.
Flow Control
15
Send Data to Flux
Receive Data from Flux
Frequency of Data Transfer
Constantly
Constantly
Instant data transfer between
sender and receiver every time
there is an update.
Constantly
Once
Latest data available to receiver
last updated 3/23/2016
when he/she chooses to
receive it.
Once
Constantly
Latest data available to receiver
when the sender chooses to
share it.
Once
Once
Data transfers only when the
sender chooses to share it and
the receiver chooses to receive
it. Sender and receiver could
potentially be out of sync.
5.1.2 FLUX DYNAMO NODES
On the left is the Flux toolbar within Dynamo. The Flux
Dynamo nodes follow a very similar logic to the
Grasshopper components, but have some minor
differences in execution.
Flux Projects
Data Keys
16
This node retrieves the list of Flux projects in your account. Use this node to login to
Flux and it will return a list of your project in the single output Projects. Connect the
output to a ​
Select From List​
node to choose the project you would like to work on.
This node retrieves the list of Flux keys within a given Flux project. It requires a
Project as an input and queries Flux for the Project’s list of Keys. The Keys needs to
be wired to a ​
Select From List​
node to choose the key you would like to
send/receive data to/from.
last updated 3/23/2016
Select From
List
To Flux
This node allows you to interactively select an item from a list of objects. It takes into
its Objects input either the Projects output from the ​
Flux Projects​
node or the Keys
output from the ​
To Flux​
or ​
From Flux​
nodes. Only one item can be selected at once.
The output Object of this component is the selected item: either a project or a data
key. ​
(Note: In Grasshopper this ‘select from list’ functionality is integrated into the ​
To Flux
and ​
From Flux​
components.)
This node sends data to a particular Flux data key. It has three inputs: the Key
selected from the ​
Select from List​
node, the Mode from the ​
Flow Control​
node,
and the data you want to send for the Value input. By default, the value will be sent
once upon connection without the ​
Flow Control​
node.
This node receives data from a particular Flux data key. It takes two inputs: the Key
selected from the ​
Select from List​
node and the Mode from the ​
Flow Control​
node.
By default, the will be received once upon connection with the ​
Flow Control​
node.
From Flux
Flow Control
This node sets how frequently you send/receive data to/from Flux and feeds into the
Mode input of the ​
To Flux​
and ​
From Flux​
nodes. It has three modes: ‘Once’,
‘Constantly’, and ‘Locked’. The ‘Once’ and ‘Constantly’ modes mirror the Flow Control
component in Grasshopper. ‘Locked’ mode provides a special interlock to prevent
accidental synchronization.
5.2 BUILDING A TWISTY TOWER IN GRASSHOPPER
This section is an abridged version of the following tutorial found online:
http://wiki.bk.tudelft.nl/toi-pedia/Tutorial_1_-_Rotating_Tower
5.2.1 DEFINE THE INPUTS
For this particular tower, there are five different controlling parameters:
• the height of the tower
• the height of each floor
• the radius of each floor
• the number of edges of each floor
• the rotation of the tower
Here is a diagram for how each of these inputs will determine the final structure of the tower:
17
last updated 3/23/2016
5.2.2 DEFINE THE HEIGHT OF THE TOWER
We define the height of the tower by drawing a vertical line that will as the spine of the building. We do
this by connecting two points along the z-axis with the following blocks (names in red):
• 2 x Vector >> Point >> ​
Point XYZ
• Params >> Input >> ​
Number Slider
• Curve >> Primitive >> ​
Line
Pull them onto the Grasshopper canvas and connect them as shown below:
Right-hand click on the ​
Number Slider​
and click Edit to change its Properties:
• Name: buildingHeight ​
(it’s good practice to name parameters)
18
last updated 3/23/2016
•
•
•
Min: 3.00 ​
(the minimum height of the tower is 3 meters)
Max: 300.00
Numeric value: 100.00
Your Rhino model should now look like this:
5.2.3 OUTLINE THE FLOORS
We now want to set the floor height and divide the spine of the building based on this height. To do
this, we will use two blocks:
• Curve >> Division >>​
Divide Distance
• Params >> Input >> ​
Number Slider
Again, edit the Parameters of the ​
Number Slider​
:
• Name: floorHeight
• Min: 2.80
• Max: 6.00
19
last updated 3/23/2016
Now we create the shape of the floor with a simple polygon. The polygon block has four inputs, but we
will only focus on two: its radius and number of sides. These two inputs will be defined once again by
Number Sliders​
.
• 2 x Curve >> Primitive >> ​
Polygon
• 2 x Params >> Input >> ​
Number Slider
Parameters for ​
Number Slider​
A:
• Name: outerRadius
• Min: 5.00
• Max: 25.00
Parameters for ​
Number Slider​
B:
• Name: numberOfSides
• Min: 3
• Max: 10
• Numeric Value: 6
For ​
Number Slider​
B, you should also right-hand click on the component and change slider type to
Integers. That way you won’t have a fraction of sides for a polygon.
Wire everything up to set the polygons as the bottom and top of the tower:
20
last updated 3/23/2016
5.2.4 ADD ROTATION
Before we create the rest of the floors, let’s add rotation to the tower.
• Transform >> Euclidean >> ​
Rotate
• Math >> Script >> ​
Evaluate
• Params >> Input >> ​
Number Slider
Parameters for the ​
Number Slider​
:
• Name: Rotation
• Min: 0.00
• Max: 180.00
Notice that the ​
Rotate​
component has an input called Angle. This is the angle of the rotation in
radians. Because the ​
Number Slider​
is feeding the value of the rotation in degrees, we need to use the
Evaluate​
component to convert the degrees into radians.
Right-hand click on the F input for the ​
Evaluate​
component and type Rad(x) under Expression Editor.
The component will now convert degrees into radians.
Wire up the components to the polygon on the top of the building.
21
last updated 3/23/2016
The ​
Rotate ​
component actually duplicates the polygon that is fed into its inputs. Right-hand click on
the ​
Polygon​
component and toggle the Preview button off; the duplicate will disappear.
Now we can create the outer surface of the tower with one more block:
• Surface >> Freeform >> ​
Loft
22
last updated 3/23/2016
To connect both ​
Polygon​
components to the ​
Loft​
component, wire up one and then hold the Shift key
when wiring up the other.
Once you complete this step, have some fun toggling the buildingHeight, outerRadius, numberOfSides,
and Rotation to see the effect.
5.2.5 CREATE THE FLOORS
Now we return back to creating the floors using the points along the spine of the building as our guide.
We need to first create planes using the points as the center points.
• Vector >> Plane >> ​
XY Plane
• Intersect >> Mathematical >> ​
Brep_Plane
The ​
XY Plane​
component will create a plane at every point as described. The ​
Brep_Plane​
component
will trace the intersection of each plane and the outer edge of the tower created by the ​
Loft
component. To see this awesome effect in action, toggle the Preview of the ​
Loft​
component off, as
well, as the ​
XY Plane​
component once you’ve wired it up.
23
last updated 3/23/2016
Download