So having dabbled in Dynamo on an off for the best part of the year, I am in no position to greatly comment on what Dynamo needs. It is a complex animal and seems you need a good bit of Python to tweak what is on offer. There is a good smattering of custom packages out there that can really aid in productivity and open avenues within Revit that were seemly impossible to do.
From newbie with no virtual computational experience, to having created a number of successful graphs either interoperating with Rhino and adaptive components, placing complex railings equidistant over a curved floor perimeter, or generating site plans with Open Street Map data, I am now in a position of understanding, yet having frustrations both at the same time.
It is a great feeling to nerd out and get a graph to function, minimizing the nodes and playing with Dynamo’s logic. It is frustrating to see those little yellow error messages appear without explaining very much, or that the definition seemingly works, only to find out the next time you run it, it inexplicably doesn’t; trying to locate that node to do something simple or that the Revit API isn’t exposing itself.
My colleague Dane Stokes, a Grasshopper whizz and Rhino jockey, gets easily frustrated with Dynamo. He likens Dynamo to a British car: finicky, powerful but good luck getting it started and seemingly in the shop most days.
The functionality and polish of Grasshopper attract many graduates, who typically aren’t constrained to producing construction documentation. Given a choice, most simply gravitate to Rhino and Grasshopper for their needs, leaving few that can aid with Dynamo in the professional setting.
Dynamo is a great tool to Revit, but best practices, workflows or documentation have not been developed in industry. The standalone Dynamo Studio is being used with FormIt to create geometric shapes and change their properties. Josh Goldstein at Autodesk has provided tools that generate louvers on a building or create a staircase in FormIt. Yet this added functionality provided by Dynamo already exist in the Revit product with parametric families and tools. So when is it appropriate to implement Dynamo with Revit? What are the best workflows if you are pushing data back into Revit in a Work Shared and live model? How can we share and document our custom graphs that we create?
Dynamo Player has arrived as of Revit release 2017.1 which helps, but varying inputs need to be incorporated for the Player to function effectively. When we get input functionality, should we create a Dynamo graph or create a dedicated Add-in tool using the Revit API? I feel Dynamo works well for custom situations that require hacking Revit’s stubbornness, yet if there is a repetitive task or a function that is being used consistently on all projects, it is probably wiser to create a tool using the API to share with your entire firm or industry.
I realize that you have read all the way to here and I haven’t addressed what the title of this blog asks, What Dynamo Needs?:
I feel Dynamo would benefit by:
- Improving search functionality speed.
- Filtering a list of compatible inputs from an output.
- Make error messages make sense.
- A Python debugger.
- Inputs to Dynamo Player in Revit – akin to the how Dynamo Studio interfaces with FormIt. I have been told by sources that this is coming soon!
- Dynamo Studio communicating with a headless Revit in the Cloud.
- Increasing mobility with an iOS application.
There are many ways to have multiple teams work Revit. Within the office over a network you work share with your colleagues, all synchronizing your respective local files to a central model. Nothing new here. Your external consultant teams send you their detached central model via FTP and you link these into your central model. Once again, nothing new. If you have colleagues that are not local, you will utilize a Revit Server. What happens though if you are working with external teams remotely and they need to work in your model, such as an architect of record partnering with a design lead architect? You don’t necessarily want the other architect perusing your other projects and files? You also don’t want to pay for their Revit licenses or setup dedicated workstations for them to remote desktop into. Luckily for you there are a few options.
Collaborate for Revit (C4R)
A simple solution is to utilize the “Cloud”. Autodesk have created such a product, linking multiple Revit users to their respective models via their BIM360 integration. Setup is relatively simple and intuitive. Communication is handled via their proprietary chat engine.
Hosting in the ‘Cloud’ may not be for everyone. You may even be worried that access at times may be spotty. You may be right!
Wouldn’t it be great to host the all Revit files on your Revit Server restricting user access to other folders? Now you can! Imaginit have done a nice job of overlaying permissions onto your Revit Server using their product they have coined ‘Clarity’. The remote firm can use their Revit Server and sync the files. Setup is a little more complicated as firewalls need to be navigated, IP addresses white listed and users need to be managed. Yet when all is set up, it works great. There is even the bonus of scheduling Revit tasks such as exporting files, printing drawings etc. Want the communication of C4R, federate your Skype for Business and you have a more enhanced experience. The cost is competitive also, with only the host paying for the service, all others need only set up their Revit Server, if they haven’t done so already.
Here is a précis of Revit collaboration methods
- Free for partnering firm
- Not a good user experience due to bandwidth
- Utilizes hosts hardware
- Licensing concerns
- Have to restrict network folder access
- Easy to implement
- Can be pricey – subscription requirements
- Communication platform restrictive
- Cloud offering could go down
- Little cost for non host
- Files host on servers rather than Cloud
- Perform scheduled tasks
- IT departments need to typically set up
Need to know partnering firm IP address, Revit Usernames, Autodesk ID’s, email addresses of users.