Exploring Dynamo Geometry

Dynamo enhances the native ability of Revit through Visual Programming. This course will teach you how to use Dynamo to explore Geometry through the use of Nodes, DesignScript, and an Optioneering study. Software required: Revit 2016, Dynamo 1.0.0.
Course info
Level
Intermediate
Updated
Nov 1, 2016
Duration
1h 54m
Table of contents
Description
Course info
Level
Intermediate
Updated
Nov 1, 2016
Duration
1h 54m
Description

Have you ever lamented the fact that Revit is inherently bad at creating curvaceous and organic forms? If so, Exploring Dynamo Geometry will help you by showing you how to create a Glacial Table in Dynamo. First, you'll discover how to approach parametric, flexible, geometry creation through a node-based workflow and understand how Dynamo deals with geometry using a Glacial Table as the exemplar. Next, you'll see the exact same workflow in DesignScript, the native scripting language of Dynamo. Finally, you'll explore how to create randomized, parametric options, choose the most desirable, and learn how to save that data for the recreation of an exact replica at a later date. When you're finished with this course, you'll not only have created a Glacial Table for later use, but you'll have learned how to use Geometry within Dynamo to explore your own creations in the future. Software required: Revit 2016, Dynamo 1.0.0.

About the author
About the author

Sol Amour is a Project BIM Manager at DesignTech.io in London, United Kingdom. He has a broad background in Architecture, Construction, Industrial Design, and Landscaping. In London, he provides Dynamo and Revit training, bespoke content, on-site project work, and custom workflows all while striving to push the boundaries of the AEC industry.

More from the author
Section Introduction Transcripts
Section Introduction Transcripts

Course Overview
Hello, everyone. My name is Sol Amour, and welcome to my course, Exploring Dynamo Geometry. I am a Project BIM Manager at DesignTech in London, in the United Kingdom, with a background in architecture, and I am part of the Global Dynamo Community. As a Project BIM Manager, I work with Dynamo daily, using it to streamline model audits and validation, to automate mundane tasks and explore geometries that are natively difficult to create in Revit, but relatively simple in Dynamo. I am responsible for software education, custom content creation, and the design of bespoke workflows and tools in Dynamo. Dynamo, as a tool, augments the power of Revit. We can use Dynamo to create geometries that are inherently difficult to create in out-of-the-box Revit. On this course, you're going to discover how to create geometry in Dynamo, through both a node-based workflow and design script, a programming language specifically written from the ground up for the AEC industry, in order to unlock curvaceous, inorganic forms in Revit. Some of the major topics that we will explore together are creating points distribution grids, randomizing sphere sizes, creating a custom node, controlled randomization of input variables, and exporting and importing data to Excel. By the end of this course, you will know how to work with Dynamo in order to create, manipulate, and flex geometry, to populate a coordinate system distribution grid with options, to choose a particular option, and push the requisite data out to Excel in order to recreate that exact same geometry at a later date. Before beginning this course, you should have covered an introductory course on Dynamo. I hope you'll come on this grand adventure with me and learn how to explore Dynamo geometry at Pluralsight.

Nodal Workflow for the Creation of a 'Glacial Table'
Hello, and welcome to my course, Exploring Dynamo Geometry. My name is Sol Amour, and together we will explore how geometry is both created, manipulated, and automated in Dynamo. Using a glacial table is the focus of this course. We walk though how to create this particular geometry, both in node-based workflow, using visual programming and a DesignScript based workflow using the inbuilt scripting language of DesignScript. Before creating an optioneering workflow to randomize our variable inputs in order to get Dynamo to parametrically create options for us. The glacial table will be created through geometrical Boolean operations. We will define the legs of the table, depicted as cuboids, a rectangular tabletop, and a grid of randomized spheres before using Dynamo to gouge out the sphere grid from our tabletop, resulting in the glaciation effect. Afterwards, we will union our geometry together to create one single, solid output. Finally, we will set up a coordinate system grid and populate said grid with a series of randomly created glacial tables, defined within a set range in our optioneering study and be able to pick the option that suits us.

DesignScript Workflow for the Creation of a 'Glacial Table'
Hello and welcome to this DesignScript base tutorial for a Glacial Table in Dynamo. We're going to begin by opening our node based tutorial as we have showcased in the background. What we want to do is simply use File, Save As, and replace this as a DesignScript place work flow. And you can call this anything you like. I have called it Production DesignScript Based Working. Once we have re-saved this file, we can go through and select every single node, apart from the sliders, right click, and through the option node to code. Showcase how Dynamo inherently can convert nodes into DesignScript. This is the easy way to figure out how to appropriate a DesignScript syntax from a particular node in the library. However sometimes this node to code will not execute correctly, and in this case we have a cyclic dependency within Dynamo. This means that our code block will execute as yellow, and it will not create the geometry that we are looking for. What also happens within DesignScript of the node to code variant is it sometimes comes through a little bit more inefficiently than what we could achieve if we typed it out from scratch. DesignScript has the ability to nest creation methods within each other. And while some of that occurs through the node code options, it doesn't always exist. It hints we have a serious amount of lines as showcased in the background now. What we're going to do is delete this code block and start again from scratch. We're going to want to retain our input sliders because these are the variables or the values that allow us to create the glacial table. And as we have pre-defined them already in the node-based version, we do not need to do so.

Optioneering: The Creation of Options Through Parametric Processes
Hello and welcome to this optioneering study of our glacial and Dynamo. To begin you're going to want to open either up our node base or DesignScript based versions of the glacial table. Once you have done so you're going to want to select all of the code, all the nodes excepting the sliders and using the edit menu we're going to use create node from selection. This can be shortcutted in the background with CTRL+D. Once we do this it's going to create some custom node properties where we can name our custom node and give it a description and define a category for it. With the naming of a node in a custom node generally speaking it is good to define what package that custom node comes from. So if you share your graph later on people can understand what they need to download. In this case my custom node is called Atmos so I'm going to preface this with an atmos. and then call the node glacial table optioneering. The description of this node is going to be very simple in this case. Creating a glacial table with ability. And I've designed this simply as creating a glacial table with optioneering ability. Now the category we can define as this, I am going to use atmos, which is my personal package, dot geometry because we're creating a geometrical output. Once you click okay Dynamo's going to squish all of those nodes, or the DesignScript code as the case may be, into one single new individual custom node. If we zoom in you'll notice that the custom node has a tiered structure going on at the background to demarcate that it is in fact custom. It will also give default input values for all of the slider variables which match or correlate to the input variables of the nodes they actually transition into. It will also output three standard outputs. Some of these are defined as we chose such as the solid and in the out and sequencing we need to delete because we no longer need them.