As Revit users, we have all seen, heard or vocalized our frustrations towards the software. It’s a product we spend a lot of time in and spend money on, so it is easy to recognize it’s faults.
For me, one of my biggest frustrations is, the lack of API methods for model groups. We use model groups pretty heavily at Parallax Team, and advise our clients to do the same. Being that we also build custom tools for clients, a lot of times they want us to do crazy things with groups, like something completely unimaginable like define an origin of a group on creation.
Reflecting on frustrations or things that hold you back in general, I have always been on the mindset of “not depending on someone else to get something done”. Years ago I worked in a warehouse and would train people. When working with trainees I would always tell them,
If you find yourself waiting on someone else to keep you moving, you are wasting your time.
Specifically (in a warehouse setting), this was referencing people waiting on forklift drivers to stack pallets for them. Instead of waiting on someone else, do what you can to make it happen and move on.
Of course, this thought process is ever-changing and not a strict rule to follow.
With that in mind, I often approach Revit the same way.
With model groups (and their lack of origin specification for group creation), I aimed to find a workaround.
Rather than re-record the whole thing, here is it in action during a live hangout call with TestFit’s Clifton and Nat.
Essentially the workflow is as follows:
- Create a new (disposable) floor type in Revit.
- Using that type make a big floor where the center represents your desired origin of the group.
- Group the floor with your elements.
- Delete the type from Revit. (in the API the warnings are suppressed)
And of course, this is going to end up in Rhythm soon. Here is the node in action:
Until I push the Rhythm update, all the source code is here for you to check out! https://github.com/johnpierson/RhythmForDynamo/blob/master/src/Rhythm/Revit/Elements/Group.cs