Upload
congnghebim
View
191
Download
10
Embed Size (px)
Citation preview
1
Contents
1. Introduction ............................................................................................... 3
1.1. What is Dynamo ................................................................................... 3
1.2. The interface ......................................................................................... 3
1.3. Definitions ............................................................................................ 4
1.3.1. Nodes ................................................................................................... 4
1.3.2. Wires .................................................................................................... 5
1.3.3. Ports ..................................................................................................... 5
1.4. An example ........................................................................................... 6
2. Working with Data .................................................................................... 6
2.1. Data types ............................................................................................. 6
2.2. Math functions ...................................................................................... 6
2.3. Working with Text String ..................................................................... 7
2.4. Working with a List .............................................................................. 7
2.5. Code Block ......................................................................................... 10
2.6. Custom Node ...................................................................................... 13
2.7. Functions ............................................................................................ 15
2.8. Working with Excel ............................................................................ 15
2.8.1. Reading data ....................................................................................... 16
2.8.2. Writing data........................................................................................ 17
3. Designing Geometry ................................................................................ 19
3.1. Overview ............................................................................................ 19
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 1
Contents
1. Introduction ............................................................................................... 3
1.1. What is Dynamo ................................................................................... 3
1.2. The interface ......................................................................................... 3
1.3. Definitions ............................................................................................ 4
1.3.1. Nodes ................................................................................................... 4
1.3.2. Wires .................................................................................................... 5
1.3.3. Ports ..................................................................................................... 5
1.4. An example ........................................................................................... 6
2. Working with Data .................................................................................... 6
2.1. Data types ............................................................................................. 6
2.2. Math functions ...................................................................................... 6
2.3. Working with Text String ..................................................................... 7
2.4. Working with a List .............................................................................. 7
2.5. Code Block ......................................................................................... 10
2.6. Custom Node ...................................................................................... 13
2.7. Functions ............................................................................................ 15
2.8. Working with Excel ............................................................................ 15
2.8.1. Reading data ....................................................................................... 16
2.8.2. Writing data........................................................................................ 17
3. Designing Geometry ................................................................................ 19
3.1. Overview ............................................................................................ 19
2
3.2. Points .................................................................................................. 21
3.3. Vectors ................................................................................................ 21
3.4. Curves ................................................................................................. 22
3.5. Surfaces .............................................................................................. 23
3.6. Solids .................................................................................................. 24
3.7. Importing Geometry ........................................................................... 25
4. Interacting with Revit .............................................................................. 26
4.1. Selection ............................................................................................. 26
4.2. Edition ................................................................................................ 29
4.3. Creation .............................................................................................. 30
4.4. Adaptive Component Placement ........................................................ 32
4.5. Unfolding Elements ............................................................................ 34
4.5.1. Unfolding a Cuboid ............................................................................ 34
4.5.2. Unfolding a Sphere ............................................................................ 35
4.6. Dynamo for Rebar .............................................................................. 37
4.7. Pile Placement .................................................................................... 38
4.8. Working with Mass ............................................................................ 40
4.8.1. Creating the Surface ........................................................................... 40
4.8.2. Creating Revit Elements .................................................................... 44
5. References ............................................................................................... 45
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 2
3.2. Points .................................................................................................. 21
3.3. Vectors ................................................................................................ 21
3.4. Curves ................................................................................................. 22
3.5. Surfaces .............................................................................................. 23
3.6. Solids .................................................................................................. 24
3.7. Importing Geometry ........................................................................... 25
4. Interacting with Revit .............................................................................. 26
4.1. Selection ............................................................................................. 26
4.2. Edition ................................................................................................ 29
4.3. Creation .............................................................................................. 30
4.4. Adaptive Component Placement ........................................................ 32
4.5. Unfolding Elements ............................................................................ 34
4.5.1. Unfolding a Cuboid ............................................................................ 34
4.5.2. Unfolding a Sphere ............................................................................ 35
4.6. Dynamo for Rebar .............................................................................. 37
4.7. Pile Placement .................................................................................... 38
4.8. Working with Mass ............................................................................ 40
4.8.1. Creating the Surface ........................................................................... 40
4.8.2. Creating Revit Elements .................................................................... 44
5. References ............................................................................................... 45
3
DYNAMO REPORT
1. Introduction
1.1. What is Dynamo
Dynamo is primarily a plug-in for Autodesk Revit and Vasari. Dynamo can
also run as a stand-alone application with all the list and logic functionality, and with
some experimental geometry tools available using the Autodesk Shape Manager
kernel.
Dynamo allows designers to design custom computational design and
automation processes through a node-based Visual Programming interface. This means
that a designer can leverage computational concepts, without the need to write code. In
addition, Dynamo gives the designer the added advantage of being able to leverage
computational design workflows within the context of a BIM environment. The
designer is able to construct custom systems to control Vasari Families and
Parameters.
1.2. The interface
After finishing Revit installation and Dynamo plug-in, the Dynamo icon may
appear on the ribbon named Visual Programming.
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 3
DYNAMO REPORT
1. Introduction
1.1. What is Dynamo
Dynamo is primarily a plug-in for Autodesk Revit and Vasari. Dynamo can
also run as a stand-alone application with all the list and logic functionality, and with
some experimental geometry tools available using the Autodesk Shape Manager
kernel.
Dynamo allows designers to design custom computational design and
automation processes through a node-based Visual Programming interface. This means
that a designer can leverage computational concepts, without the need to write code. In
addition, Dynamo gives the designer the added advantage of being able to leverage
computational design workflows within the context of a BIM environment. The
designer is able to construct custom systems to control Vasari Families and
Parameters.
1.2. The interface
After finishing Revit installation and Dynamo plug-in, the Dynamo icon may
appear on the ribbon named Visual Programming.
4
Part A: Pulldown Menus
Part B: Search Bar
Part C: Node Library
Part D: Workspace
Part E: Execution Bar
1.3. Definitions
1.3.1. Nodes
Nodes have input Ports on the left side and output Ports on the right side.
Directionality of execution and program flow usually goes left to right.
Nodes are the objects you place and connect together with Wires to form
a visual program.
Nodes can represent Revit Elements like Model Lines or Reference
Points.
Nodes can also represent operations like Math Functions.
Nodes have inputs and outputs.
The colors of Nodes change to indicate state.
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 4
Part A: Pulldown Menus
Part B: Search Bar
Part C: Node Library
Part D: Workspace
Part E: Execution Bar
1.3. Definitions
1.3.1. Nodes
Nodes have input Ports on the left side and output Ports on the right side.
Directionality of execution and program flow usually goes left to right.
Nodes are the objects you place and connect together with Wires to form
a visual program.
Nodes can represent Revit Elements like Model Lines or Reference
Points.
Nodes can also represent operations like Math Functions.
Nodes have inputs and outputs.
The colors of Nodes change to indicate state.
5
1.3.2. Wires
Wires connect between Nodes to create relationships and establish a program
flow. You can think of them literally as electrical wires that carry pulses of
information from one object to the next.
You create a Wire using the mouse left-clicking on an output Port and
dragging with the mouse button held down, then connect to the input
port of another node.
To disconnect a Wire, left-click on the output Node and pull the Wire
away.
1.3.3. Ports
Ports are the light rectangular areas on Nodes, they are the receptors for Wires.
Information flows through the Ports from left to right.
Inputs Ports are on the left side of the Node.
Outputs Ports are on the right side of the Node.
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 5
1.3.2. Wires
Wires connect between Nodes to create relationships and establish a program
flow. You can think of them literally as electrical wires that carry pulses of
information from one object to the next.
You create a Wire using the mouse left-clicking on an output Port and
dragging with the mouse button held down, then connect to the input
port of another node.
To disconnect a Wire, left-click on the output Node and pull the Wire
away.
1.3.3. Ports
Ports are the light rectangular areas on Nodes, they are the receptors for Wires.
Information flows through the Ports from left to right.
Inputs Ports are on the left side of the Node.
Outputs Ports are on the right side of the Node.
6
1.4. An example
There is a beginning example about how it work in Dynamo environment. This
program help us create a reference point by coordinates (x,y,z).
Input port: x,y,z values
Output port: a reference point
Let’s see the connectivity between them:
2. Working with Data
2.1. Data types
There are three types of data that can be used in Dynamo: number, string and
boolean. User can choose one of them or more depend on what kind of input
requirements in each program.
2.2. Math functions
Dynamo is used to create algorthims that take input(s), extract and process the
input's data to return an output or outcome. Here you can see we have a series of
mathematical operators or functions like addition, subtraction, multiplication and
division…Or having some functions like less than one another, equal to or not equal
to…
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 6
1.4. An example
There is a beginning example about how it work in Dynamo environment. This
program help us create a reference point by coordinates (x,y,z).
Input port: x,y,z values
Output port: a reference point
Let’s see the connectivity between them:
2. Working with Data
2.1. Data types
There are three types of data that can be used in Dynamo: number, string and
boolean. User can choose one of them or more depend on what kind of input
requirements in each program.
2.2. Math functions
Dynamo is used to create algorthims that take input(s), extract and process the
input's data to return an output or outcome. Here you can see we have a series of
mathematical operators or functions like addition, subtraction, multiplication and
division…Or having some functions like less than one another, equal to or not equal
to…
7
2.3. Working with Text String
Here is the ChangeCase node, this node take two inputs: the string, which we
already have in the workspace.
With String.Length function, the result will show a number of characters in a
input string.
2.4. Working with a List
Another powerful aspect of using Dynamo is the ability to process more than
one and piece of information at a time.
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 7
2.3. Working with Text String
Here is the ChangeCase node, this node take two inputs: the string, which we
already have in the workspace.
With String.Length function, the result will show a number of characters in a
input string.
2.4. Working with a List
Another powerful aspect of using Dynamo is the ability to process more than
one and piece of information at a time.
8
For this example, let's go ahead and use three inputs and we'll also drag in
maybe three Integer Sliders to plug into ListCreate node. Or maybe in some cases we
can use Number Slider instead of Integer Slider.
Another case will show how to use a list of data as inputs:
Calculate the sum of a list.
Calculate the square root of numbers in a list.
An example of creating a list by using Range node:
There are some simple nodes related to managing a list in Dynamo:
Index of a list:
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 8
For this example, let's go ahead and use three inputs and we'll also drag in
maybe three Integer Sliders to plug into ListCreate node. Or maybe in some cases we
can use Number Slider instead of Integer Slider.
Another case will show how to use a list of data as inputs:
Calculate the sum of a list.
Calculate the square root of numbers in a list.
An example of creating a list by using Range node:
There are some simple nodes related to managing a list in Dynamo:
Index of a list:
9
Give a total number in a list & combine two lists into one.
Drawing circles and polygons depend on a list:
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 9
Give a total number in a list & combine two lists into one.
Drawing circles and polygons depend on a list:
10
List.Map Function:
Let’s see the example as belows:
Notice that the List.Count node has no input. It is being used as a function, so
the List.Count node will be applied to every individual list one step down in the
hierarchy. The blank input of List.Countcorresponds to the list input of List.Map.
2.5. Code Block
Code blocks are a window deep into DesignScript, the programming language
at the heart of Dynamo. Built from scratch to support exploratory design workflows,
DesignScript is a readable and concise language that offers both immediate feedback
to small bits of code and also scales to large and complex interactions. DesignScript
also forms the backbone of the engine that drives most aspects of Dynamo “under the
hood”. Because nearly all of the functionality found in Dynamo nodes and interactions
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 10
List.Map Function:
Let’s see the example as belows:
Notice that the List.Count node has no input. It is being used as a function, so
the List.Count node will be applied to every individual list one step down in the
hierarchy. The blank input of List.Countcorresponds to the list input of List.Map.
2.5. Code Block
Code blocks are a window deep into DesignScript, the programming language
at the heart of Dynamo. Built from scratch to support exploratory design workflows,
DesignScript is a readable and concise language that offers both immediate feedback
to small bits of code and also scales to large and complex interactions. DesignScript
also forms the backbone of the engine that drives most aspects of Dynamo “under the
hood”. Because nearly all of the functionality found in Dynamo nodes and interactions
11
have a one-to-one relationship with the scripting language, there are unique
opportunities to move between node-based interactions and scripting in a fluid way.
In short, code blocks are a text-scripting interface within a visual-scripting
environment. They can be used as numbers, strings, formulas, and other data types.
The code block is designed for Dynamo, so one can define arbitrary variables in the
code block, and those variables are automatically added to the inputs of the node:
Query action:
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 11
have a one-to-one relationship with the scripting language, there are unique
opportunities to move between node-based interactions and scripting in a fluid way.
In short, code blocks are a text-scripting interface within a visual-scripting
environment. They can be used as numbers, strings, formulas, and other data types.
The code block is designed for Dynamo, so one can define arbitrary variables in the
code block, and those variables are automatically added to the inputs of the node:
Query action:
12
There are a few basic shorthand methods in the code block which, simply put,
make data management a lot easier. We'll break down the basics below and discuss
how this shorthand can be used both for creating and querying data.
Data Type Standard Dynamo Code Block Equilvalent
Numbers
Strings
Sequences
Ranges
Get Item at Index
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 12
There are a few basic shorthand methods in the code block which, simply put,
make data management a lot easier. We'll break down the basics below and discuss
how this shorthand can be used both for creating and querying data.
Data Type Standard Dynamo Code Block Equilvalent
Numbers
Strings
Sequences
Ranges
Get Item at Index
13
Create List
Concatenate Strings
Conditional Statements
Advanced Ranges:
Creating advanced ranges allows us to work with list of lists in a simple
fashion. In the examples below, we're isolating a variable from the primary range
notation, and creating another range of that list.
Creating nested ranges, compare the notation with a "#" vs. the notation
without. The same logic applies as in basic ranges, except it gets a little more complex.
By controlling the "end" value in a range, we create more ranges of differing lengths.
2.6. Custom Node
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 13
Create List
Concatenate Strings
Conditional Statements
Advanced Ranges:
Creating advanced ranges allows us to work with list of lists in a simple
fashion. In the examples below, we're isolating a variable from the primary range
notation, and creating another range of that list.
Creating nested ranges, compare the notation with a "#" vs. the notation
without. The same logic applies as in basic ranges, except it gets a little more complex.
By controlling the "end" value in a range, we create more ranges of differing lengths.
2.6. Custom Node
14
The custom node environment is different from the Dynamo graph
environment, but the interaction is fundamentally the same. With that said, let's create
our first custom node.
Here is an example that we have seen before:
Now we get started to create a custom node and it seems like a sub-program.
The important thing is that we have to indicate the exact input and output for this
custom node.
Click New\Custom Node, and creating two inputs and an output for the custom
node.
Come back to Home WorkSpace, we need to re-arrange the Dynamo diagram in
the followings:
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 14
The custom node environment is different from the Dynamo graph
environment, but the interaction is fundamentally the same. With that said, let's create
our first custom node.
Here is an example that we have seen before:
Now we get started to create a custom node and it seems like a sub-program.
The important thing is that we have to indicate the exact input and output for this
custom node.
Click New\Custom Node, and creating two inputs and an output for the custom
node.
Come back to Home WorkSpace, we need to re-arrange the Dynamo diagram in
the followings:
15
As we can see above, the final result is the same with the previous one.
2.7. Functions
Functions can be created in a code block and recalled elsewhere in a Dynamo
definition. This creates another layer of control in a parametric file, and can be viewed
as a text-based version of a custom node. In this case, the "parent" code block is
readily accessible and can be located anywhere on the graph.
Call the function with another Code Block in the same file by giving the name
and the same number of arguments. It works just like the out-of-the-box nodes in your
library.
2.8. Working with Excel
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 15
As we can see above, the final result is the same with the previous one.
2.7. Functions
Functions can be created in a code block and recalled elsewhere in a Dynamo
definition. This creates another layer of control in a parametric file, and can be viewed
as a text-based version of a custom node. In this case, the "parent" code block is
readily accessible and can be located anywhere on the graph.
Call the function with another Code Block in the same file by giving the name
and the same number of arguments. It works just like the out-of-the-box nodes in your
library.
2.8. Working with Excel
16
2.8.1. Reading data
Now the column data in an excel file is imported and assign to a column in the
Revit schedule. Let’s refer to the Dynamo code as belows:
We can add this code to filter all blank row that is not having any number value
and mask them.
Some of nodes have been used as:
Categories: choose a category in Revit system.
All Elements of Category: show a list of all elements
Element.GetParameterValueByName: show a list of properties of all
elements.
List.Transpose: in order to make a list following a right input format.
File Path: specify a path for an existing excel file.
Excel.ReadFromFile: read the entire columns from a sheet.
Here is the result, the data from an excel file:
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 16
2.8.1. Reading data
Now the column data in an excel file is imported and assign to a column in the
Revit schedule. Let’s refer to the Dynamo code as belows:
We can add this code to filter all blank row that is not having any number value
and mask them.
Some of nodes have been used as:
Categories: choose a category in Revit system.
All Elements of Category: show a list of all elements
Element.GetParameterValueByName: show a list of properties of all
elements.
List.Transpose: in order to make a list following a right input format.
File Path: specify a path for an existing excel file.
Excel.ReadFromFile: read the entire columns from a sheet.
Here is the result, the data from an excel file:
17
and the data in a Revit schedule after running this program:
2.8.2. Writing data
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 17
and the data in a Revit schedule after running this program:
2.8.2. Writing data
18
After placing rooms for all levels of this project, we need to add some of these
information such as Name, Number, Department…In properties palette, there are a lot
of things about room that it can be extract to schedules like Area, Perimeter…
Here is a Dynamo diagram shows how to write data into a Excel spreadsheet.
The excel file is created before running program.
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 18
After placing rooms for all levels of this project, we need to add some of these
information such as Name, Number, Department…In properties palette, there are a lot
of things about room that it can be extract to schedules like Area, Perimeter…
Here is a Dynamo diagram shows how to write data into a Excel spreadsheet.
The excel file is created before running program.
19
Using the node Excel.WriteToFile: write all previous properties into a sheet.
Here is the final result:
3. Designing Geometry
3.1. Overview
When a programming language or environment has a geometry kernel at its
core, we can unlock the possibilities for designing precise and robust models,
automating design routines, and generating design iterations with algorithms.
Understanding geometry in the context of algorithms, computing, and
complexity, may sound daunting; however, there are a few key, and relatively simple,
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 19
Using the node Excel.WriteToFile: write all previous properties into a sheet.
Here is the final result:
3. Designing Geometry
3.1. Overview
When a programming language or environment has a geometry kernel at its
core, we can unlock the possibilities for designing precise and robust models,
automating design routines, and generating design iterations with algorithms.
Understanding geometry in the context of algorithms, computing, and
complexity, may sound daunting; however, there are a few key, and relatively simple,
20
principles that we can establish as fundamentals to start building towards more
advanced applications.
Understanding the Geometry types and how they are related will allow us to
navigate the collection of Geometry Nodes available to us in the Library. The
Geometry Nodes are organized alphabetically as opposed to hierarchically - here they
are displayed similar to their layout in the Dynamo interface.
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 20
principles that we can establish as fundamentals to start building towards more
advanced applications.
Understanding the Geometry types and how they are related will allow us to
navigate the collection of Geometry Nodes available to us in the Library. The
Geometry Nodes are organized alphabetically as opposed to hierarchically - here they
are displayed similar to their layout in the Dynamo interface.
21
Additionally, making models in Dynamo and connecting the preview of what
we see in the Background Preview to the flow of data in our graph should become
more intuitive over time.
3.2. Points
A Point is defined by nothing more than one or more values called coordinates.
How many coordinate values we need to define the Point depends upon the Coordinate
System or context in which it resides. The most common kind of Point in Dynamo
exists in our three-dimensional World Coordinate System and has three coordinates
[X,Y,Z].
A Circle using the functions x=r*cos(t) and y=r*sin(t)
3.3. Vectors
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 21
Additionally, making models in Dynamo and connecting the preview of what
we see in the Background Preview to the flow of data in our graph should become
more intuitive over time.
3.2. Points
A Point is defined by nothing more than one or more values called coordinates.
How many coordinate values we need to define the Point depends upon the Coordinate
System or context in which it resides. The most common kind of Point in Dynamo
exists in our three-dimensional World Coordinate System and has three coordinates
[X,Y,Z].
A Circle using the functions x=r*cos(t) and y=r*sin(t)
3.3. Vectors
22
A vector is a geometric quantity describing Direction and Magnitude. Vectors
are abstract; ie. they represent a quantity, not a geometrical element. Vectors can be
easily confused with Points because they both are composed of a list of values.
Using Plane.ByOriginNormal Node for creating a new plane that perpendicular
to the previous vector.
3.4. Curves
The term Curve is generally a catch-all for all different sort of curved (even if
straight) shapes. Capital "C" Curve is the parent categorization for all of those shape
types - Lines, Circles, Splines, etc.
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 22
A vector is a geometric quantity describing Direction and Magnitude. Vectors
are abstract; ie. they represent a quantity, not a geometrical element. Vectors can be
easily confused with Points because they both are composed of a list of values.
Using Plane.ByOriginNormal Node for creating a new plane that perpendicular
to the previous vector.
3.4. Curves
The term Curve is generally a catch-all for all different sort of curved (even if
straight) shapes. Capital "C" Curve is the parent categorization for all of those shape
types - Lines, Circles, Splines, etc.
23
Let's make a sine curve in Dynamo using two different methods to create
NURBS Curves to compare the results.
3.5. Surfaces
A Surface is a mathematical shape defined by a function and two parameters,
Instead of t for Curves, we use u and v to describe the corresponding parameter space.
This means we have more geometrical data to draw from when working with this type
of Geometry. For example, Curves have tangent vectors and normal planes (which can
rotate or twist along the curve's length), whereas Surfaces have normal vectors and
tangent planes that will be consistent in their orientation.
This is an example shows how to create a surface by Surface.ByPatch node and
we can combine some other nodes to subtract surface in Dynamo. Beside that we use
Surface.Thicken to make a simple solid with a specified thickness.
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 23
Let's make a sine curve in Dynamo using two different methods to create
NURBS Curves to compare the results.
3.5. Surfaces
A Surface is a mathematical shape defined by a function and two parameters,
Instead of t for Curves, we use u and v to describe the corresponding parameter space.
This means we have more geometrical data to draw from when working with this type
of Geometry. For example, Curves have tangent vectors and normal planes (which can
rotate or twist along the curve's length), whereas Surfaces have normal vectors and
tangent planes that will be consistent in their orientation.
This is an example shows how to create a surface by Surface.ByPatch node and
we can combine some other nodes to subtract surface in Dynamo. Beside that we use
Surface.Thicken to make a simple solid with a specified thickness.
24
Some of nodes have been used as:
Surface.ByPatch: create a surface by filling in the interior of a closed
boundary defined by input curves.
Geometry.Trim: removes elements of the entity closest to the pick point.
Geometry.IntersectAll: get the intersection of geometry for this object
and a collection of other geometries.
Surface.Thicken: thicken surface into a solid.
3.6. Solids
Solids consist of one or more Surfaces that contain volume by way of a closed
boundary that defines "in" or "out." Regardless of how many of these Surfaces there
are, they must form a "watertight" volume to be considered a Solid. Solids can be
created by joining Surfaces or Polysurfaces together or by using operations such as
loft, sweep, and revolve. Sphere, Cube, Cone and Cylinder primitives are also Solids.
Now we want to show you two ways to make a solid in Dynamo:
Create a solid by lofting between input cross section closed curves.
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 24
Some of nodes have been used as:
Surface.ByPatch: create a surface by filling in the interior of a closed
boundary defined by input curves.
Geometry.Trim: removes elements of the entity closest to the pick point.
Geometry.IntersectAll: get the intersection of geometry for this object
and a collection of other geometries.
Surface.Thicken: thicken surface into a solid.
3.6. Solids
Solids consist of one or more Surfaces that contain volume by way of a closed
boundary that defines "in" or "out." Regardless of how many of these Surfaces there
are, they must form a "watertight" volume to be considered a Solid. Solids can be
created by joining Surfaces or Polysurfaces together or by using operations such as
loft, sweep, and revolve. Sphere, Cube, Cone and Cylinder primitives are also Solids.
Now we want to show you two ways to make a solid in Dynamo:
Create a solid by lofting between input cross section closed curves.
25
Extrudes a curve in the normal direction by the specified distance.
3.7. Importing Geometry
The following examples show a series of components used to browse for a file,
import the file contents, and convert it into usable Dynamo geometry. Dynamo also
gives us the ability to filter and select specific objects to import from a DWG file -
which we'll demonstrate below.
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 25
Extrudes a curve in the normal direction by the specified distance.
3.7. Importing Geometry
The following examples show a series of components used to browse for a file,
import the file contents, and convert it into usable Dynamo geometry. Dynamo also
gives us the ability to filter and select specific objects to import from a DWG file -
which we'll demonstrate below.
26
Step 1: Use the File Path component to browse for the DWG file to be
imported into Dynamo.
Step 2: Connect to FileLoader.FromPath to read the file.
Step 3: Use the FileLoader.GetImportedObjects component to parse the
geometry into Dynamo Studio.
Step 4: ImportedObject.ConvertToGeometries will convert the objects
into usable geometry in the Dyanamo workspace.
As shown in the above image, all types of geometry in the DWG file - surfaces,
meshes, curves and lines - are imported into Dynamo.
4. Interacting with Revit
4.1. Selection
Revit is a data-rich environment. This gives us a range of selection abilities
which expands far beyond "point-and-click". We can query the Revit database and
dynamically link Revit elements to Dynamo geometry while performing parametric
operations.
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 26
Step 1: Use the File Path component to browse for the DWG file to be
imported into Dynamo.
Step 2: Connect to FileLoader.FromPath to read the file.
Step 3: Use the FileLoader.GetImportedObjects component to parse the
geometry into Dynamo Studio.
Step 4: ImportedObject.ConvertToGeometries will convert the objects
into usable geometry in the Dyanamo workspace.
As shown in the above image, all types of geometry in the DWG file - surfaces,
meshes, curves and lines - are imported into Dynamo.
4. Interacting with Revit
4.1. Selection
Revit is a data-rich environment. This gives us a range of selection abilities
which expands far beyond "point-and-click". We can query the Revit database and
dynamically link Revit elements to Dynamo geometry while performing parametric
operations.
27
To select Revit elements properly, it's important to have a full-understanding of
the Revit element hierarchy. Want to select all the walls in a project? Select by
category. Want to select every Eames chair in your mid-century modern lobby? Select
by family. Before jumping into an exercise, let's do a quick review of the Revit
hierarchy.
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 27
To select Revit elements properly, it's important to have a full-understanding of
the Revit element hierarchy. Want to select all the walls in a project? Select by
category. Want to select every Eames chair in your mid-century modern lobby? Select
by family. Before jumping into an exercise, let's do a quick review of the Revit
hierarchy.
28
The three images below breakdown the main categories for Revit element
selection in Dynamo. These are great tools to use in combination, and we'll explore
some of these in the following exercises.
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 28
The three images below breakdown the main categories for Revit element
selection in Dynamo. These are great tools to use in combination, and we'll explore
some of these in the following exercises.
29
We introduce an example as belows to clarify Selecting procedure, the
properties of Revit elements will be utilized in Dynamo environment after that.
4.2. Edition
This exercise focuses on editing Revit elements without performing geometric
operation in Dynamo. We're not importing Dynamo geometry here, just editing
parameters in a Revit project. This exercise is basic, and to the more advanced Revit
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 29
We introduce an example as belows to clarify Selecting procedure, the
properties of Revit elements will be utilized in Dynamo environment after that.
4.2. Edition
This exercise focuses on editing Revit elements without performing geometric
operation in Dynamo. We're not importing Dynamo geometry here, just editing
parameters in a Revit project. This exercise is basic, and to the more advanced Revit
30
users, notice that these are instance parameters of a Revit element, but the same logic
can be applied to an array of elements to customize on a large scale. This is all done
with the "Element.SetParameterByName" node.
4.3. Creation
You can create an array of Revit elements in Dynamo with full parametric
control. The Revit nodes in Dynamo offer the ability to import elements from generic
geometries to specific category types (like walls and floors). In this section, we'll focus
on importing parametrically flexible elements with adaptive components.
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 30
users, notice that these are instance parameters of a Revit element, but the same logic
can be applied to an array of elements to customize on a large scale. This is all done
with the "Element.SetParameterByName" node.
4.3. Creation
You can create an array of Revit elements in Dynamo with full parametric
control. The Revit nodes in Dynamo offer the ability to import elements from generic
geometries to specific category types (like walls and floors). In this section, we'll focus
on importing parametrically flexible elements with adaptive components.
31
You can use geometry in Dynamo to create Revit geometry. Let’s begin with
some Revit elements that are created by Dynamo diagrams:
Creating a floor:
Creating a straight beam:
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 31
You can use geometry in Dynamo to create Revit geometry. Let’s begin with
some Revit elements that are created by Dynamo diagrams:
Creating a floor:
Creating a straight beam:
32
Creating a basic wall:
4.4. Adaptive Component Placement
Using Metric Mass to create 3 model lines with the divided path.
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 32
Creating a basic wall:
4.4. Adaptive Component Placement
Using Metric Mass to create 3 model lines with the divided path.
33
Now we must create an adaptive object with 3 points and along with 3 paths
above.
Using this Dynamo code we can place exactly triangle panel into the position.
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 33
Now we must create an adaptive object with 3 points and along with 3 paths
above.
Using this Dynamo code we can place exactly triangle panel into the position.
34
Or we can use DividedPath.Points node instead of Element.Geometry node to
get the same result.
4.5. Unfolding Elements
4.5.1. Unfolding a Cuboid
Some of nodes have been used as:
Cuboid.ByLengths: create a cuboid centered at WCS origin, with width,
length, and height.
Topology.Faces: the faces of the Topology.
Unfolding.UnfoldListOfFaces: method for taking a list of planar faces
and unfolding them, also returns an unfolding object that stores the
starting and final locations of unfolded faces, this is used for generating
labels.
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 34
Or we can use DividedPath.Points node instead of Element.Geometry node to
get the same result.
4.5. Unfolding Elements
4.5.1. Unfolding a Cuboid
Some of nodes have been used as:
Cuboid.ByLengths: create a cuboid centered at WCS origin, with width,
length, and height.
Topology.Faces: the faces of the Topology.
Unfolding.UnfoldListOfFaces: method for taking a list of planar faces
and unfolding them, also returns an unfolding object that stores the
starting and final locations of unfolded faces, this is used for generating
labels.
35
4.5.2. Unfolding a Sphere
In the beginning we need to build a Dynamo diagram to create a sphere with
surrounding surfaces. Some nodes will be used to create this object but we do not
show its form now. A set of points along with the form will appear depend on
specified U and V parameters. The U parameter parallel to vertical axis and the V
parameter parallel to horizontal axis.
Some of nodes have been used as:
Sphere.ByCenterPointRadius
PolySurface.BySolid
PolySurface.Surfaces
Surface.PointAtParameter
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 35
4.5.2. Unfolding a Sphere
In the beginning we need to build a Dynamo diagram to create a sphere with
surrounding surfaces. Some nodes will be used to create this object but we do not
show its form now. A set of points along with the form will appear depend on
specified U and V parameters. The U parameter parallel to vertical axis and the V
parameter parallel to horizontal axis.
Some of nodes have been used as:
Sphere.ByCenterPointRadius
PolySurface.BySolid
PolySurface.Surfaces
Surface.PointAtParameter
36
Some PolyCurve need to be created after that.
All surfaces will be showed by using some nodes as belows:
Using some nodes for unfolding and numbering each separated surfaces of the sphere
element.
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 36
Some PolyCurve need to be created after that.
All surfaces will be showed by using some nodes as belows:
Using some nodes for unfolding and numbering each separated surfaces of the sphere
element.
37
4.6. Dynamo for Rebar
Before handling with nodes we have to install “Dynamo for Rebar” and
“BIM4Struc” Package.
Now let’s get started to create rebar on a Curved model in Revit.
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 37
4.6. Dynamo for Rebar
Before handling with nodes we have to install “Dynamo for Rebar” and
“BIM4Struc” Package.
Now let’s get started to create rebar on a Curved model in Revit.
38
Some of nodes have been used as:
Rebar.FollowingSurface
RebarContainer.ByCurve
Rebar Style
Rebar Bar Type
Rebar Hook Orientation
Rebar Hook Type
4.7. Pile Placement
We need to use some nodes for reading an exsisting data from an excel file.
Let’s take a look:
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 38
Some of nodes have been used as:
Rebar.FollowingSurface
RebarContainer.ByCurve
Rebar Style
Rebar Bar Type
Rebar Hook Orientation
Rebar Hook Type
4.7. Pile Placement
We need to use some nodes for reading an exsisting data from an excel file.
Let’s take a look:
39
After that, we use the FamilyInstance.ByCoordinates node to place piles in
Revit modelspace.
And here is the final result:
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 39
After that, we use the FamilyInstance.ByCoordinates node to place piles in
Revit modelspace.
And here is the final result:
40
4.8. Working with Mass
4.8.1. Creating the Surface
In Revit workspace, we create two floors as belows:
Use Select Edge node:
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 40
4.8. Working with Mass
4.8.1. Creating the Surface
In Revit workspace, we create two floors as belows:
Use Select Edge node:
41
Make the lists in order to create lots of curves and paralell to original curves.
Curve.EndPoint: get the end point along the curve.
PolyCurve.ByJoinedCurves: make polycurve by joining curve. Flips
curve as needed for connectivity.
Curve.Length: the total arc length of the curve.
Geometry.Translate: translate any given geometry by the given
displacements in the x,y,z directions.
Use Curve.Offset node to create a set of new curves with a specified amount.
Note that, in this case we use Math.Sin() function for making a different offset.
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 41
Make the lists in order to create lots of curves and paralell to original curves.
Curve.EndPoint: get the end point along the curve.
PolyCurve.ByJoinedCurves: make polycurve by joining curve. Flips
curve as needed for connectivity.
Curve.Length: the total arc length of the curve.
Geometry.Translate: translate any given geometry by the given
displacements in the x,y,z directions.
Use Curve.Offset node to create a set of new curves with a specified amount.
Note that, in this case we use Math.Sin() function for making a different offset.
42
Creating points in each curve depend on the parameter values.
The points after Lacing as Cross Product:
Use NurbCurve.ByPoint and Surface.ByLoft nodes to create the surface for a
Mass element.
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 42
Creating points in each curve depend on the parameter values.
The points after Lacing as Cross Product:
Use NurbCurve.ByPoint and Surface.ByLoft nodes to create the surface for a
Mass element.
43
Use ImportInstance.ByGeometry node to create a form in Revit depend on
solid, curve, surface…
User can control the shape of a Mass by change some value above:
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 43
Use ImportInstance.ByGeometry node to create a form in Revit depend on
solid, curve, surface…
User can control the shape of a Mass by change some value above:
44
4.8.2. Creating Revit Elements
To create the floor element, we use some nodes:
Curve.ApproximateWithArcAndLineSegments: approximate a curve
with a collection of Arcs and Lines.
Floor.ByOutlineTypeAndLevel: create a Revit Floor given it’s curve
outline and level.
To create the level, we use the node named Level.ByElevation.
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 44
4.8.2. Creating Revit Elements
To create the floor element, we use some nodes:
Curve.ApproximateWithArcAndLineSegments: approximate a curve
with a collection of Arcs and Lines.
Floor.ByOutlineTypeAndLevel: create a Revit Floor given it’s curve
outline and level.
To create the level, we use the node named Level.ByElevation.
45
5. References
www.dynamoprimer.com
www.dynamobim.org
forum.dynamobim.com
http://www.autodesk.com/products/dynamo-studio
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn
congnghebim.vn 45
5. References
www.dynamoprimer.com
www.dynamobim.org
forum.dynamobim.com
http://www.autodesk.com/products/dynamo-studio