Autodesk Revit has been a popular 3D modeling and designing software used by construction companies, architects, and designers in all parts of the world. Dynamo integration to Revit has made it more powerful in terms of automating repetitive tasks, exploring hundreds of design options, performance testing, and many more. At the same time, Dynamo has a specific set of features that can be leveraged at various stages of projects. Read on to find the Revit versus Dynamo information pointers to make the best use of their features and design/modeling capabilities.
What is Revit API?
API is an application programming interface, a medium through which a developer can interconnect with existing software. Revit API is a collection of programs and libraries that helps in building and integrating software to Revit to extend its functionality. It helps to integrate Revit with external programs like RISA and ETABS. The Revit Platform API is compatible with the .NET framework that allows developing applications in any .NET compliant languages like C#, C++, and VB.NET. Revit’s .NET API enhances the software functionality in Simulation, Conceptual design, Building management, and construction activities. It allows us to link up with programs external to Revit such as RISA, ETABS, etc.
Basic Functionalities of Revit API
Geometry Extraction - With the help of Revit API, we can extract Geometry from the indexed property Element; Geometry or Element.get_Geometry in C#. By feeding the option 'class' of this property, the output end can be customized such as detail level, view, non-visible elements to be included and compute references, etc. With the custom Exporter API of Revit 2014, the 3D geometry can be extracted. Here is an example of geometry extracted using C# and C++.
The sectional view of the extracted from the geometry was this:
Design automation - Design Automation API for Revit can create cloud-native applications that help in building, extracting, and modifying the Revit data. It enables to automate several tasks like documentation, analyzing the model data, creating customized Revit families, and automated report from RVTs.
Building analysis - The Revit API for Structural elements and workflow analysis is extended with structural code checking, enabling BIM experts and developers to connect several tools like structural analysis calculation, creating, modifying, and numbering of reinforcement, etc. Electrical analysis and the workflow can be embedded in BIM using Revit API. Revit API’s are continuously extended for building energy performance analysis, MEP analysis, and Structural and design options.
Customized tools - In Revit, using the Revit API and c#, customized plug-ins can be created. Custom Revit API tools are usually created to enhance productivity and build professional add-ins.
Data Extraction and Import - Revit API can be used to extract data from any linked files, RVT File, or Basic File. With the use of Revit API, a parameter data can be exported to Excel and re-imported to the model. For example, a new shared parameter can be created and populated in the model, all the values can be exported to excel and then the modified data re-imported from excel to update the Revit model.
What Is Dynamo?
Dynamo is a visual programming tool that is intuitive to the Revit environment. It creates an algorithm to read, analyze, and edit data. It takes input, then extracts and processes the data to give output, usually in interaction to Revit files.
It is an open-source platform and maintains a single website for learning materials and resources for all needs. The links like, Learn, Forum, and Event help the users to get the learning resource, nodes or packages are shared on forums in addition to queries on forums, and upcoming workshops or conferences are posted on the Event section. Dynamo is an ever-evolving tool and its latest version is launched almost daily. Geometry Library and Design Script are some of the other functionalities provided to users by dynamo.
Basic Functionalities of Dynamo
Visual Programming - Dynamo is a visual programming framework where a program is created by using nodes. Here Nodes are boxes having an input and output end, each node performs a specific task or function. These nodes are interconnected with wires. The program flow is represented graphically and logically using these nodes.
Some of the nodes of Dynamo interact with Revit API. Dynamo can use Python script nodes for advanced functions which is similar to writing programming software.
Creates its own Geometry with parametric relationship - In parametric design, changes made to one parameter changes the output or results connected with that parameter. Dynamo creates a geometrical relationship with nodes, a hierarchy of geometrical relation is created, where changes made to any node, changes the nodes connected with it. With Dynamo added, these variables can be changed automatically.
Automates Repetitive tasks - In Revit, we have to perform numerous repetitive tasks. Revit has made it easy to perform repetitive tasks but not like with dynamo. As an example, if we want to create a sheet in Revit, we need to click right first, then left and then need to do a little typing. But in Revit adding 50 sheets is a difficult task, each time we need to click to add a sheet. With Dynamo these tasks can be automated, we can create sheets directly by viewing the models or from an excel file. Using Dynamo, several tasks can be automated by creating tools like flip the grid heads, insert families in batch, renumbering or revision of sheets, changing the text head, etc.
Generative Design tool - Dynamo is a generative design tool as it create a design using algorithm or a set of rules. The application can be leveraged by the AEC industry to explore and optimize the deign options. Here, designers are allowed to develop geometrical relationships logically irrespective of any traditional sculpting.
Whether, it be geometry for twisting towers, layout of mechanical rooms, layout of furniture in a class room or glittering patterns on a wall, there are various design applications available with Dynamo.
Why to Choose Dynamo over Revit API?
Dynamo being node based tool is more user-friendly - Dynamo is a node-based application, the visual programming tool is better suited for architects, designers, and engineers. It does not requires extensive knowledge of programming language to understand the basic logic of algorithm or information flow. The user-friendly approach of Dynamo gives more control over the ordered custom tool development services. It also reduces the charges of maintaining a consultancy for the development process of software, as it can be managed by architects and engineers with fewer coding skills.
Better positioned to solve project specific and short-term projects - Dynamo can provide solutions iteratively or repetitively, which makes it suitable for some project-specific or short-term projects. For example, in a large-scale infrastructure project, for a railroad line, a dozen bridges are required for car overpasses. Specific project structures are required to build the bridge, but the railroad line position is yet not finalized, which might change the geometries of the bridge. Here, dynamo can solve the problem by automating the bridge BIM model. With the increase in complexity, solutions can be customized using dynamo. For short-term and project-specific issues, the dynamo is better than C# coded Add-Inns.
Customized tools helps to deliver fast and solve dynamic problems - Dynamo is a node-based VPL, which when used in conjunction with Revit can create and manipulate geometry and data. The workflow of Construction projects can be automated and accelerated by developing customized tools using Dynamo in Revit. Dynamo can create nodes for Project start-up, documentation, management, and analysis like creating sheets, creating and renumbering rooms, assigning elements to worksheets, analyzing the balcony size, etc. The performance of a building can be measured with dynamo throughout the design process. For example, simulation data can be developed by dynamo to measure, how much daylight we can expect in December or a cloudy day? The computational properties of dynamo help in getting an optimum solution and potential solutions for project workflow can be analyzed quickly.
Single and open source - The openness of Dynamo gives it an edge or advantage over other Visual Programming languages. Users share new concepts and ideas on the forum, extend help by sharing their views and solutions, this leads to gradual improvement of the application. Packages are created and uploaded by users in single nodes or library of nodes through Dynamo Package Manager. These packages solve any specific problems of the users.
Dynamo scripts can be easily updated and maintained in-house - The visual simplicity of dynamo makes it easy to learn and build up skills, to modify and develop the custom tools, this does not require any full-time programmers. These benefits reduce the overall cost of any BIM project as it eases the process of creating any custom tool to enhance the workflow and decrease the potential risks.
Limitations of Dynamo Comparing to Revit
Even though Dynamo is steadily evolving but compared to similar tools, like Grasshopper with Rhino, the application has limitations in designing tools for computational acoustic analysis, structural parametric design, energy analysis, light analysis, etc. The reason may be the platform, i.e., Revit on which Dynamo is built as Revit has some modeling limitations.
Dynamo works on graphs and it can get complicated with the increase in the number of nodes, as the number of connecting lines will increase between the nodes.
An interface cannot be created in Dynamo if someone wants to use one’s Dynamo graph. The person needs to install Dynamo to use that graph. Even, Dynamo has been found a bit slower than other methods and has certain limitations in manipulating RVT Files.
Revit is Great - Dynamo Isn't Behind
Irrespective of these limitations, Dynamo is still one of the better options for architects and the AEC Industry to enhance its project design process and efficiency. The user-friendly and visual programming approach helps the users to do more with less effort and achieve better results.