3 minute read
Tools for AEC teams
Have you ever tried to make your team use a specific set of tools for a specific set of tasks?
Where it started?
Advertisement
Ihave. Being the Dynamo wiz’ at first and now graduating slowly to a python jedi, I have always tried to avoid clicking in Revit. Not that clicking is bad, but the repetition itself of tasks requiring no brain cells usage always got me to the guts.
I built quite a few tools so far: from simple ‘not in use’ purge tools to more advanced Quality control data extraction tool or Automated fire rating plans tool, … Started with Dynamo got me wondering how to properly distributed, deploy these tools to my team. A wonder of batch scripts, powershell code, dyno (to create a toolbar in Revit) got me there. Painful but I was in a sweet spot where the work I automated for myself would benefit others. It got me going about a year and a half until I couldn’t bear anymore the dynamo packages maintainance. Every time someone dared to update its wonderful package, I had to spot it, download it, share it in-house. Not a fulltime job, but not a small task either.
I told myself: Sit back, relax, and look for another solution.
At the time, I was beta testing Nonica or Orkestra. But it could not support all sorts of original content.
2019, BILT Europe, workshop by Frédéric Beaupère: Enters pyRevit.
I knew it because of its hatch making function, I knew it was free, open source and powerful, I just didn’t know how much. I started learning python for a bit, so I guessed I could up my game learning from the pyRevit tools. I was not deceived. From this workshop where Frédéric explained the basics of python, the Revit Python Shell and pyRevit, I got hooked. And I understand I could go much further with pyRevit than I ever would with Dynamo. Today, I am teaching (preaching) the sweetness of the pyRevit framework to everyone willing to hear it.
What you can do?
First step – Create the Toolbar, Structure, Distribute
I first created a toolbar. Simply by having pyRevit installed, a config file for my extension (that’s how you would call it in pyRevit) and a set of folders, following a simple naming convention, and a set of scripts (dynamo and python ones), icons, …
I hosted it in a code repository online. And got my colleagues to install it with one command line _ that being a nice intro to the command line world for them.
Second Step – Updates, Locales, Help Documentation pyRevit: We got you covered: title: fr_fr : mon bouton en_us: my button tooltip: fr_fr : c’est mon bouton en_us: this is my button
I then setup an auto-update script that does grab the latest code everytime someone starts Revit.
The team is international: French and English required.
I need to link the tools to their documentation: “.urlbutton”, “hyperlink:”, “help:”
Everything is here, well documented and with a niche community ready to help and support. What else would you need?
Third Step – Dynamo packages and setup, Rapid Tool Prototyping
Dynamo scripts tend to be dependant on many available custom packages, these dependencies are the pain point in scripts sharing. Adding the packages to the code repository and distributing it at the same time does improve greatly the process. Auto-configuring dynamo paths being the icing on the cake, now the team shares the same base of dynamo custom packages. Having fun, while creating crazy efficient tools for very specific tasks. Coding is a very demanding skill, fun but demanding. Now that the setup is here, answering a very specific request tends to be easier. Use case, count lines per view. That is something that is pretty easy with the tool available in pyRevit. The thing is, counting them in all the revit links for specific quality control is not available in pyRevit or with any other plugin.
Bas ed on the count lines per view tool, spending an hour to adapt it, the tool was ready to ship and tested on the spot.
Outro
Using pyRevit _pun intended_ to prototype, document and share your tools has been a great way to get colleagues and clients to feel less punished by the limitations of a software like Revit. The community around pyRevit being populated by so many fantastic individuals, I strongly suggest you to go look at others extensions such as pyTyba, EF-Tools (and its tutorials), pyChilizer. Be curious!