Dynamo is used to create algorithms that take input(s) and extract and process the input's data to return an output or outcome. Often, these inputs and/or outputs interact with a Revit file. Dynamo is good at reading and analyzing information, sometimes from multiple sources. In this video, learn about Dynamo's value via real-world examples, which leads into a discussion of how to adopt a programming mindset to solve problems and build tools that boost efficiency.
- [Instructor] Let's begin the course by talking a little bit about Dynamo, what it is, how it's used, and why it makes sense for you to learn it. First let's answer the question, what is Dynamo? In short, Dynamo is graphical programming for design and BIM. We're going to talk a little bit more about what that means in a second, but in short, Dynamo is what you decide to make of it. It's an extremely flexible environment that presents lots of brand new opportunities for architects, engineers, and construction professionals. Working with Dynamo, to put it most simply, is writing algorithms.
Algorithms are a procedure, process, or a formula that's followed exactly in order to solve a problem. Because Dynamo users tend to be architects, engineers, and construction professionals, the set of problems that Dynamo is most often used to solve are analyzing BIM data, automating tedious and repetitive documentation tasks, and exchanging information between software formats that don't always play together nicely. Writing an algorithm is a lot like writing a recipe. A recipe includes a list of ingredients that are required, specific instructions regarding how they all need to be prepared, processed, and the conditions under which they ultimately will be combined together into a final outcome.
When you work in Dynamo, you're writing a series of instructions that the computer will follow exactly. You need to tell Dynamo what data or information to start with, which we'll call the inputs of your algorithm. You'll also need to tell Dynamo how those pieces of information need to be organized, analyzed, and how they need to interact together in order to achieve an end result, or an output. There are plenty of opportunities for working with algorithms in a design and BIM workflow. For example, an algorithm might be used to inform a designer working with complex building geometry, and there are parts of the building that are overly expensive to structure or manufacture and need to be resolved.
Or maybe at the very start of a project, zoning restrictions like setbacks, lines of sight, and other limitations can help define the project's zoning envelope. Sometimes algorithms are written to report information. Perhaps your script runs a test on all of the windows in your Revit project to identify specifically which ones have a line of sight to a nearby landmark. Other times, algorithms are written to perform a process of multiple steps that otherwise you would've needed to have performed manually. Maybe you're adding a line of text to whatever's already in the comment field of all the families in your Revit project of a specific type, or maybe you need to convert all the notes in your drawings to uppercase but you don't want to spend the hours searching through the entire drawing set just for a couple of lowercase characters that you need to correct.
Now, these are just a few examples. There are tremendous amounts of possibilities. While you're learning Dynamo, try to pay attention to the things in your day-to-day work that could potentially be automated using algorithms. So, how is Dynamo different than learning to code? Dynamo was developed to make the power that comes with coding your own software accessible to people that haven't studied a programming language. Dynamo is what's called visual programming, meaning that you are, in fact, programming, but instead of typing out lines of code, your algorithm is composed of a series of what Dynamo calls nodes.
This is a brand new way of thinking for most people in the building industry who don't have a background in programming. Because you're likely learning to program for the first time, this course is going to cover a handful of basic programming concepts. During the beginning of the course, this might not seem to be directly related to your day-to-day work, but these are important concepts to understand to get you properly equipped to introduce greater efficiency and accuracy to your BIM workflow. So, what's the advantage to working this way? Programs written in Dynamo, which are called graphs, can be reused from project to project.
It might take you a little bit more time to build a Dynamo graph than it would take you to solve the problem, but if this is a problem that you expect to have to solve again, you can reuse the script for an instant solution next time. In the long run, it can save you a lot of time. You can also build your scripts so that the same process is run on lots of inputs at once. While you're working, how often do you find yourself performing the same command or sequence of commands over and over on a different set of elements? Dynamo might be able to help you. When you write a script, you can choose all of the elements that you need to perform the task on at the beginning and run the process on all of them simultaneously.
Getting the computer to save you time means you can spend more of your time and attention on design. It's even possible to use Dynamo to test multiple design iterations at once. You can also work with a greater degree of precision and accuracy. If you're getting the computer to run calculations, execute commands, or perform data entry, there's a major reduction in the possibility of human error. Dynamo is also capable of reading and writing information from a wide variety of sources and formats. You might've found this course or become interested in learning Dynamo because it sounds like it's the next big plug-in for Revit, but Dynamo is far more than just a hyped-up Revit add-in.
It's a technology that enabling easier exchange of data between software packages that traditionally haven't played very nicely together. In this course, you're going to see an example that begins with information in an Excel spreadsheet. We'll use Dynamo to read the Excel file, perform some calculations and analysis, and ultimately write the data to several Revit parameters in a Revit project. There have also been examples of workflows allowing users to extract structural design information from their Revit project using Dynamo and then automatically generate an analysis model in Robot or Reactor simulation, and then send the results of the structural calculations back into Revit to adjust their structural models.
You might also use Dynamo to read clash report data from a Navisworks file, which you could then use to generate 3D views of the Revit elements that need to be adjusted to resolve the clashes, or format and write the clash report data to an Excel spreadsheet. These are just a few of the possibilities thanks to Dynamo's open-source nature and an active community of users. There are plenty of developments enabling geometry to be read from other formats, like Rhino, Autodesk Maya, Trimble SketchUp, and other raster and vector graphic formats.
Now that we've covered what Dynamo is and why it makes sense for you to learn it, let's fire up Dynamo and get started.
- Placing and connecting Dynamo nodes
- Working with data types and math functions
- Creating number lists and text strings
- Writing data to an Excel spreadsheet
- Filtering and sorting data
- Creating points, curves, surfaces, and solids
- Analyzing geometry
- Linking a Dynamo-driven SAT to Revit
- Placing Revit families with Dynamo
- Creating Revit views and sheets with Dynamo