Você está na página 1de 170

Computational BIM Advanced Workshop

Ritesh Chandawar, Matt Jezyk, Aparajit Pratap, Racel Williams


Dynamo Team
dynamobim.org

2016 Autodesk Join the conversation #AU2016


Who We Are
Ritesh Chandawar, Dynamo Product Owner and QA
@RiteshChandawar

Aparajit Pratap, Senior Software Engineer


@aparajit_Pratap

Racel Williams, Dynamo Interaction Designer


@RacelWilliams

Matt Jezyk, Dynamo Engineering Manager


@mattjezyk

2016 Autodesk
Schedule
08:30 - 09:15 Welcome
09:15 - 10:00 Organize, Manipulate, Replicate
10:00 - 10:15 Coffee Break
10:15 - 11:00 More Lists
11:00 - 12:00 Working with Revit Geometry
12:00 - 13:00 Lunch
13:00 - 14:00 External Data Sources
14:00 - 15:00 DesignScript & Going Beyond the Node
15:00 - 15:15 Coffee Break
15:15 - 16:00 T-Splines & Meshes
16:00 - 17:00 Analysis Workflows
17:00 - 17:30 Q & A (Stump the Chump)
17:30 - 18:30 Reception

2016 Autodesk
Level Setting
Got Skills?
Traditional Programming?
Visual Programming?
BIM, CAD?
Domains?

Expectations
Intermediate / Expert Revit familiarity
Beginner / Intermediate Dynamo familiarity

2016 Autodesk
Datasets
From the Package Manager
Open Revit
Open Dynamo In Manage Tab
Settings > Manage Node and
Package Paths > Make Desktop
folder
Packages > Search for a
Package> Workshop
AU2016 Advanced Workshop

2016 Autodesk
DP23097 - Design Computation Symposium
Wednesday, 1-4:30pm
Palazzo L, Level 5
Phil Bernstein - Architect, Autodesk
Max Oglesbee - Head of Client Strategy,
Intersection
Ryan Welch - Other, KieranTimberlake
Fred Martin - Professor, University of
Massachusetts Lowell
Martha Tsigkari - Partner, Foster +
Partners
Rajaa Issa - Software Developer, Robert
McNeel & Associates
Valentin Heun - PhD Student, MIT
Media Lab

2016 Autodesk
Dynamo After Hours
When:
Wednesday, November 16th,
2016, 9PM - 12AM
Where:
Chayo Mexican Kitchen + Tequila
Bar - Located in The LINQ, 3545 S
Las Vegas Blvd (next to AU party)
Who:
People who love Dynamo or
computational design

2016 Autodesk
Dynamo is a Computation Platform Dynamo on the Web

Dynamo in FormIt

Dynamo in Revit

2016 Autodesk
2016 Autodesk
Dynamo For Revit

2016 Autodesk
Dynamo for FormIt

2016 Autodesk
Dynamo For Advance Steel
Dynamo For Advance
2017 R2
Steel
Computational Design
connected to AutoCAD
based Structural Steel
modeling environment.

2016 Autodesk
Use Cases

2016 Autodesk
Use Cases

2016 Autodesk
Use Cases

2016 Autodesk
Use Cases
CAD to BIM at Snohetta
vasshaug.net

2016 Autodesk
Use Cases

2016 Autodesk
Use Cases

2016 Autodesk
Use Cases

2016 Autodesk
Use Cases

2016 Autodesk
Use Cases

2016 Autodesk
Use Cases
BIM to Fabrication Drawings

2016 Autodesk
Sharing

2016 Autodesk
Dynamo Player

2016 Autodesk
2016 Autodesk
2016 Autodesk
Clockwork
SteamNodes
archi-lab.net Clockwork Rhynamo
Bakery SteamNodes Mantis Shrimp
Rebar archi-lab.net DynamoWorks
BumbleBee Bakery
DynaBleau Rebar
Raindrops
Structural Analysis for Dynamo
Rhynamo
Ladybug
Mantis Shrimp
DynaWorks
BumbleBee
DynaBleau
Structural Analysis for Dynamo
Ladybug Raindrops MeshToolkit
MeshToolkit BecauseWeDynamo
BecauseWeDynamo

2016 Autodesk
SteamNodes
archi-lab.net
Bakery
Rebar
BumbleBee
DynaBleau
Raindrops
Rhynamo
Mantis Shrimp
DynaWorks
Structural Analysis for Dynamo
Ladybug
MeshToolkit
BecauseWeDynamo

2016 Autodesk
SteamNodes
archi-lab.net
Bakery
Rebar
BumbleBee
DynaBleau
Raindrops
Rhynamo
Mantis Shrimp
DynaWorks
https://github.com/CAAD-RWTH/Clockw
Structural Analysis for Dynamo
Ladybug
orkForDynamo
MeshToolkit ~370 nodes
BecauseWeDynamo Great for Math, lists, geometry,
paneling, Revit
2016 Autodesk
Clockwork
SteamNodes

Bakery
Rebar
BumbleBee
DynaBleau
Raindrops
Rhynamo
Mantis Shrimp
DynaWorks
Structural Analysis for Dy
Ladybug
MeshToolkit
BecauseWeDynamo

http://archi-lab.net/
2016 Autodesk
Clockwork
SteamNodes

Bakery
Rebar
BumbleBee
DynaBleau
Raindrops
Rhynamo
Mantis Shrimp
DynaWorks
Structural Analysis for
Ladybug
MeshToolkit
BecauseWeDynamo

2016 Autodesk
Clockwork
SteamNodes
archi-lab.net
Bakery

BumbleBee
DynaBleau
Raindrops
Rhynamo
Mantis Shrimp
DynaWorks
Structural Analysis for Dy
Ladybug
MeshToolkit
BecauseWeDynamo

2016 Autodesk
Clockwork
SteamNodes
archi-lab.net
Bakery

BumbleBee
DynaBleau
Raindrops
Rhynamo
Mantis Shrimp
DynaWorks
Structural Analysis for Dy
Ladybug
MeshToolkit
BecauseWeDynamo

2016 Autodesk
Clockwork
SteamNodes
archi-lab.net
Bakery
Rebar

DynaBleau
Raindrops
Rhynamo
Mantis Shrimp Konrad Sobon, David Mans
DynaWorks
http://konradsobon.gitbooks.io/b
Structural Analysis for o
Ladybug
MeshToolkit
umblebee-primer/
BecauseWeDynamo

2016 Autodesk
Clockwork
SteamNodes
archi-lab.net
Bakery
Rebar

DynaBleau
Raindrops
Rhynamo
Mantis Shrimp
DynaWorks
Structural Analysis for D
Ladybug
MeshToolkit
BecauseWeDynamo

2016 Autodesk
Clockwork
SteamNodes
archi-lab.net
Bakery
Rebar Adam Sheather @Gytaco
BumbleBee
DynaBleau https://github.com/Gytaco/DynaWorks
Raindrops
Rhynamo
Mantis Shrimp

Structural Analysis for


Ladybug
MeshToolkit
BecauseWeDynamo
http://bim42.com/2015/06/dynaworks/

2016 Autodesk
Clockwork
SteamNodes
archi-lab.net
Bakery
Rebar
BumbleBee
DynaBleau
Raindrops
Rhynamo
Mantis Shrimp
DynaWorks

Ladybug
MeshToolkit
BecauseWeDynamo

2016 Autodesk
Clockwork
SteamNodes
archi-lab.net
Bakery
Rebar
BumbleBee
DynaBleau
Raindrops
Rhynamo
Mantis Shrimp
DynaWorks
Structural Analysis foro
Ladybug
MeshToolkit


2016 Autodesk
Clockwork
SteamNodes
archi-lab.net
Bakery
Rebar
BumbleBee
DynaBleau
Raindrops
Rhynamo
Mantis Shrimp
DynaWorks
Structural Analysis for Do
Ladybug
MeshToolkit


2016 Autodesk
Clockwork
SteamNodes
archi-lab.net https://github.com/BecauseWe
Bakery Can/BecauseWeDynamo
Rebar
BumbleBee
Walking triangular mesh
DynaBleau topology to label edges for
Raindrops fabrication
Rhynamo
Mantis Shrimp Some DXF exporting
DynaWorks
Auto-sectioning tools
Structural Analysis for Dy
Ladybug
MeshToolkit


2016 Autodesk
Clockwork
SteamNodes
archi-lab.net
Bakery
Rebar
BumbleBee
DynaBleau
Raindrops
Rhynamo
Mantis Shrimp
DynaWorks
Structural Analysis for Dy
Ladybug
MeshToolkit


2016 Autodesk
Resources

2016 Autodesk
Resources
DynamoBIM.org
/learn
/blog
/download
forums.dynamobim.org

DynamoPrimer.com

@DynamoBIM

2016 Autodesk
Forum.DynamoBIM.org
You are not alone!
Users just like you
There are no dumb questions

Fast Response
Hundreds of people standing by

Easily searchable
Many questions have already
been asked

2016 Autodesk
Resources
Find your local Dynamo User Group
http://dynamobim.org/a-world-of-user-groups/

2016 Autodesk
Resources

http://bit.ly/DynamoLynda

.com
https://www.pluralsight.com/cour
ses/dynamo-revit-visual-program
ming-introduction


https://thinkparametric.com/cour
ses/dynamo-101-fundamentals
2016 Autodesk
Community
2 Truths, 1 Lie

2016 Autodesk
THE MOST IMPORTANT FEATURE FOR
ADVANCED WORKFLOWS...

2016 Autodesk
LISTS

2016 Autodesk
Why are lists important?

Organize

Replicate

Manipulate

2016 Autodesk
Organize
Understanding data types
var, var[], var[]..[]
Creating dictionaries

2016 Autodesk
Organize: What goes into a list?

00-DataTypes.dyn
2016 Autodesk
Organize: Basic Data Types

int A whole number. AKA Integer


number
double A number with decimal places

bool true or false

string text

StackValue f(x), combinator, Function

var generic data type

2016 Autodesk
(There are also Geometry and Revit types)
Point, Line, Circle, Element, FloorType, Sheet

2016 Autodesk
Organize: Pez[]..[]

What does [] mean?

2016 Autodesk
Organize: Pez[]..[]

What does [] mean?

Rank : depth of a list


might be referred to as dimensionality

2016 Autodesk
Organize: Pez[]..[]

Item list list of lists arbitrary rank


var var[] var[][] var[]..[]
Pez Pez[] Pez[][] Pez[]..[]

2016 Autodesk
Organize: a list in a list in a list

2016 Autodesk
Organize: Are you var[]..[] real?

01-Var.dyn
2016 Autodesk
Organize: Are you var[]..[] real?

2016 Autodesk
Organize: Are you var[]..[] real?

2016 Autodesk
Organize: Are you var[]..[] real?

2016 Autodesk
Organize: Are you var[]..[] real?

2016 Autodesk
Organize: var[] in the wild

Understand what data


types a node expects

Use appropriate
parameters in
user-defined
functions in CBNs

02-ExportToSAT.dyn

2016 Autodesk
Organize: Dictionaries

What is dictionary?

Not to be confused with


dictionary.dynamobim.com

2016 Autodesk
Organize: Dictionaries

What is dictionary?

a list which contains non-integer indices


technically, a list is a dictionary with ordered integer indices

2016 Autodesk
Organize: Dictionaries
Lists auto-expand
Non-integer keys not correct in
preview bubble
You can set an object as the key
Non-integer keys do not Count
BuiltIn Key/Value Nodes
Do not copy/paste from text editor!!!

03-Dictionary.dyn
2016 Autodesk
Coffee
15 minutes

2016 Autodesk
Replicate
What really happens when lacing?
Replication guides

2016 Autodesk
Replicate: Definition

What is replication?

a way to express iteration over a function


how a function is called multiple times using a list and replication strategy

2016 Autodesk
Replicate: Definition

String.Length(Viva);

String.Length(Las);

String.Length(Vegas);

String.Length(str:str)

2016 Autodesk
REPLICATION STRATEGIES ARE
CALLED...

2016 Autodesk
LACING
and can be called in 3 ways

2016 Autodesk
LACING
and can be called in 3 ways

On-the-node As-a-node Replication Guides

2016 Autodesk
Replicate: Zip replication

There are two types of ZIP replication?

Shortest & Longest


Take every element of the list at the same position and call the function.
Since lengths of list may differ, Dynamo needs to be told what to do

2016 Autodesk
Replicate: Zip replication - Shortest Lacing

Shortest
items of the same index
will be matched

04-Lacing.dyn

2016 Autodesk
Replicate: Zip replication - Longest Lacing

Longest
items of the same index
value will be matched.
But, if lengths vary, the
last element of the
shortest list will be
matched repeatedly

04-Lacing.dyn

2016 Autodesk
Replicate: Cartesian replication - Cross Product

Cross Product
every item in each list will
be matched

04-Lacing.dyn
04-Lacing.xlsx
2016 Autodesk
Replicate: Replication Guides
Shortest
foo(x<1>,y<1>);
numbers dont matter, just need to match

Longest
foo(x<1L>,y<1L>);
numbers dont matter, just need to match
and followed by L

Cross Product
foo(x<1>,y<2>);
numbers just need to differ. Lower numbers
list gets priority in for loop.

2016 Autodesk
Replicate: Rep Guides getting complicated

start from the outer list


each rep guide <> that
follows an argument
indicates a level

foo(X<1L><1>,Y<1L><1>)
Inner level
Outer level

04-Lacing.dyn
2016 Autodesk
Replicate: Rep Guides getting complicated
Display.ByGeometryColor(solid1<1L><1>,t1<1L><1>)
Inner level

List promoted

Outer level matches (Longest)

2016 Autodesk
Replicate: Rep Guides getting complicated
Display.ByGeometryColor(solid1<1L><1>,t1<1L><1>)
Inner level
Outer level

Inner level matches (Shortest)

2016 Autodesk
Manipulate
Function passing refresher
Versus List@Level

2016 Autodesk
Manipulate: Traditional Methods

What is function passing?

allows you to use an unsatisfied node as an


argument of another node

2016 Autodesk
Manipulate: Traditional Methods

List.Combine List.Map
combine 2 lists using a function traverse nesting of a list

2016 Autodesk
Manipulate: Traditional Methods

List.Combine
NOT NECESSARY ANYMORE!

05-TheaterSeating.dyn
2016 Autodesk
Manipulate: Traditional Methods

List.Map
NOT NECESSARY ANYMORE
WITH LIST@LEVEL

06-ExtEnvelope.dyn
2016 Autodesk
INTRODUCING.

2016 Autodesk
LIST@LEVEL
access the level of the list you want to work with
right at the input port

2016 Autodesk
Manipulate: New methods

What is List@Level?

It is NOT Rank, the depth of a list


It is the location within a list

2016 Autodesk
Manipulate: What is List@Level?

Preview Bubble
Innermost list is first ensuring
items will always be @L1

2016 Autodesk
Manipulate: What is List@Level?

Node-level Menu
Click to activate, then
try out different level options

2016 Autodesk
Manipulate: What is List@Level?

Node Menu
Dont lose the list structure!

2016 Autodesk
Manipulate: What is List@Level?

List.Map

List.Combine

07-ExtEnvelopeRefactor.dyn
2016 Autodesk
Manipulate: List@Level Notation

In DesignScript

@L == @- (Use Levels ONLY)

Point.ByCoordinates(x@-2, y , 0)

2016 Autodesk
Manipulate: List@Level Notation

In DesignScript

@@L == @@- (Keep List Structure)

Point.ByCoordinates(x@@-2, y , 0)

2016 Autodesk
Manipulate: List@Level Limitations

No List@Level
Option

Some nodes are missing it

2016 Autodesk
Manipulate: List@Level Limitations

Unpredictable
Jagged Lists

When using Keep List


Structure

08-JaggedLists.dyn
List[2] disappears
2016 Autodesk
Rainstorm
Lets welcome Ritesh...

2016 Autodesk
Session Summary
Revit interop
Higher order functions
List manipulation
Excel in and out
rd
Working with 3 party file formats
Practical usage of List@Level
Analysis
Parametric Modeling
Rhino-Dynamo-Revit workflow
2016 Autodesk
Finding seat location in an Auditorium

2016 Autodesk
Seat placement

Another
approach

2016 Autodesk
Old and new approach of Orienting the seat as per Speakers position

2016 Autodesk
Seat labeling as per their seat location in the each row

2016 Autodesk
Lunch
Lets eat...

2016 Autodesk
Mapping of Donors information to Seat as per its location.

2016 Autodesk
Analyzing the seating arrangements as per audience viewing angle

2016 Autodesk
Rhino-Dynamo-Revit

2016 Autodesk
2016 Autodesk
Mannequin Challenge
Strike a pose :)

2016 Autodesk
DesignScript
The Dynamo programming language

(Guide and Documentation)


dynamobim.org/learn

2016 Autodesk
What are we going to learn?

Associative vs Imperative

Define a function

Conditionals and Loops

2016 Autodesk
Associative
vs
Imperative
Whats the difference?

2016 Autodesk
DesignScript: Associative

By default, CBNs are in associative language

Associative update ensures that variables that


have a dependent relationship update together

2016 Autodesk
DesignScript: Imperative

Imperative turns off associative update

Write if, for, and while statements

2016 Autodesk
DesignScript: Associative vs Imperative

00-DefAFunc.dyn
2016 Autodesk
Define a Function

2016 Autodesk
Conditionals and Loops
For, If, While

2016 Autodesk
DesignScript: Define and Call a Function with Loop

00-DefineFunc.dyn
2016 Autodesk
DesignScript: Create an if statement

00-DefineFunc.dyn
2016 Autodesk
DesignScript: While statements...

00-DefineFunc.dyn
2016 Autodesk
DesignScript: Dont try this at home

Do NOT Copy &


Paste DesignScript
functions

(Nodes or Text)

2016 Autodesk
DesignScript: Dont try this at home

Deleted functions
may still appear in
autocomplete

2016 Autodesk
DesignScript: Dont try this at home

Avoid creating
overload functions

2016 Autodesk
DesignScript: Dont try this at home

Dont use
list@level or rep
guides in
Imperative code
blocks

2016 Autodesk
Overview
Revit Example : Room Numbering
Comparison of Different Approaches
List.Map vs. List@Level
Scripting
Using Replication Guides in CBNs
Python Node Scripting
Imperative Programming in CBN

Resources for Zero Touch Development

2016 Autodesk
Room Numbering // Revit + Dynamo

2016 Autodesk
Sort By Building // List.Map vs. List@Level

Cross-Lacing
Dictionary

2016 Autodesk
Sort By Building // CBN vs. Python Scripting

https://github.com/DynamoDS/Dynamo/wiki/Repli
cation-and-Replication-Guide-Part-1

2016 Autodesk
Sort By Building // CBN vs. Python Scripting

Note on Disposing Geometry:


https://github.com/DynamoDS/Dynamo/wiki/Zero-
Touch-Plugin-Development#dispose--using-state
ment

2016 Autodesk
Sort Rooms By Distance // List@Level

Sorted Rooms By
Level
Rooms By Level

Keys

2016 Autodesk
Sort Rooms By Distance // Scripting

2016 Autodesk
Counting Nested Lists // 3 Ways

List.Map

List.AtLevel

Replication
Guides
2016 Autodesk
Generate Room Numbers From Sorted List

B
L
R

Replication

2016 Autodesk
Assign Room Numbers to Rooms

2016 Autodesk
Zero Touch Plugin Development

2016 Autodesk
Some Simple ZT nodes

https://github.com/DynamoDS/Dynamo/wiki/Zero-Touch-Plugin-Develo
pment
Geometry From ZT nodes
Disposing Geometry Correctly
Zero Touch Development Resources

http://dynamoprimer.com/en/10_Packages/10-5_Zero-To
uch.html

https://github.com/DynamoDS/Dynamo/wiki/Zero-Touch
-Plugin-Development

2016 Autodesk
Coffee
15 minutes

2016 Autodesk
Overview
MeshToolkit
Revit Topo Mesh => Dynamo Meshes
Node to Code
Mesh Coloring: MeshDisplay.ByColor

T-Splines
Modeling a Stadium Roof

2016 Autodesk
MESHTOOLKIT

2016 Autodesk
MTK New Nodes: Mesh.Remesh

2016 Autodesk
MTK New Nodes: MeshDisplay.ByColor

2016 Autodesk
MESHTOOLKIT // Revit + Dynamo

https://twitter.com/Jos_ols/status/790859502329425920

2016 Autodesk
Convert to MeshToolkit // Node to Code

Geometry Lib
Mesh

MeshToolkit
Mesh

No
de
Co t
de o

Springs Package
Conversion Node
2016 Autodesk
Mesh Coloring by Vertex Height

2016 Autodesk
Mesh Coloring by Vertex Normals

2016 Autodesk
Mesh Coloring by Face Slopes

2016 Autodesk
T-Splines: Modeling a Stadium Roof

2016 Autodesk
T-Splines

2016 Autodesk
Line Pattern for T-Splines

a
b
c a
b b
a c c
c a
b c
a b
2016 Autodesk
Combining Lists for Line Pattern

2016 Autodesk
T-Spline Surfaces from BuildFromLines

2016 Autodesk
Delete T-Spline Faces b a b
a c c
c a
b c
a b
0 3

4
1

2 5

2016 Autodesk
T-Spline Surface after Face Deletion

2016 Autodesk
T-Splines: Build from Lines

2016 Autodesk
T-Splines: Weld Vertices

2016 Autodesk
Dynamo Trivia
Time to win some prizes

2016 Autodesk
Analysis Workflows
var CFD = Color For Designers

2016 Autodesk
Setup

Package Manager
Update - AU2016 Advanced Samples
Solar Analysis for Dynamo
EnergyPredictML
UI++
Archi-lab_Mandrill
Second Law

2016 Autodesk
Solar Radiation Analysis

\packages\Solar Analysis for Dynamo\extras\


Open SolarAnalysis.dyn
Review flow of code
Question how to add selection of Revit Face?

2016 Autodesk
Energy Predict ML (Machine Learning)

\packages\EnergyPredictML\extras\
Open Facade Generator.dyn

2016 Autodesk
Mandrill Chart Making using D3

2016 Autodesk
Second Law Dynamic Relxation

2016 Autodesk
Feedback

Make sure to fill out surveys

2016 Autodesk
Give Us Feedback
Fill out the user surveys online!

2016 Autodesk
Q&A
Stump the chump

2016 Autodesk
Autodesk is a registered trademark of Autodesk, Inc., and/or its subsidiaries and/or affiliates in the USA and/or other countries. All other brand names, product names, or trademarks belong to their respective holders. Autodesk reserves the right to alter product and services offerings,
and specifications and pricing at any time without notice, and is not responsible for typographical or graphical errors that may appear in this document. 2016 Autodesk, Inc. All rights reserved.
2016 Autodesk. All rights reserved.

Você também pode gostar