45
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 cong cong co ghebim.vn congnghebim.vn congnghebim.vn co ghebim.vn congnghebim.vn congnghebim.vn co ghebim.vn congnghebim.vn congnghebim.vn co ghebim.vn congnghebim.vn congnghebim.vn co ghebim.vn congnghebim.vn congnghebim.vn co m.vn m.vn m.vn cong cong co hebim.vn congnghebim.vn congnghebim.vn co hebim.vn congnghebim.vn congnghebim.vn co hebim.vn congnghebim.vn congnghebim.vn co hebim.vn congnghebim.vn congnghebim.vn co hebim.vn congnghebim.vn congnghebim.vn co m.vn m.vn m.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

Tài liệu tự học Dynamo

Embed Size (px)

Citation preview

Page 1: Tài liệu tự học Dynamo

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

Page 2: Tài liệu tự học Dynamo

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

Page 3: Tài liệu tự học Dynamo

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.

Page 4: Tài liệu tự học Dynamo

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.

Page 5: Tài liệu tự học Dynamo

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.

Page 6: Tài liệu tự học Dynamo

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…

Page 7: Tài liệu tự học Dynamo

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.

Page 8: Tài liệu tự học Dynamo

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:

Page 9: Tài liệu tự học Dynamo

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:

Page 10: Tài liệu tự học Dynamo

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

Page 11: Tài liệu tự học Dynamo

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:

Page 12: Tài liệu tự học Dynamo

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

Page 13: Tài liệu tự học Dynamo

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

Page 14: Tài liệu tự học Dynamo

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:

Page 15: Tài liệu tự học Dynamo

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

Page 16: Tài liệu tự học Dynamo

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:

Page 17: Tài liệu tự học Dynamo

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

Page 18: Tài liệu tự học Dynamo

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.

Page 19: Tài liệu tự học Dynamo

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,

Page 20: Tài liệu tự học Dynamo

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.

Page 21: Tài liệu tự học Dynamo

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

Page 22: Tài liệu tự học Dynamo

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.

Page 23: Tài liệu tự học Dynamo

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.

Page 24: Tài liệu tự học Dynamo

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.

Page 25: Tài liệu tự học Dynamo

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.

Page 26: Tài liệu tự học Dynamo

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.

Page 27: Tài liệu tự học Dynamo

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.

Page 28: Tài liệu tự học Dynamo

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.

Page 29: Tài liệu tự học Dynamo

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

Page 30: Tài liệu tự học Dynamo

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.

Page 31: Tài liệu tự học Dynamo

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:

Page 32: Tài liệu tự học Dynamo

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.

Page 33: Tài liệu tự học Dynamo

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.

Page 34: Tài liệu tự học Dynamo

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.

Page 35: Tài liệu tự học Dynamo

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

Page 36: Tài liệu tự học Dynamo

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.

Page 37: Tài liệu tự học Dynamo

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.

Page 38: Tài liệu tự học Dynamo

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:

Page 39: Tài liệu tự học Dynamo

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:

Page 40: Tài liệu tự học Dynamo

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:

Page 41: Tài liệu tự học Dynamo

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.

Page 42: Tài liệu tự học Dynamo

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.

Page 43: Tài liệu tự học Dynamo

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:

Page 44: Tài liệu tự học Dynamo

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.

Page 45: Tài liệu tự học Dynamo

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