Dynamo - Strengths and Limitations
As a Designer in the AEC/BIM arena, you often hear about needs such as increasing automation, workflow improvement, reducing repetitive and time-consuming tasks, and preventing human error. On the technology front, much of the time Dynamo is the tool that is turned to in order to address those needs.
That's because Dynamo is a visual “programming” tool for designers, in which one connects elements together to define relationships and sequences of actions to create a custom algorithm. The algorithms can be used for a wide array of applications, from processing data to generating geometry, in real-time, and without having to know coding-based languages It can also make use of external libraries or any Application Programming Interfaces (APIs) available in your software, such as Autodesk products, giving you the ability to enhance a product’s out-of-the-box capabilities.
If you want to learn more about Visual Programming or how Dynamo works, click here to see our previous blog post about it.
Strengths and Limitations of Dynamo
Although it is true that you don't need to have programming knowledge to create a script, you do need to be aware of both Dynamo’s strengths and its limitations.
When you start creating your first Dynamo script, you benefit from a tool with great capability that is simple to learn and use and that has a large community of people who use it and share knowledge to their peers. Every time you get stuck/stalled in the middle of a script, you can search for solutions or even share your problems in that community, asking questions and receiving answers from community members. It may surprise you that the majority of time the problem you are facing has already been seen by another person and the community members are able to provide the exact solution to solve your problem! Additionally, you can find a large number of custom nodes through packages that are shared and can be downloaded to give greater effectiveness to your script and much faster solution building for you as the scripter.
However, as every company’s workflow and processes are unique, your needs are often also unique. That uniqueness in need, process, and type of project may create a scenario in which you cannot find an existing solution for your question within the community.
Additionally, as you advance your Dynamo skills and craft more solutions you may find that the scripts you have created have reached a level of complexity that causes them to be difficult to maintain or to perform poorly. While you may be able to find advice on addressing these concerns via the community or other research, you will not likely find a readily available existing solution. In fact, there may even be no clear way to work through the concern within the standard Dynamo nodes available to you. In this case, you may need to restructure your script entirely or even generate your own custom nodes.
As you reach this point in the scripting process, understanding the visual scripting capability of Dynamo is no longer enough to achieve your end goal and a knowledge of code, or at least coding methods and practices, becomes critical to give integrity to your script and to achieve a functional solution. Without knowledge of code it is far more difficult to understand the logic behind script structure, to control the way dynamo manages data, or to create your own custom nodes. Taking it a step further, this knowledge of code is also the way in which you can consolidate your script into a more robust tool and plug it into an existing application such as Revit or even package it as an application in itself.
Dynamo can be used to efficiently address many situations you encounter:
- Numbering more than 100 sheets in a single operation.
- Add/suppress prefixes or suffixes in text parameters.
- Change parameter values of schedules using Excel.
- Center text of all dimensions on the same view.
- Fill parameter values in an intelligent bulk process.
Learn Dynamo, Use Dynamo … And Code
Dynamo is a powerful tool for designers to learn and incorporate into their operations and workflows. Depending on the nature and complexity of a need you face, Dynamo can be used to directly address that need or may simply give you a launching point to conceptualize an automation and begin drafting a solution framework to meet that need.
As the complexity of your needs increases and you begin developing a more complex scripts, however, a lack of Knowledge of code becomes a limiting factor in pursuit of a solution. At this point the help of an expert will be required to help give structure to the Dynamo script, create custom nodes to your unique need, or build a more robust tool that will not compromise on capability or performance of the Algorithm.
The truth of the matter is that unique and complex real world problems often require a combination of Dynamo and traditional software development (coding) to be effectively addressed.
At Voyansi we use Dynamo regularly and encourage our production teams to learn it and take advantage of it in their daily work routines, both for internal needs and to better serve our customers. Learning Dynamo provides a method to create efficiencies in your work process through crafting your own automations to increase accuracy and performance while reducing errors and volume of tedious tasks. Scripts created in Dynamo, whether simplistic using out-of-the-box capabilities or complex taking advantage of capabilities built using advanced coding platforms like C#, can be powerful tools to enhance the capabilities, throughput, and profitability of your teams.
As you proceed on your journey to learn Dynamo and incorporate it into your process, Voyansi can provide support. Our teams offer training on Dynamo as well as Dynamo script creation as a service. Additionally, when your needs are more complex, Voyansi’s Software team is here to support you.
Our Software team is composed not only of Software Engineers, but also industry people such as Architects and Civil Engineers who have strong programming capability. We can provide those more complicated services like interoperability with 3rd party applications thru APIs, custom Dynamo node creation in languages like C#, or even building a custom bespoke platform to your unique needs entirely outside of the Dynamo arena.