Download as pdf or txt
Download as pdf or txt
You are on page 1of 45

o nn

o o nn
o
cc cc c

. v.vnn . v.vnn . v.vnn


b im
b im Contents b b imim b bim im
hhee h h ee h h ee
g n ng...............................................................................................
g n n gg
g g
1. Introduction
g g
nnWhat is Dynamo ...................................................................................
nn
3

cco
1.1. o cc o o 3 c
1.2. The interface .........................................................................................3

. v.vnn 1.3.
. v.vnn . v.vnn
Definitions ............................................................................................4

bim
bim b b imim b bim im 4
h ee
h h h ee h h ee
1.3.1. Nodes ...................................................................................................
g nn g....................................................................................................
g n n gg
g g
1.3.2. Wires
nn nn g g 5

ccoo Ports .....................................................................................................


1.3.3. ccoo 5 c
1.4. An example ...........................................................................................6

.v.vnn . v.vnn
2. Working with Data .................................................................................... 6
. v.vnn
bbim
im b b imim b bim im 6
h ee
h
2.1.
h h ee h h ee
Data types .............................................................................................

g 2.2. n
Math n gg ......................................................................................
functions n n gg 6
nn gg n n gg
2.3.oo Working with Text String.....................................................................
cc ccoo 7
c
2.4. Working with a List ..............................................................................7

.v.vnn 2.5.
. v.vnn . v.vnn
Code Block .........................................................................................10

bbim
im 2.6. b b imim b bim im13
Custom Node ......................................................................................
h ee
h h hee h h ee
g 2.7.
n ngg............................................................................................
Functions
n n gg 15
nn
2.8.oo
gg nn g g
ccoo
cc Working with Excel............................................................................ 15
c
2.8.1. Reading data .......................................................................................16

.v.vnn . v.vnn . v.vnn


2.8.2. Writing data........................................................................................17

bbim
im b b imim b bim im
3. Designing Geometry ................................................................................ 19
h ee
h hh ee h h ee
g 3.1.
n gg............................................................................................
n
Overview
n n gg 19

nngg n n gg
ccoo ccoo c
1
o nn
o o nn
o
cc cc c

. v.vnn . v. vnn . v
. vnn
b im
b im 3.2.
imim im im
Points ..................................................................................................21
b b b b
hhee 3.3. h h ee h h ee 21
Vectors ................................................................................................
g n n gg n n gg
3.4.
n ngg .................................................................................................
Curves
n n gg 22
c co
3.5.
o c co o
Surfaces ..............................................................................................23 c
3.6. Solids ..................................................................................................24

. v.vnn . v. vn n . v
. vnn
bim
bim 3.7.
imim im im
Importing Geometry ...........................................................................25
b b b b
h ee
h h hee..............................................................................
4. Interacting with Revit
h h ee 26
g n ng g n n g g
4.1.
nn gg .............................................................................................
Selection
n n gg 26

ccooEdition ................................................................................................
4.2. ccoo 29 c
4.3. Creation ..............................................................................................30

.v.vnn . v.vnn . v.vnn


bbim
im 4.4.
imim im im
Adaptive Component Placement ........................................................32
bb b b
h ee
h 4.5.
h hee ............................................................................
Unfolding Elements
h h ee 34
g nn gga Cuboid............................................................................
n n gg
nngg
4.5.1. Unfolding
n n gg 34

ccoo Unfolding a Sphere ............................................................................


4.5.2. ccoo 35 c
4.6. Dynamo for Rebar ..............................................................................37

.v.vnn 4.7. . v.vnn . v.vnn


Pile Placement ....................................................................................38
bbim
im b bi m
i m b bi mi m
h ee
h 4.8.
hheeMass ............................................................................
Working with
h h ee 40
g n nggthe Surface...........................................................................
n n gg
g g
4.8.1. Creating
nn nn g g 40

c co o c co o
4.8.2. Creating Revit Elements ....................................................................44 c
5. References ............................................................................................... 45

.v.vnn . v.vnn .v.vnn


bbim
im bbim
im bim
b im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c
2
o nn
o o nn
o
cc cc c

. v.vnn . v
. nn
v . v
. nn
v
b i
bmim b im
im
DYNAMO REPORT
b bbim
im
hhee 1. Introduction
h hee hhee
g nngg n gg
n
n ngg
1.1. What is Dynamo
n ngg
ccoois primarily a plug-in for AutodeskccRevit
Dynamo
oo and Vasari. Dynamo can c
also run as a stand-alone application with all the list and logic functionality, and with

. v
. n
v n
some
. v
. n
v
experimental geometry tools availablen using the Autodesk Shape Managernn
.v.v
bim
bim kernel.
b im
b im b b imim
h ee
h hhee to design custom computational h heedesign and
g gg a node-based Visual Programmingninterface.
Dynamo allows designers
automation processesn n gg This means
n
nngg through
nn gg
c coocan leverage computational concepts, cwithout
that a designer
coo the need to write code. In c
addition, Dynamo gives the designer the added advantage of being able to leverage
computational design workflows within the context of a BIM environment. The

. nn is able to construct custom.v.systems


v.vdesigner vnn to control Vasari Families .andv.vnn
bbim
im Parameters. b bimim bb im
im
h ee
h hhee hhee
g 1.2. The interface
n gg
n nngg
After o n ngg Revit installation and Dynamo plug-in,
n nggthe Dynamo icon may
c c o
finishing
c oo
c c
appear on the ribbon named Visual Programming.

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn . v.vnn .v.vnn


bbim
im bbim
im bim
b im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c
3
o nn
o o nn
o
cc cc c

. v.vnn . v.vnn . v.vnn


b im
b im bbim
im b im
b im
hhee h ee
h hhee
g nngg ngg
n
n gg
n n gg
n
ccoo ccoo c

. v.vnn . v.vnn .v.vnn


bim
bim bim
b im b im
b im
h ee
h h ee
h hhee
g nngg n gg
n
n gg
n nngg
ccoo ccoo c

.v.vnn  Part A: Pulldown Menus . v.vnn . v.vnn


bbim
im  Part B: Search Barbbim
im bbim
im
h ee
h  Part C: Nodeh hee h ee
h
g nngg Library
nngg
 Partg gWorkspace gg
n n D:
n n
ccoPart
o E: Execution Bar ccoo c
1.3. Definitions

. nn Nodes
v.v1.3.1. . v.vnn . v.vnn
bbim
im bbi m
i m bb i m
i m
h ee
h Nodes have input Ports
hheeon the left side and output Ports onhhetheeright side.
g n nggand program flow usually goes left tonright.
Directionality of execution
n gg
n n gg n n g g
ccoNodes
o are the objects you place and connect
a visual program.
c cootogether with Wires to form c
 Nodes can represent Revit Elements like Model Lines or Reference

.v.vnn Points. . v.vnn .v.vnn


bbim
im b bimimoperations like Math Functions. bbim
 Nodes can also represent im
h ee
h h heeand outputs. h ee
h
g n ngg
 Nodes have inputs
nn gg
 The gg of Nodes change to indicate state.nngg
n ncolors
ccoo ccoo c
4
o nn
o o nn
o
cc cc c

. v.vnn . v.vnn . v.vnn


b im
b im bbim
im b im
b im
hhee h ee
h hhee
g nngg ngg
n
ngg
n n gg
n
ccoo ccoo c
1.3.2. Wires

n n
v.vflow. You can think of them literally.v.vnasnelectrical wires that carry pulses.v.ofvnn
Wires connect between Nodes to create relationships and establish a program
.
bim
bim information from one object to thebbinext.
m
im bbimim
h ee
h hhee hhee
g n
 You createngga Wire using the mouse left-clicking nonngangoutput Port and
n ng g nn gg
ccodragging
o with the mouse button held cdown,
port of another node.
coo then connect to the input c
 To disconnect a Wire, left-click on the output Node and pull the Wire

.v.vnn away.
. v.vnn . v.vnn
bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

. nn
v.v1.3.3. . v
.vnn . v
. nn
v
bbi m
i m Ports
bbimim bbim
im
h ee
h h heeareas on Nodes, they are the receptors
h eefor Wires.
h
g Information flowsg n nggthe Ports from left to right.
Ports are the light rectangular
nngg
nn g
through
n gg
n
ccoInputs
o Ports are on the left side of the Node.
ccoo c
 Outputs Ports are on the right side of the Node.

.v.vnn . v.vnn .v.vnn


bbim
im bbim
im bim
b im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c
5
o nn
o o nn
o
cc cc c

. nn
v.v1.4. . v. nn
v . v
. nn
v
b i
bmim An example
bbimim bbim
im
hhee There is a beginning h hee about how it work in Dynamo environment.
example h ee This
h
g n nga greference point by coordinates (x,y,z). nngg
n ngg
program help us create
nn gg
ccoInput
o port: x,y,z values ccoo c
 Output port: a reference point

. v.vnn v.vnn
Let’s see the connectivity between them:
. .v.vnn
bim
bim bim
b im b im
b im
h ee
h h ee
h hhee
g nngg n gg
n
n gg
n nngg
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im 2. Working with Data bbim im b bimim
h ee
h hhee h ee
h
g 2.1. Data types nn gg n ngg
n gg
n n gg
n
Thereoo three types of data that can be usedcincooDynamo: number, string and
cc are
boolean. User can choose one of them or more depend on what kind of input
c
requirements in each program.

.v.vnn . v.vnn . v.vnn


bbim
im b bimim b bim
im
h ee
h h hee h hee
g nn gg n ngg
2.2.
nngg
Math functions
n ngg
ccoo ccoo
Dynamo is used to create algorthims that take input(s), extract and process the
c
input's data to return an output or outcome. Here you can see we have a series of

. nn
v.vmathematical operators or functions like n
. v
. v n subtraction, multiplication .andv.vnn
addition,

i m
i
bb to…m i
division…Or having some functions
bb m
i m i m
i
like less than one another, equal to or not
bb m
equal
e e e e ee
ghh nn g ghh
nn gghh
nng g nng g
cco o cco o c
6
o nn
o o nn
o
cc cc c

. v.vnn . v.vnn . v.vnn


b im
b im bbim
im b im
b im
hhee h ee
h hhee
g nngg ngg
n
n gg
n n gg
n
ccoo ccoo c

. v.vnn . v.vnn .v.vnn


bim
bim bim
b im b im
b im
h ee
h h ee
h hhee
g nngg n gg
n
n gg
n nngg
ccoo ccoo c

.v.vn n
2.3. Working with Text String
. v.vnn . v.vnn
bbim
im bbim
imthis node take two inputs: the string,bbwhich
Here is the ChangeCase node, imimwe
h ee
h h hee
already have in the workspace. hh ee
g nngg n ngg
n ngg n ngg
ccoo ccoo c

.v.vnn With String.Length function, the.vresult


. vnnwill show a number of characters in.v.avnn
bbim
im input string. b bimim bbimim
h ee
h h hee h hee
g nngg n gg
n
n gg
n n ngg
ccoo ccoo c

. nn Working with a List


v.v2.4. . v.vnn .v.vnn
bbim
im bbi m
i m b i
b m
i m
h ee
h hh
Another powerful aspecteeof using Dynamo is the ability to process
h heemore than
g nngg at a time.
one and piece of information n ngg
n ngg n ngg
ccoo ccoo c
7
o nn
o o nn
o
cc cc c

. v.vnn For this example, let's go ahead.v.andvnnuse three inputs and we'll also drag.v.invnn
b im
b im maybe three Integer Sliders to plug
bbim mListCreate node. Or maybe in somebbicases
iinto mimwe
hhee h hee h hee
g can use Number Slider g
nn g of Integer Slider.
instead
n gg
n
n ngg nngg
ccoo ccoo c

. v.vnn . v.vnn .v.vnn


bim
bim bbim
im b im
b im
h ee
h hhee hhee
g nngg n gg
n
n nggwill show how to use a list of data as inputs:
nngg
ccoo
Another case
ccoo c
 Calculate the sum of a list.
 Calculate the square root of numbers in a list.
.v.vnn . v.vnn . v.vnn
bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im b bim
An example of creating a list ibymusing Range node: b im
b im
h ee
h h hee hhee
g n ngg n gg
n
nngg nngg
ccoo ccoo c

.v.vnn . v.vnn .v.vnn


bbim
im b im
b m to managing a list in Dynamo: bbim
irelated im
h ee
h There are some simplee
h h e
nodes
hhee
g nngg nngg
n ngg
 Index of a list:
n ngg
ccoo ccoo c
8
o nn
o o nn
o
cc cc c

. v.vnn . v.vnn . v.vnn


b im
b im bbim
im b im
b im
hhee h ee
h hhee
g nngg ngg
n
n gg
n n gg
n
ccoo ccoo c

. v.vnn v.vnn v.vnn


 Give a total number in a list & combine two lists into one.
. .
bim
bim bim
b im b im
b im
h ee
h h ee
h hhee
g nngg n gg
n
n gg
n nngg
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn v.vnn
 Drawing circles and polygons depend on a list:
. . v.vnn
bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn . v.vnn .v.vnn


bbim
im bbim
im bim
b im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c
9
o nn
o o nn
o
cc cc c

. v.vnn . v.vnn . v.vnn


b im
b im bbim
im b im
b im
hhee h ee
h hhee
g nngg ngg
n
n gg
n n gg
n
ccoo ccoo c

. v.vnn . v.vnn .v.vnn


bim
bim b im
b im b im
b im
h ee
h hh ee hhee
g n ngg n gg
n
n ngg nngg
ccoList.Map
o
Function:
ccoo c
Let’s see the example as belows:
.v.vnn . v.vnn . v.vnn
bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn Notice that the List.Count node has . v.vnonninput. It is being used as a function,.vso.vnn
bbim
im the List.Count node will be applied
b bim
imto every individual list one step down
b im
b im
in the

h ee
h hierarchy. The blank inputhheList.Countcorresponds
e to the list input ofhhee
g n ngg of
n ngg List.Map.

2.5. Code Block


n ngg n ngg
ccoo ccoo
Code blocks are a window deep into DesignScript, the programming language
c
at the heart of Dynamo. Built from scratch to support exploratory design workflows,

. nn
v.vDesignScript . v
. nn that offers both immediate feedback
v
is a readable and concise language
.v. nn
v
bbi m
i m i
to small bits of code and also scales
b b m
i m imim
to large and complex interactions. DesignScript
bb
h ee
h hh
also forms the backbone of theeeengine that drives most aspects of Dynamo
h hee“under the
g hood”. Because nearlyn nggof the functionality found in Dynamonnodes
all n ggand interactions
nngg nn gg
ccoo ccoo c
10
o nn
o o nn
o
cc cc c

. nn
v.vhave . v
. nn
v . v
. nn
v
b i
bmim b im
b im interactions and scripting in a fluid
b b m
im
iway.
a one-to-one relationship with the scripting language, there are unique

hhee opportunities to move


hhee
between node-based
h hee
g n ngg n ngg
n ngg nngg
ccoo ccoo c

. v.vnn . v.vnn . v.vnn


bim
bim b bimim bbimim
h ee
h hheare
e a text-scripting interface within ahhvisual-scripting
ee
g gbegused as numbers, strings, formulas,nand
In short, code blocks
n n nggother data types.
environment. They
n nggcan
nngg
ccoois designed for Dynamo, so one cancdefine
The code block
coo arbitrary variables in the c
code block, and those variables are automatically added to the inputs of the node:

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g n ngg nngg
nngg n gg
n
ccoQuery
o ccoo c
 Query action:
action:

.v.vnn . v.vnn .v.vnn


bbim
im bbim
im bim
b im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c
11
o nn
o o nn
o
cc cc c

. v.vnn . v.vnn . v.vnn


b im
b im bbim
im b im
b im
hhee h ee
h hhee
g nngg ngg
n
n gg
n n gg
n
ccoo ccoo c

. nn There are a few basic shorthand .methods


v.vmake v
. nn in the code block which, simply .put,v.vnn
v
bi
bmim i m
i
data management a lot easier.
bb m
We'll break down the basics below and m
b i
b i m
discuss

h ee
h h heeboth for creating and querying data. hhee
how this shorthand can be used
g nn gg n ngg
nngg nngCode
g Block Equilvalent
ccoo ccoo
Data Type Standard Dynamo
c
Numbers

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g Strings
nngg nngg
nn gg n gg
n
ccoo ccoo c
Sequences

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g Ranges
nngg nngg
nn gg n gg
n
ccoo ccoo c
Get Item at Index

.v.vnn . v.vnn .v.vnn


bbim
im bbim
im bim
b im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c
12
o nn
o o nn
o
cc cc c

. v.vnn . v.vnn . v.vnn


b im
b im bbim
im b im
b im
hhee h ee
h hhee
g Create List
nngg ngg
n
n ngg n gg
n
ccoo ccoo c
Concatenate Strings

. v.vnn . v.vnn .v.vnn


bim
bim b im
b im b im
b im
h ee
h hhee hhee
g nngg
Conditional Statements
n gg
n
n ngg nngg
ccoo ccoo c
 Advanced Ranges:

.v.vnn Creating advanced ranges allows.v.vusnnto work with list of lists in a simple
. v.vnn
bbim
im fashion. In the examples below,bbiwe're
mimisolating a variable from the primary
bbim
imrange
h ee
h h herange
e of that list. h hee
g n ngg
notation, and creating another
nngg
n ngg n ngg
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vn n Creating nested ranges, compare n


. v
. v n
the notation with a "#" vs. the notationnn
.v.v
bbim
im By controlling the "end" value inbbairange,
m
im we create more ranges of differingbblengths.
without. The same logic applies as in basic
imim
ranges, except it gets a little more complex.

h ee
h h hee h hee
g 2.6. Custom Nodenn
gg n ngg
ngg
n n ngg
ccoo ccoo c
13
o nn
o o nn
o
cc cc c

. v.vnn The custom node environment.v.vnisndifferent from the Dynamo graph . v.vnn
b im
b im environment, but the interactionbisbifundamentally
m
im b bimim
e e e e the same. With that e e
said, let's create
ghh our first custom node. gg
nn
hh
nn g ghh
Here o
gg
nnexample that we have seen before: oonn
iso
gg
cc an
cc c

. v.vnn . v.vnn .v.vnn


bim
bim bim
b im b im
b im
h ee
h h ee
h hhee
g nngg n gg
n
n gg
n nngg
ccoo ccoo c

.v.vn n vvnn
Now we get started to create a custom node and it seems like a sub-program.
v.vnn
The important thing is that we have to. .indicate the exact input and output for .this
bbim
im custom node. bbimim bbimim
h ee
h hh ee hhee
g n nggNode, and creating two inputs and annoutput
ngg for the custom
n ngg
Click New\Custom
n ngg
node.
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im b im
b im bbimim
h ee
h h ee
h hhee
g n gg
n nngg
n ngg n ngg
ccoo c oo
c c
Come back to Home WorkSpace, we need to re-arrange the Dynamo diagram in
the followings:

.v.vnn . v.vnn .v.vnn


bbim
im bbim
im bim
b im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c
14
o nn
o o nn
o
cc cc c

. v.vnn . v.vnn . v.vnn


b im
b im bbim
im b im
b im
hhee h ee
h hhee
g nngg ngg
n
n gg
n n gg
n
ccoo ccoo c

. v.vnn . v.vnn .v.vnn


bim
bim b bimim b b im
im
h ee
h hh ee hhee
g n gg
n nngg
n ngseegabove, the final result is the same withnntheggprevious one.
oo
As we can
c c ccoo c
2.7. Functions

. n n v.vnnin a parametric file, and can be viewed


Functions can be created in a code block and recalled elsewhere in a Dynamo
v.vdefinition. This creates another layer of.control . v.vnn
bbim
im as a text-based version of a custom b bimimnode. In this case, the "parent" codebbiblock
mim is
h ee
h hhelocated
e anywhere on the graph. hh ee
g readily accessible and
nn gg
can be
n ngg
n ngg n ngg
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn Call the function with another Code


. v.vnBlock
n in the same file by giving the name .v.vnn
bbim
im and the same number of arguments.
bbimiItmworks just like the out-of-the-box nodes
b bimiinmyour
h ee
h h hee hhee
g library.
n ngg n ngg
2.8. Workingn ggExcel
n
with n ngg
ccoo ccoo c
15
o nn
o o nn
o
cc cc c

. nn
v.v2.8.1. . v
. vnn . v
. nn
v
b i
bmim Reading data
bbimim b im
b im
hhee Now the column datahheinean excel file is imported and assign tohahecolumn
e in the
g Revit schedule. Let’snnggto the Dynamo code as belows: nngg
n gg
n
refer
nngg
ccoo ccoo c

. v.vnn . v.vnn . v.vnn


bim
bim b b imim b im
b im
h ee
h h hee h hee
g n n gg n ngg
nngg nngg
c coo c coo c
We can add this code to filter all blank row that is not having any number value
and mask them.

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c
Some of nodes have been used as:

.v.vnn . . nn
 Categories: choose a category in Revit system.
v v . v
. nn
v
bbim
im i
 All Elements of Category:
b b m
i m show a list of all elements
b bimim
h ee
h hh ee
 Element.GetParameterValueByName:
h hee of all
show a list of properties
g n ngg nngg
ngg in order to make a list following
elements.
n
 oList.Transpose: n gagright input format.
n
o
ccFile c oo
c c
Path: specify a path for an existing excel file.
 Excel.ReadFromFile: read the entire columns from a sheet.

.v.vnn . v.vnn .v.vnn


im
im im
im imim
Here is the result, the data from an excel file:

eebb eebb eebb


h
g h h
gg h h
gg h
ggnn ggnn
n n n n
ccoo ccoo c
16
o nn
o o nn
o
cc cc c

. v.vnn . v.vnn . v.vnn


b im
b im bbim
im b im
b im
hhee h ee
h hhee
g nngg ngg
n
n gg
n n gg
n
ccoo ccoo c

. v.vnn . v.vnn .v.vnn


bim
bim bim
b im b im
b im
h ee
h h ee
h hhee
g nngg n gg
n
n gg
n nngg
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


and the data in a Revit schedule after running this program:

bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn . v.vnn .v.vnn


bbim
im 2.8.2. bbim
im bim
b im
h ee
h
Writing data
h ee
h h ee
h
g nngg nngg
n ngg n gg
n
ccoo ccoo c
17
o nn
o o nn
o
cc cc c

. v.vnn After placing rooms for all levels.vof.vnthisn project, we need to add some of these. v.vnn
b im
b im information such as Name, Number, bbimim b biarem
ima lot
hhee h hee Department…In properties palette,
h hee
there
g n nggit can be extract to schedules like Area,nPerimeter…
of things about room that gg
n
n ngg n ngg
ccoo ccoo c

. v.vnn . v.vnn .v.vnn


bim
bim bim
b im b im
b im
h ee
h h ee
h hhee
g nngg n gg
n
n gg
n nngg
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn . v
. nn
v .v. vnn
bbim
im imim imim
Here is a Dynamo diagram shows how to write data into a Excel spreadsheet.
b b b b
h ee
h hh ee
The excel file is created before running program.
h ee
h
g n n gg nngg
n ngg n gg
n
ccoo ccoo c
18
o nn
o o nn
o
cc cc c

. v.vnn . v.vnn . v.vnn


b im
b im bbim
im b im
b im
hhee h ee
h hhee
g nngg ngg
n
n gg
n n gg
n
ccoo ccoo c

. v.vnn . v.vnn .v.vnn


bim
bim bim
b im bbimim
h ee
h hh ee h ee
h
g nn gg
Using the node Excel.WriteToFile:
nn gginto a sheet.
write all previous properties

Here o nn g g nng g
ccisothe final result: ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
3.
n ngg
Designing Geometry
n gg
n
ccoo
3.1. Overview ccoo c
When a programming language or environment has a geometry kernel at its

. nn we can unlock the possibilities.v.forvnndesigning precise and robust models,


v.vcore, .v. vnn
bbi m
i m b bi m
i m
automating design routines, and generating design iterations with algorithms. m
b bi im
h ee
h hh ee in the context of algorithms, hcomputing,
hee and
g gdaunting;
g however, there are a few key,nand
Understanding geometry
nn nggrelatively simple,
n ngg
complexity, may sound
n ngg
ccoo ccoo c
19
o nn
o o nn
o
cc cc c

. nn
v.vprinciples . v
. nn
v . v
. nn
v
b i
bmim imim im
im
that we can establish as fundamentals to start building towards more
bb bb
hhee advanced applications.
h ee
h hhee
g nn gg n ngg
n ngg n n gg
ccoo ccoo c

. v.vnn . v.vnn .v.vnn


bim
bim bbim
im b im
b im
h ee
h h hee hhee
g n ngg n ngg
n ngg the Geometry types and how they narengrelated
Understanding g will allow us to
navigate c coocollection of Geometry Nodes available
the ccooto us in the Library. The c
Geometry Nodes are organized alphabetically as opposed to hierarchically - here they

v.vnn v.vnn v.vnn


are displayed similar to their layout in the Dynamo interface.
. . .
bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn . v.vnn .v.vnn


bbim
im bbim
im bim
b im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c
20
o nn
o o nn
o
cc cc c

. v.vnn Additionally, making models in .Dynamo


v.vnn and connecting the preview of what
. v.vnn
b im
b im we see in the Background Preview b im
b itomthe flow of data in our graph should
b bim
im
hhee hhee h hee become
g n gg
n
more intuitive over time.
n ngg
n ng g nng g
ccoo
3.2. Points
ccoo c
A Point is defined by nothing more than one or more values called coordinates.

. nn or context in which it resides. .The


v.vnmost
n common kind of Point in Dynamo v.vnn
How many coordinate values we need to define the Point depends upon the Coordinate
v.vSystem .
bim
bim exists in our three-dimensionalbWorld
bimimCoordinate System and has three bcoordinates
bimim
h ee
h h hee h he e
g [X,Y,Z].
nngg nngg
n gg
n n ngg
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im bbimim bbim
im
h ee
h hhee h ee
h
g n nggfunctions nngg
n ngg
A Circle using the x=r*cos(t)and
n gg
n
y=r*sin(t)

ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn . v.vnn .v.vnn


bbim
im 3.3. bbim
im bim
b im
h ee
h
Vectors
h ee
h h ee
h
g nngg nngg
ngg
n n gg
n
ccoo ccoo c
21
o nn
o o nn
o
cc cc c

. v.vnn A vector is a geometric quantity.describing


v.vnn Direction and Magnitude. Vectors . v.vnn
b im
b im are abstract; ie. they represent ba bquantity,
im
im not a geometrical element. Vectors b bim mbe
ican
hhee h ee
h h hee
g n nggbecause they both are composed of anlistnggof values.
easily confused with Points
nngg nngg
ccoo ccoo c

. v.vnn . v.vnn .v.vnn


bim
bim bim
b im b im
b im
h ee
h h ee
h hhee
g nngg n gg
n
n gg
n nngg
ccoo ccoo c

.v.vnn Using Plane.ByOriginNormal Node . nncreating a new plane that perpendicular


v.vfor . v.vnn
bbi m
i m to the previous vector.
b im
b im bbimim
h ee
h hhee hh ee
g n gg
n n ngg
n ngg nngg
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c
3.4. Curves
.v.vnn The term Curve is generally a catch-all. v.vnnfor all different sort of curved (even.v.ifvnn
b im
b im straight) shapes. Capital "C" Curve b im
b iismthe parent categorization for all of bthose
bim
im
e e e e ee shape
ghh nn gg hh etc.
types - Lines, Circles, Splines,
nn g ghh
nng g nn g g
cco o cc o o c
22
o nn
o o nn
o
cc cc c

. v.vnn Let's make a sine curve in Dynamo


. v.vnnusing two different methods to create
. v.vnn
b im
b im NURBS Curves to compare the bresults.
bim
im b bimim
hhee h hee hhee
g n ngg n ngg
n ngg n ngg
ccoo ccoo c

. v.vnn . v.vnn .v.vnn


bim
bim bim
b im b im
b im
h ee
h h ee
h hhee
g nngg n gg
n
n gg
n nngg
3.5. ccoo
Surfaces ccoo c
A Surface is a mathematical shape defined by a function and two parameters,

. nn of t for Curves, we use u and v .tov.describe


v.vInstead vnn the corresponding parameter space.
. v.vnn
bbim
im This means we have more geometrical
b bim
imdata to draw from when working withbbithis
m
imtype
h ee
h ee have tangent vectors and normal planes
of Geometry. For example,hCurves
h hhee(which can
g nnggcurve's length), whereas Surfaces havenngnormal
g vectors and
nngg
rotate or twist along the
nngg
ccoothat will be consistent in their orientation.
tangent planes
ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn This is an example shows how to.create


v.vnna surface by Surface.ByPatch node .andv.vnn
bbim
im we can combine some other nodes bb imim
to
b bim
subtract surface in Dynamo. Beside that iwemuse
h ee
h Surface.Thicken to make ahhee solid with a specified thickness. hhee
g nngg simple
n ngg
n ngg nngg
ccoo ccoo c
23
o nn
o o nn
o
cc cc c

. v.vnn . v.vnn . v.vnn


b im
b im bbim
im b im
b im
hhee h ee
h hhee
g nngg ngg
n
n gg
n n gg
n
ccoo ccoo c

. v.vnn . v.vnn .v.vnn


bim
bim bbimim bbimim
h ee
h h hee h hee
g n nggbeen used as: nngg
n ngg
Some of nodes have
n gg
n
ccoSurface.ByPatch:
o ccooin the interior of a closed
create a surface by filling c
boundary defined by input curves.

.v.vnn . . nn
 Geometry.Trim: removes elements of the entity closest to the pick point.
v v . v
. nn
v
bbim
im  Geometry.IntersectAll:
i m
i
botherm
get the intersection of geometry for thism
b geometries. bb i i m
object

h ee
h and a collectionee
hh thicken surface into a solid. gghh
of e e
g nn gg
 Surface.Thicken: nn
nn g g nng g
Solidsoo o o
3.6.
cc cc c
Solids consist of one or more Surfaces that contain volume by way of a closed

. nn . . nn
boundary that defines "in" or "out." Regardless of how many of these Surfaces there
v.vare, vv . v
. nn
v
bbi m
i m b bi m
i m b bi m
i m
they must form a "watertight" volume to be considered a Solid. Solids can be

h ee
h created by joining Surfaces e
hhorePolysurfaces together or by using operations
hhee such as
g loft, sweep, and revolve.gg
n n n n ggare also Solids.
Sphere, Cube, Cone and Cylinder primitives

Now o nn gg n ngg
ccweowant to show you two ways to make acsolid
cooin Dynamo: c
 Create a solid by lofting between input cross section closed curves.

.v.vnn . v.vnn .v.vnn


bbim
im bbim
im bim
b im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c
24
o nn
o o nn
o
cc cc c

. v.vnn . v.vnn . v.vnn


b im
b im bbim
im b im
b im
hhee h ee
h hhee
g nngg ngg
n
n gg
n n gg
n
ccoo ccoo c

. v.vnn . v.vnn .v.vnn


bim
bim bim
b im bbimim
h ee
h h hee h ee
h
g n ngcurve
g in the normal direction by the specified
n nggdistance.
n ngg
 Extrudes a
nn gg
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im b im
b im b bimim
h ee
h h hee hhee
g nngg n gg
n
Importingg g gg
3.7.
nn Geometry
n n
coo examples show a series of components
Thecfollowing ccoo used to browse for a file, c
import the file contents, and convert it into usable Dynamo geometry. Dynamo also

. nn us the ability to filter and select .specific


v.vgives v
. nn objects to import from a DWG file.v.-vnn
v
bbi m
i m which we'll demonstrate below.
bbimim bim
b im
h ee
h h hee h ee
h
g n ngg n ngg
nngg n gg
n
ccoo ccoo c
25
o nn
o o nn
o
cc cc c

. v.vnn . v.vnn . v.vnn


b im
b im bbim
im b im
b im
hhee h ee
h hhee
g nngg ngg
n
n gg
n n gg
n
ccoo ccoo c

. v.vnn . v.vnn . v.vnn


bim
bim b bimim b im
b im
h ee
h hhee hhee
g  Stepg n ngg nn g g
nn gUse the File Path component to browse
1:
nnggfor the DWG file to be
ccoimported
o into Dynamo. ccoo c
 Step 2: Connect to FileLoader.FromPath to read the file.
 Step 3: Use the FileLoader.GetImportedObjects component to parse the
.v.vnn . v.vnn . v.vnn
im
im imim im m
geometry into Dynamo Studio.
bb bb
 Step 4: ImportedObject.ConvertToGeometries will convert bb iobjects
h ee
h h hee in the Dyanamo workspace. hhee the
g n ngg
into usable geometry
nngg
n nggthe above image, all types of geometryninngtheg DWG file - surfaces,
c oo
As shown
c in
ccoo c
meshes, curves and lines - are imported into Dynamo.

4. Interacting with Revit


. n n
v.v4.1. Selection . v.vnn . v.vnn
bbim
im b bim
im b bim
im
h ee
h Revit is a data-richhhee
environment. h hee abilities
This gives us a range of selection
g n ngg "point-and-click". We can query thenngRevit
g database and
n ngg
which expands far beyond
n ngg
dynamicallyo o Revit elements to Dynamo geometry oowhile performing parametric
c
operations.
clink
c c c

.v.vnn . v.vnn .v.vnn


bbim
im bbim
im bim
b im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c
26
o nn
o o nn
o
cc cc c

. v.vnn . v.vnn . v.vnn


b im
b im bbim
im b im
b im
hhee h ee
h hhee
g nngg ngg
n
n gg
n n gg
n
ccoo ccoo c

. v.vnn . v.vnn .v.vnn


bim
bim bim
b im b im
b im
h ee
h h ee
h hhee
g nngg n gg
n
n gg
n nngg
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im b bimim
h ee
h hh eeproperly, it's important to have a full-understanding
h hee of
g n n gg
To select Revit elements
n ngg
the Revit elementgg
hierarchy. Want to select all the wallsg ga project? Select by
n n nn in
category. ccooto select every Eames chair in your mid-century
Want ccoo modern lobby? Select c
by family. Before jumping into an exercise, let's do a quick review of the Revit

v.vnn v.vnn v.vnn


hierarchy.
. . .
bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn . v.vnn .v.vnn


bbim
im bbim
im bim
b im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c
27
o nn
o o nn
o
cc cc c

. v.vnn The three images below breakdown . v.vnnthe main categories for Revit element
. v.vnn
b im
b im selection in Dynamo. These arebbgreat
im
imtools to use in combination, and we'll
b bimim
hhee h hee h hee explore
g n ngg exercises.
some of these in the following
n ngg
n ngg n ngg
ccoo ccoo c

. v.vnn . v.vnn .v.vnn


bim
bim bim
b im b im
b im
h ee
h h ee
h hhee
g nngg n gg
n
n gg
n nngg
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn . v.vnn .v.vnn


bbim
im bbim
im bim
b im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c
28
o nn
o o nn
o
cc cc c

. v.vnn . v.vnn . v.vnn


b im
b im bbim
im b im
b im
hhee h ee
h hhee
g nngg ngg
n
n gg
n n gg
n
ccoo ccoo c

. v.vnn . v.vnn .v.vnn


bim
bim bim
b im b im
b im
h ee
h h ee
h hhee
g nngg n gg
n
n gg
n nngg
ccoo ccoo c

.v.vnn We introduce an example as .belows v.vnn to clarify Selecting procedure, .thev.vnn


bbim
im properties of Revit elements willbbebim m in Dynamo environment after that.
iutilized b im
b im
h ee
h h hee h ee
h
g n ngg nn gg
n ngg n gg
n
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

. nn Edition
v.v4.2. . v.vnn . v.vnn
bbim
im This exercise focuses onbbimimRevit elements without performingbbgeometric
imim
h ee
h hheenot importing Dynamo geometry here,
editing
h heejust editing
g operation in Dynamo.
n ngg
We're
nngg
n ngg project. This exercise is basic, and ntongthegmore advanced Revit
parameters in a Revit
ccoo ccoo c
29
o nn
o o nn
o
cc cc c

. nn
v.vusers, . v
. nn
v . v
. nn
v
b i
bmim imimto customize on a large scale. Thisbisbiallm
imdone
notice that these are instance parameters of a Revit element, but the same logic
b b
hhee can be applied to an array
hof
h ee
elements
h hee
g n ngg
with the "Element.SetParameterByName" node.
n ngg
n ngg n ngg
ccoo ccoo c

. v.vnn . v.vnn .v.vnn


bim
bim bim
b im b im
b im
h ee
h h ee
h hhee
g nngg n gg
n
n gg
n nngg
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im 4.3. b bim
im b bimim
h ee
h
Creation
hhee hh ee
g You can createn ngangarray of Revit elements in Dynamonnwith gg full parametric
nngnodes
g in Dynamo offer the ability to import n nggelements from generic
cco o
control. The Revit
c coo
geometries to specific category types (like walls and floors). In this section, we'll focus
c
on importing parametrically flexible elements with adaptive components.

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn . v.vnn .v.vnn


bbim
im bbim
im bim
b im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c
30
o nn
o o nn
o
cc cc c

. v.vnn . v.vnn . v.vnn


b im
b im bbim
im b im
b im
hhee h ee
h hhee
g nngg ngg
n
n gg
n n gg
n
ccoo ccoo c

. v.vnn . v.vnn .v.vnn


bim
bim bim
b im b im
b im
h ee
h h ee
h hhee
g nngg n gg
n
n gg
n nngg
ccoo ccoo c
You can use geometry in Dynamo to create Revit geometry. Let’s begin with

. nn Revit elements that are created by.Dynamo


v.vsome v.vnn diagrams: . v.vnn
bbim
im  Creating a floor: bb imim bbim
im
h ee
h h hee h ee
h
g n ngg nngg
nngg n gg
n
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn . v.vnn
 Creating a straight beam: .v.vnn
bbim
im bbim
im bim
b im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c
31
o nn
o o nn
o
cc cc c

. v.vnn . v.vnn . v.vnn


b im
b im bbim
im b im
b im
hhee h ee
h hhee
g nngg ngg
n
n gg
n n gg
n
ccoo ccoo c

. v.vnn . v.vnn .v.vnn


bim
bim bim
b im b im
b im
h ee
h h ee
h hhee
g nngg n gg
n
nngg nngg
ccoCreating
o a basic wall: ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im bbimim b im
b im
h ee
h h ee
h h hee
g nngg n ngg
4.4.
nngg Placement
Adaptive Component
nngg
ccoMetric
Using
o Mass to create 3 model lines withcthe
coodivided path. c

.v.vnn . v.vnn .v.vnn


bbim
im bbim
im bim
b im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c
32
o nn
o o nn
o
cc cc c

. v.vnn . v.vnn . v.vnn


b im
b im bbim
im b im
b im
hhee h ee
h hhee
g nngg ngg
n
n gg
n n gg
n
ccoo ccoo c

. v.vnn . v.vnn .v.vnn


bim
bim bim
b im b im
b im
h ee
h h ee
h hhee
g nngg n gg
n
n gg
n nngg
ccoo ccoo c
Now we must create an adaptive object with 3 points and along with 3 paths

. nn
v.vabove. . v.vnn . v.vnn
bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c
Using this Dynamo code we can place exactly triangle panel into the position.

.v.vnn . v.vnn .v.vnn


bbim
im bbim
im bim
b im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c
33
o nn
o o nn
o
cc cc c

. v.vnn . v.vnn . v.vnn


b im
b im bbim
im b im
b im
hhee h ee
h hhee
g nngg ngg
n
n gg
n n gg
n
ccoo ccoo c

. v.vnn . v.vnn .v.vnn


bim
bim bbimim b bimim
h ee
h h ee
h hhee
g n gg
n nngg
nngg nngg
Or ccoocan use DividedPath.Points node insteadccoofoElement.Geometry node to
we c
get the same result.

. nn Unfolding Elements
v.v4.5. . v.vnn . v.vnn
bbim
im 4.5.1. Unfolding a Cuboid bbim im b bimim
h ee
h hhee h hee
g n nggbeen used as:
Some of nodes have
nngg
n ng g nngg
ccoCuboid.ByLengths:
o
length, and height.
ccooat WCS origin, with width,
create a cuboid centered
c
 Topology.Faces: the faces of the Topology.

.v.vnn . v.vnn
 Unfolding.UnfoldListOfFaces: method for taking a list of planar faces . v.vnn
bbim
im and unfolding them,bbim m returns an unfolding object thatbbstores
ialso imimthe
h ee
h starting and h heelocations of unfolded faces, this is usedhheforegenerating
g nng gfinal
n ng g
n n gg
labels.
n n gg
ccoo ccoo c

.v.vnn . v.vnn .v.vnn


bbim
im bbim
im bim
b im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c
34
o nn
o o nn
o
cc cc c

. v.vnn . v.vnn . v.vnn


b im
b im bbim
im b im
b im
hhee h ee
h hhee
g nngg ngg
n
n gg
n n gg
n
ccoo ccoo c

. v.vnn . v.vnn .v.vnn


bim
bim b im
b im b im
b im
h ee
h hh ee h hee
g 4.5.2.
gg
Unfolding a Sphere
n n nngg
n ngg we need to build a Dynamo diagram
n ggto create a sphere with
n
ccosurfaces.
o Some nodes will be used to ccreate
coo this object but we do not
In the beginning
surrounding c
show its form now. A set of points along with the form will appear depend on

. nn U and V parameters. The U .parameter


v.vspecified v
. nn parallel to vertical axis and the.v.Vvnn
v
bbi m
i m parameter parallel to horizontal axis.m
bbi im bbimim
h ee
h hhee h hee
g n ngg nn gg
n n gg n ngg
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im b b im
im bbim
im
h ee
h h hee h ee
h
g nngg nngg
nngg n gg
n
ccoohave been used as:
Some of nodes ccoo c
 Sphere.ByCenterPointRadius

.v.vnn  PolySurface.BySolid
. v.vnn .v.vnn
bbim
im  PolySurface.Surfacesim
bb im bim
b im
h ee
h hhee
 Surface.PointAtParameter h ee
h
g n ngg nngg
n ngg n gg
n
ccoo ccoo c
35
o nn
o o nn
o
cc cc c

. nn
v.vSome . v
. nn
v . v
. nn
v
b i
bmim imim
PolyCurve need to be created after that.
b b b im
b im
hhee hhee hhee
g nn gg ngg
n
n ngg n gg
n
ccoo ccoo c

. v.vnn . v.vnn .v.vnn


bim
bim b bim
im b im
b im
h ee
h hhee hhee
g nngg n gg
n
n n gg n ngg
ccowillo be showed by using some nodes as belows:
All surfaces ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

. nn some nodes for unfolding and numbering


v.vUsing . v.vnn each separated surfaces of the sphere.v.vnn
bbim
im element. b im
b im b bimim
h ee
h h hee hh ee
g n ngg n ngg
n ngg n n gg
ccoo ccoo c

.v.vnn . v.vnn .v.vnn


bbim
im bbim
im bim
b im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c
36
o nn
o o nn
o
cc cc c

. v.vnn . v.vnn . v.vnn


b im
b im bbim
im b im
b im
hhee h ee
h hhee
g nngg ngg
n
n gg
n n gg
n
ccoo ccoo c

. v.vnn . v.vnn .v.vnn


bim
bim bbim
im bbimim
h ee
h hhee h hee
g n ngg n gg
n
Dynamon nggRebar n gg
n
4.6.
c coo for
c coo c
Before handling with nodes we have to install “Dynamo for Rebar” and
“BIM4Struc” Package.

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im b bimim b im
b im
h ee
h h
Now let’s get started heecreate rebar on a Curved model in Revit.hhee
to
g n ngg n ngg
n ngg n ngg
ccoo ccoo c

.v.vnn . v.vnn .v.vnn


bbim
im bbim
im bim
b im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c
37
o nn
o o nn
o
cc cc c

. v.vnn . v.vnn . v.vnn


b im
b im bbim
im b im
b im
hhee h ee
h hhee
g nngg ngg
n
n gg
n n gg
n
ccoo ccoo c

. v.vnn . v.vnn .v.vnn


bim
bim b b im
im b im
b im
h ee
h h hee hhee
g nngg n gg
n
n ngg nngg
ccoo ccoo c
Some of nodes have been used as:

 Rebar.FollowingSurface
.v.vnn  RebarContainer.ByCurve . v.vnn . v.vnn
bbim
im bb imim bbim
im
h ee
h
 Rebar Style
hhee h ee
h
g  Rebar Barg
nn g
Type
nngg
nnggHook Orientation
 Rebar n gg
n
ccoRebar
o Hook Type ccoo c
4.7. Pile Placement

.v.vnn We need to use some nodes for.reading


v.vnn an exsisting data from an excel file.
. v.vnn
bbim
im Let’s take a look: bbimim b bim
im
h ee
h h ee
h hhee
g nngg n ngg
nn gg n ngg
ccoo ccoo c

.v.vnn . v.vnn .v.vnn


bbim
im bbim
im bim
b im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c
38
o nn
o o nn
o
cc cc c

. v.vnn . v.vnn . v.vnn


b im
b im bbim
im b im
b im
hhee h ee
h hhee
g nngg ngg
n
n gg
n n gg
n
ccoo ccoo c

. v.vnn . v.vnn . v.vnn


bim
bim bbim
im b im
b im
h ee
h h ee
h hhee
g nngg n gg
n
After o
n n gg n ng g
c c o we use the FamilyInstance.ByCoordinates
that,
ccoo node to place piles in c
Revit modelspace.

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c
And here is the final result:

.v.vnn . v.vnn .v.vnn


bbim
im bbim
im bim
b im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c
39
o nn
o o nn
o
cc cc c

. v.vnn . v.vnn . v.vnn


b im
b im bbim
im b im
b im
hhee h ee
h hhee
g nngg ngg
n
n gg
n n gg
n
ccoo ccoo c

. v.vnn . v.vnn .v.vnn


bim
bim b im
b im b im
b im
h ee
h h hee hhee
g n gg
n n gg
n
n gg
n nngg
c oo
c ccoo c
4.8. Working with Mass

v.vnn nn nn
4.8.1. Creating the Surface
. . v
. v . v
. v
bbim
im i m
i
In Revit workspace, we create
bb m
two floors as belows:
bbim
im
h ee
h h hee h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn . v.vnn .v.vnn


bbim
im bbim
im bim
b im
h ee
h hhee h ee
h
g nn gnode:
g nngg
n n gg
Use Select Edge
n gg
n
ccoo ccoo c
40
o nn
o o nn
o
cc cc c

. v.vnn . v.vnn . v.vnn


b im
b im bbim
im b im
b im
hhee h ee
h hhee
g nngg ngg
n
n gg
n n gg
n
ccoo ccoo c

. v.vnn . v.vnn . v.vnn


bim
bim b bimim b bimim
h ee
h hh ee h hee
g n ngg n ngg
n ngg nn gg
ccoo ccoo c
Make the lists in order to create lots of curves and paralell to original curves.

.v.vnn . . nn
 Curve.EndPoint: get the end point along the curve.
v v . v
. nn
v
bbim
im im
im im
im
 PolyCurve.ByJoinedCurves: make polycurve by joining curve. Flips
b b b b
h ee
h curve as needede
hh e
for connectivity.
hhee
g nn gg the total arc length of the curve. nngg
 Curve.Length:
n ngg
 Geometry.Translate: translate any given nn
gg
ccodisplacements
o o o geometry by the given
in the x,y,z directions. c c c

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn . v.vnn .v.vnn


bbim
im bbimim b bim
im
h ee
h h
Use Curve.Offset node
heeto create a set of new curves with a specified
h h ee amount.
g gguse Math.Sin() function for making a different
Note that, in this casenwe
n n n gg offset.
n n gg nngg
ccoo ccoo c
41
o nn
o o nn
o
cc cc c

. v.vnn . v.vnn . v.vnn


b im
b im bbim
im b im
b im
hhee h ee
h hhee
g nngg ngg
n
n gg
n n gg
n
ccoo ccoo c

. v.vnn . v.vnn .v.vnn


bim
bim b bim
im b im
b im
h ee
h hhee hhee
g n gg
n n gg
n
n gg in each curve depend on the parameter
n
Creating points
n ngvalues.
g
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im im
im
The points after Lacing as Cross Product:
bb bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn Use NurbCurve.ByPoint and Surface.ByLoft


. v.vnn nodes to create the surface for.v.avnn
bbim
im Mass element. b bim
im b bimim
h ee
h hhee hhee
g nn gg nngg
ngg
n n gg
n
ccoo ccoo c
42
o nn
o o nn
o
cc cc c

. v.vnn . v.vnn . v.vnn


b im
b im bbim
im b im
b im
hhee h ee
h hhee
g nngg ngg
n
n gg
n n gg
n
ccoo ccoo c

. v.vnn Use ImportInstance.ByGeometry.v.node


vnnto create a form in Revit depend.von.vnn
bim
bim solid, curve, surface… bbim
im bbimim
h ee
h h hee hhee
g nngg nngg
n ngg n ngg
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn . v
.vnn . v
. nn
v
bbim
im imim
User can control the shape of a Mass by change some value above:
bb bbim
im
h ee
h h hee hhee
g n ngg nn gg
n ngg nngg
ccoo ccoo c

.v.vnn . v.vnn .v.vnn


bbim
im bbim
im bim
b im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c
43
o nn
o o nn
o
cc cc c

. v.vnn . v.vnn . v.vnn


b im
b im bbim
im b im
b im
hhee h ee
h hhee
g nngg ngg
n
n gg
n n gg
n
ccoo ccoo c

. v.vnn . v.vnn .v.vnn


bim
bim b im
b im b im
b im
h ee
h hhee hhee
g n n gElements
g n gg
n
n gg
4.8.2. Creating Revit
n nngg
To ccoothe floor element, we use some nodes:ccoo
create c
 Curve.ApproximateWithArcAndLineSegments: approximate a curve

.v.vnn . v.vnn
with a collection of Arcs and Lines.
. v.vnn
bbim
im i m
i m
 Floor.ByOutlineTypeAndLevel:
bb bb i m
i
create a Revit Floor given it’s m
curve

h ee
h hhe e
outline and level.
hh e e
g nn gg nn gg
nn g g nng g
o
cc o ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn . v
. nn
v .v. nn
v
bbim
im i m
i
To create the level, we use the
b b m
node named Level.ByElevation.
bim
b im
h ee
h h ee
h h ee
h
g n ngg nn gg
n ngg nngg
ccoo ccoo c
44
o nn
o o nn
o
cc cc c

. v.vnn . v.vnn . v.vnn


b im
b im bbim
im b im
b im
hhee h ee
h hhee
g nngg ngg
n
n gg
n n gg
n
ccoo ccoo c

. v.vnn . v.vnn .v.vnn


bim
bim bim
b im b im
b im
h ee
h h ee
h hhee
g nngg n gg
n
n ngg nngg
c coo ccoo c
5. References

v.vnn v.vnn v.vnn


www.dynamoprimer.com
. www.dynamobim.org . .
bbim
im forum.dynamobim.com bb imim b im
b im
h ee
h hhee hhee
g nngg
http://www.autodesk.com/products/dynamo-studio
n gg
n
nngg nngg
ccoo ccoo c

.v.vnn . v.vnn . v.vnn


bbim
im bbim
im bbim
im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c

.v.vnn . v.vnn .v.vnn


bbim
im bbim
im bim
b im
h ee
h h ee
h h ee
h
g nngg nngg
n gg
n n gg
n
ccoo ccoo c
45

You might also like