Intro to Parametric Design | Dynamo Workshop

Page 1

INTRO TO PARAMETRIC DESIGN WILLIAM TOOHEY III + NICK MILLETT

DYNAMO WORKSHOP


WORKSHOP ITINERARY

00

JANUARY 01, 2017 | 1:00PM-3:00PM

01 |EQUIPMENT / SOFTWARE CHECK

02 |WHAT IS PARAMETRIC DESIGN?

03 |WHAT IS DYNAMO?

+REVIT 2016 INSTALLED +DYNAMO V1.2.1 INSTALLED (DYNAMOBIM.ORG) +FLASH-DRIVE DISTRIBUTION W/ FILES

+TERMS / DEFINITIONS +BRIEF HISTORY +TODAY’S DIGITAL AGE OF ARCHITECTURE +FUTURE IMPLICATIONS

+DEFINE +HOW IT’S USED IN PRACTICE +DYNAMO’S CAPABILITIES +REMEMBER, SOFTWARE IS A TOOL

04 |WORKING THROUGH YOUR FIRST DYNAMO DEFINITION

05 |Q+A / FINAL THOUGHTS

+THE USER INTERFACE / WORKSPACE +THE ANATOMY OF A VISUAL PROGRAM +GEOMETRY FOR COMPUTATIONAL DESIGN

+RESOURCES +ENDNOTES + FIGURES

VECTORS / POINTS / CURVES / SURFACES

+DESIGNING WITH LISTS

+CODE BLOCKS / DESIGNSCRIPT SYNTAX / SHORTHAND

+DYNAMO + REVIT WORKING TOGETHER +CUSTOM NODES +PACKAGES


EQUIPMENT / SOFTWARE CHECK

+ +REVIT 2016 INSTALLED +DYNAMO V1.2.1 INSTALLED (DYNAMOBIM.ORG) +FLASH-DRIVE DISTRIBUTION W/ FILES

-PDF PRESENTATION

-DYNAMO FILES

+

01

+

+


WHAT IS PARAMETRIC / COMPUTATIONAL DESIGN?

1. PARAMETRIC DESIGN is a process based on algorithmic thinking that enables the expression of parameters and rules that, together, define, encode and clarify the relationship between design intent and design response [1] 2. A PARADIGM IN DESIGN where the relationship between elements are used to manipulate and inform the design of complex geometries and structures [2]

02


02 ALGORITHM: noun a process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer [3] PARAMETER: noun (technical) a numerical or other measurable factor forming one of a set that defines a system or sets the conditions of its operation [3]

INPUT 01

INPUT 02

INSTRUCTIONS

OUTPUT

INPUT 03

The simplest way to explain algorithms is that there is always an output to an input, with specific instructions in between. With respect to architecture, algorithms are written using a computer and the appropriate scripting in a program language that can be used in a 3D modeling software. A series of simple shapes or an array of complex geometries can be created. “Algorithmic design enables users to design a process rather than just a single object.� [4]


TODAY’S DIGITAL AGE OF ARCHITECTURE

MAD Architects: Harbin Opera House, Harbin, China Copyright: © Courtesy of MAD Architects

02

MAD Architects: Absolute Towers, Mississauga, Canada Copyright: © Doublespace Photography/doublespacephoto.com


TODAY’S DIGITAL AGE OF ARCHITECTURE

Foster + Partners: Smithsonian Institution, Washington DC, USA Copyright: © Courtesy of Foster + Partners

02

Foster + Partners: Smithsonian Institution, Washington DC, USA Copyright: © Courtesy of Foster + Partners


TODAY’S DIGITAL AGE OF ARCHITECTURE

Foster + Partners: Smithsonian Institution, Washington DC, USA Copyright: © Courtesy of Foster + Partners

02

Foster + Partners: Smithsonian Institution, Washington DC, USA Copyright: © Courtesy of Foster + Partners


02

FUTURE IMPLICATIONS? What will our cities look like? How does software affect the design process? What are the pros and cons of parametric/computational design? Should we embrace it or remain skeptical?


WHAT IS DYNAMO?

DYNAMO is described as “a visual programming tool that aims to be accessible to both non-programmers and programmers alike. It gives users the ability to visually script behavior, define custom pieces of logic, and script using various textual programming languages.” [x] “At its core, DYNAMO is a platform for Visual Programming - it is a flexible and extensible design tool. Because it can operate as a stand-alone application or as an add-on to other design software, we can use it to develop a wide range of creative workflows.” [x]

03


THE USER INTERFACE / WORKSPACE

04


THE USER INTERFACE / WORKSPACE

04


THE USER INTERFACE / WORKSPACE

04


THE USER INTERFACE / WORKSPACE

“By default, the Library will contain eight categories of Nodes. Core and Geometry are great menus to begin exploring as they contain the largest quantity of Nodes. Browsing through these categories is the fastest way to understand the hierarchy of what we can add to our Workspace and the best way to discover new Nodes you haven’t used before.” [x]

04


THE USER INTERFACE / WORKSPACE

“Browse the Library by clicking through the menus. Click the Geometry > Circle. Note the new portion of the menu that is revealed and specifically the Create and Query Labels.” [x]

04


THE USER INTERFACE / WORKSPACE

“If you know with relative specificity which Node you want to add to your Workspace, the Search field is your best friend.” [x]

04


THE USER INTERFACE / WORKSPACE

“From geometric to user settings, these options can be found in the Settings menu. Here you can opt in or out for sharing your user data to improve Dynamo as well as define the application’s decimal point precision and geometry render quality.” [x]

04


THE USER INTERFACE / WORKSPACE

04


THE USER INTERFACE / WORKSPACE

“The Dynamo Workspace is where we develop our visual programs, but it’s also where we preview any resulting geometry. Whether we are working in a Home Workspace or a Custom Node, we can navigate with our mouse or the buttons at top right. Toggling between modes at bottom right switches which preview we navigate.” [x]

04


THE USER INTERFACE / WORKSPACE

“The active Workspace tab allows you to navigate and edit your program. When you open a new file, by default you are opening a new Home Workspace. You may also open a new Custom Node Workspace from the File Menu or by the New Node by Selection right click option when Nodes are selected (more eon this functionality later).” [x]

04


THE USER INTERFACE / WORKSPACE

“In Dynamo, the Graph and the 3D results of the Graph (if we are creating geometry) are both rendered in the Workspace. By default the Graph is the active preview, so using the Navigation buttons or middle mouse button to pan and zoom will move us through the Graph. Toggling between active previews can be achieved three ways...� [x]

04


THE USER INTERFACE / WORKSPACE

“Using the “In-Canvas Search” will add some serious speed to your Dynamo work-flow by providing you access to node descriptions and tool-tips without taking you away from your place on the graph! By just right-clicking, you can access all the useful functionality of the “Library Search” from wherever you happen to be working on the canvas.” [x]

04


THE USER INTERFACE / WORKSPACE

“Keeping your Dynamo canvas organized becomes increasingly important as your files build in complexity. Although we have the Align Selection tool to work with small amounts of selected Nodes, Dynamo also features the Cleanup Node Layout tool to help with overall file cleanup.” [x]

04


THE ANATOMY OF A VISUAL PROGRAM

NODES / WIRES / LIBRARY

04


THE ANATOMY OF A VISUAL PROGRAM

“Most Nodes in Dynamo are composed of five parts. While there are exceptions, such as Input Nodes, the anatomy of each Node can be described as follows...” [x]

04


THE ANATOMY OF A VISUAL PROGRAM

“Dynamo gives an indication of the state of the execution of your Visual Program by rendering Nodes with different color schemes based on each Node’s status. Furthermore, hovering or right-clicking over the Name or Ports presents additional information and options.” [x]

04


THE ANATOMY OF A VISUAL PROGRAM

“Wires connect between Nodes to create relationships and establish the Flow of our Visual Program. We can think of them literally as electrical wires that carry pulses of data from one object to the next.” [x]

04


THE ANATOMY OF A VISUAL PROGRAM

“Dynamo also allows us to customize how our Wires look in the Workspace through the View > Connectors Menu. Here we can toggle between Curve or Polyline Wires or turn them off all together.” [x]

04


THE ANATOMY OF A VISUAL PROGRAM

“Input Nodes are the primary means for the User of our Visual Program - be that yourself or someone else to interface with the key parameters. Here are the Nodes available in the Input Category of the Core Library” [x]

04


THE ANATOMY OF A VISUAL PROGRAM

“The Watch Nodes are essential to managing the data that is flowing through your Visual Program. While you can view the result of a Node through the Node data preview, you may want to keep it revealed in a Watch Node or see the geometry results through a Watch3D Node. Both of these are found in the View Category in the Core Library.” [x]

04


THE ANATOMY OF A VISUAL PROGRAM

“Code Block Nodes can be used to define a block of code with lines separated by semi-colons. This can be as simple as X/Y. We can also use Code Blocks as a short cut to defining a Number Input or call to another Node’s functionality. The syntax to do so follows the Naming Convention of the Dynamo textual language, DesignScript...” [x]

04


THE ANATOMY OF A VISUAL PROGRAM

“Once we have added more than a few Nodes to the Workspace, we may want to re-organize the layout of the Nodes for clarity’s sake. By selecting more than one Node and right-clicking on the Workspace, the pop up window includes an Align Selection menu with justification and distribution options in X and Y.” [x]

04


THE ANATOMY OF A VISUAL PROGRAM

“With some experience, we may be able to “read” the Visual Program by reviewing the Node Names and following the Program Flow. For users of all experience levels, it is also good practice to include plain language labels and descriptions. Dynamo has a Notes Node with an editable text field to do so. We can add Notes to the Workspace in two ways...” [x]

04


THE ANATOMY OF A VISUAL PROGRAM

“When our Visual Program gets big, it is helpful to identify the larger steps that will be executed. We can highlight larger collections of Nodes with a Group to label them with a colored rectangle in the background and a title” [x]

04


GEOMETRY FOR COMPUTATIONAL DESIGN

“As a Visual Programming environment, Dynamo enables you to craft the way that data is processed. Data is numbers or text, but so is Geometry. As understood by the Computer, Geometry - or sometimes called Computational Geometry - is the data we can use to create beautiful, intricate, or performance-driven models. To do so, we need to understand the ins and outs of the various types of Geometry we can use.” [x]

04


GEOMETRY FOR COMPUTATIONAL DESIGN

“As a Visual Programming environment, Dynamo enables you to craft the way that data is processed. Data is numbers or text, but so is Geometry. As understood by the Computer, Geometry - or sometimes called Computational Geometry - is the data we can use to create beautiful, intricate, or performance-driven models. To do so, we need to understand the ins and outs of the various types of Geometry we can use.” [x]

04


GEOMETRY FOR COMPUTATIONAL DESIGN

04


GEOMETRY FOR COMPUTATIONAL DESIGN

“So what does this mean for using Dynamo? 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.� [x]

04


DESIGNING WITH LISTS

“A list is a collection of elements, or items. Take a bunch of bananas, for example. Each banana is an item within the list (or bunch). It’s easier to pick up a bunch of bananas rather than each banana individually, and the same holds for grouping elements by parametric relationships in a data structure.” [x]

04


DESIGNING WITH LISTS

“One thing that might seem odd at first is that the first index of a list is always 0; not 1. So, when we talk about the first item of a list, we actually mean the item that corresponds to index 0.” [x]

04


DESIGNING WITH LISTS

04

LACING EXERCISE

Open “Lacing.dyn” file


DESIGNING WITH LISTS

04


DESIGNING WITH LISTS

04

LIST OPERATIONS EXERCISE

Open “List-Operations.dyn” file

+

“List-FilterByBooleanMask.dyn” file


CODE BLOCKS + DESIGN SCRIPT

“The code block is a unique feature in Dynamo that dynamically links a visual programming environment with a text-based one. The code-block has access to all of the Dynamo nodes and can define an entire graph in one node...the code block is a fundamental building block of Dynamo.� [x]

04


CODE BLOCKS + DESIGN SCRIPT

“...you can see the “old school” way of doing things is a little long-winded: the user searches for the intended node in the interface, adds the node to the canvas, and then inputs the data. With code block, the user can double-click on the canvas to pull up the node, and type in the correct data type with basic syntax.” [x]

04


CODE BLOCKS + DESIGN SCRIPT

“You may have noticed a common theme in the names of nodes in Dynamo: each node uses a “.” syntax without spaces. This is because the text at the top of each node respresents the actual syntax for scripting, and the “.” (or dot notation) separates an element from the possible methods we can call. This creates an easy translation from visual scripting to text-based scripting.” [x]

04


CODE BLOCKS + DESIGN SCRIPT

“With the apple analogy in mind, let’s look at Point.ByCoordinates and show how we can create a point using the code block...” [x]

04


CODE BLOCKS + DESIGN SCRIPT

“...there is a feature in Dynamo called “Node to Code” which will make the process easier. To use this feature, select an array of nodes in your Dynamo graph, right-click on the canvas and select “Node to Code”. Dynamo condenses these nodes into a code block, with all of the inputs and outputs!” [x]

04


CODE BLOCKS + DESIGN SCRIPT

“There are a few basic shorthand methods in the code block which, simply put, make data management a lot easier...” [x]

04


DYNAMO + REVIT WORKING TOGETHER

“A visual program creates robust options for a Building Information Model (BIM). Dynamo offers a whole suite of nodes specifically designed for Revit, as well as third-party libraries from a thriving AEC community.” [x]

04


DYNAMO + REVIT WORKING TOGETHER

“Dynamo for Revit extends building information modeling with the data and logic environment of a graphical algorithm editor. Its flexibility, coupled with a robust Revit database, offers a new perspective for BIM.” [x]

04


DYNAMO + REVIT WORKING TOGETHER

“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 midcentury modern lobby? Select by family.” [x]

04


DYNAMO + REVIT WORKING TOGETHER

“On a basic level, the Revit hierarchy can be broken down into Categories, Families, Types, and Instances. An instance is an individual model element (with a unique ID) while a category defines a generic group (like “walls” or “floors”). With the Revit database organized in this manner, we can select one element and choose all similar elements based on a specified level in the hierarchy.” [x]

04


DYNAMO + REVIT WORKING TOGETHER

04


DYNAMO + REVIT WORKING TOGETHER

04


DYNAMO + REVIT WORKING TOGETHER

04


DYNAMO + REVIT WORKING TOGETHER

04


DYNAMO + REVIT WORKING TOGETHER

“An adaptive component is a flexible family category which lends itself well to generative applications. Upon instantiation, you can create a complex geometric element which is driven by the fundamental location of adaptive points.” [x]

04


DYNAMO + REVIT WORKING TOGETHER

04


CUSTOM NODES

04

Custom Nodes = a bit more complicated


PACKAGES

“In short, a Package is a collection of Custom Nodes. The Dynamo Package Manager is a portal for the community to download any package which has been published online. These toolsets are developed by third parties in order to extend Dynamo’s core functionality, accessible to all, and ready to download at the click of the button.” [x]

04


PACKAGES

“The easiest way to install a package is by using the Packages toolbar in your Dynamo interface.” [x]

04


RESOURCES

05


Jabi, Wassim (2013). Parametric Design for Architecture. London: Laurence King. Print. [2] Woodbury, Robert (2010). Elements of Parametric Design. Routledge. Print. [3] Merriam-Webster. Merriam-Webster, n.d. Web. 5 Dec. 2016. [4] Tedeschi, Arturo, Fulvio Wirz, and Stefano Andreani. AAD, Algorithms-aided Design: Parametric Strategies Using Grasshopper. N.p.: n.p., n.d. Print. [x] “The Dynamo Primer.” The Dynamo Primer. Autodesk, n.d. Web. 1 Dec. 2016. [1]

THANK YOU! THANK YOU! THANK YOU! THANK YOU!

THANK YOU! THANK YOU! THANK YOU!

ENDNOTES

05


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.