Best Automation Tool
Von Artem Boiko, www.bigdataconstruction.com
New automation tools take planning to a new level of development.
Which tool will allow us to save thousands of hours by automating BIM processes in Revit?
At the moment we have 4 automation options for Revit:
- Dynamo (Open source graphical programming)
- Rhino.Inside (beta version, with Grasshopper it like Dynamo)
- PythonShell or pyRevit (Python with the Revit API)
- C# (C# with the Revit API)
On the chart I put together my thoughts on this subject:
🤔 This Сhart can help you to explain managers in what cases what needs to be applied and what is the value of each of the tools.
Each decision has its own tools
🏃♂️ For example: If you make some kind of script “with clean nodes” in Dynamo in the first minutes the speed is very high. But in the case of an expanding task and an increase in conditions: the speed can drop sharply.
📜 In Python (you can you can use also Python in Dynamo), in this regard, everything is more stable. You start slowly, but the growth of the script does not cause problems either in speed or in development (although sometimes the script becomes so large that you cannot work with it without a normal editor).
And when choosing a tool, you need to look at the “Prospects” of the idea. If this is something quick small, then Visual Programming – Dynamo or Grasshopper. For a medium-sized tasks, Python is more suitable. If you have a large task with a lot of data, it is better to use C# (the same thing can be done on Dynamo, but the speed will be 10 times slower).
Designers vs Programmers.
🤦♂️ Programmers working in BIM departments do not like tools like Dynamo or Grasshopper, because for programmers, the scripts in Dynamo look like “Spaghetti code”. Such developers write “relatively clean” (in fact similar quality in Dynamo) tools for Revit – in C # (or RevitPythonShell).
😇 The problem is that such tools are written upon request from the planning department.Thus, the strong intrinsic motivation of the designer flows into the artificial extrinsic motivation for the programmer.
As a result of the difficult work of transferring the logic of the designer to the programmer’s code, a new link is created in the planning process, which in the future, in my opinion, may be replaced by tools such as #Dynamo or #Grasshopper.
🥰 For people who have worked in designing for decades, tools such as Dynamo and Rhino.Inside is a breath of fresh air in a monotonous job.
🙏 God bless Open Source Community and the developers of tools such as Dynamo and Grasshoper, PythonShell, pyRevit, Rhino.Inside, … !
💪🏻 I hope you’ve benefited from this guide.
🙋🏻♂️ I’m looking forward to your comments and to new contacts.
#Dynamo – is a visual programming tool that works with Revit. Dynamo extends the power of Revit by providing access to the Revit API (Application Programming Interface) in a more accessible manner. Rather than typing code, with Dynamo you create programs by manipulating graphic elements called “nodes”. It’s an approach to programming better suited for visually oriented types, like architects, designers, and engineers.
#Rhino.Inside – is an open source Rhino WIP project which allows Rhino and Grasshopper to run inside other 64-bit Windows applications such as Revit, AutoCAD, etc. With Rhino Inside Revit you also get all of Rhino’s functionally including Grasshopper for Revit. Grasshopper is a visual programming language similar in concept to Dynamo (although there are fundamental differences).
C# – Autodesk #Revit provides a rich API that can be used to customize the product’s existing features or by adding entirely new ones. You can automate repetitive, time-consuming tasks and extend core features without leaving the Autodesk Revit environment. The #API can be used to create custom tools and features that plug directly into Autodesk Revit, extending its functionality.
RevitPythonShell – brings scripting ability to Autodesk® Revit software and Project Vasari. Designers have the ability to interactively design and manipulate Revit elements using algorithm and computational logic with Python code.