Possibility to embed Dynamo in Door Family

Hi All,

I’ve got some little dynamo to determine if a door is left or right handed.
In a project I can run it and it adds, in the comment property of the family, the string “left” or “right” will appear depending if the door is flipped.

Now I want to create families of multiple doors.
I don’t want to create 4 families for each door (Left, Right, Left Reversed and Right Reversed door)

Is it possible to automate a family with dynamo, so by placing the family, even with flipping, to fill the comments with the correct text? Without doing something extra?

Thanks for reading!!

Hi @boobobob

There is a custom node from archi-lab package to flip doors “Door.SetHandling” will get you started http://archi-lab.net/door-set-handing/

Hi Kulkul,

Thanks for your reaction.
I have the flip handling already in dynamo.
That is not the problem.

I want to automate a family with it, so we can give the users of the family this functionality.
When the user flips the door, the comments paramater will be updated with the correct text.

We, as company, can’t expect from designers to run a dynamo script theirselfs, so I want to embed it in the family.

There are many ways to do this here is an example Set ToRoom and FromRoom using Doors.Rooms #clockwork

Make sure you activate room calculation point inside family.

I think I understand what you’re after, @boobobob, but it is not possible without opening and actively use Dynamo. Autodesk actually had a really interesting project on this, called project Honeycomb, ref video from RTCNA 2014 here: https://www.youtube.com/watch?v=1eu-1HzMb7U

Maybe @Zach_Kron can share some light on why this apparantly has been scrapped?


Hi jostein_olsen,

Thanks for your reply. Are there other ways to archieve it? Maybe with macros, or c# and the revit API?


Why don’t you want to create a family which combines yours Left, Right, whatever? And when users will place those doors they will choose appropriate type with all parameters set up?

I posted this idea on Revit ideas for voting!


Hi Nikolay,

Yes that is an option, but with 50+ different doors and for each door 4 variants (left and right for inside and outside turning) to build and maintain it is a lot of work.
I’m looking for the best sollution possible.

Thanks for your reply!

Thanks John!

One-button solution has never been the best. You want to overcomplicate the task instead of solving it. What is the difficulty of your problem? A lot of different doors? Then try to split them into similar groups, combine them into families and apply type catalogs if needed.
Do they need to react on surroundings automatically? It’s impossible - Revit families are not aware of their environment.
Switching door configuration by selecting parameters from drop down lists in families? Drop down lists are not supported (you can post the idea, but it’s been in the wish list for ages), but if you just type “Right”, your family can choose correct orientation by selecting correct type of embedded families. The main disadvantage of such approach - you can hardly use existing families as their construction must consider such usage.

Hi @jostein_olsen ,
Yes, the honeycomb project has had an enduring interest for a lot of people over the years. A couple of things that I think made it less of a priority: global parameters, the availability of macros, the development of Direct Shape functionality as a way to create arbitrary forms with category and other types of information, Dynamo being available out-of-the-box, and Dynamo player. All that being said, there are a lot of things that these functionalities don’t allow that the embedding of Dynamo scripts (or other code) inside of the regeneration cycle of families would allow. Perhaps more important, with the growing popularity of Dynamo, embedded Dynamo functionality in families would open up a large community of people to really advanced family creation.

Embedding of essentially arbitrary code inside of the family regeneration cycle is definitely an implementation idea that is full of risk, as the possibility of performance degradation, file corruption, or cyclic dependencies is pretty huge. But risks also can have big rewards. If you are interested in seeing more development with this idea, I really encourage you to add your support to the Ideas page that @john_pierson started.



Best possible solution is a bit of a loaded statement. Do you want to save time/effort today or long term?

As you noted running a Dynamo graph every time you want to confirm the handing is one more thing to add onto the list of things to remember to do before you print, and requires a good amount of time when you think about the number of times you print across all jobs in an office… But running that dynamo script saves a lot of time in the near term as you don’t have to change anything - just tell the computer to do the work.

Likely you want a hybrid solution - run the script before printing until you have the time to overhaul the door families.

Even that overhaul isn’t that involved time wise if they are built well (hint: nested parts and pieces). Set up instance parameters to control the visibility of your door panels (which should have the swing built into it). Delete your flip controls. Mirror the door panel geometry and tie it to the respective parameters. Use a few formulas to control options so you don’t have to check more than one box for a given option. The set up a parameter to return a text value based on which boxes are checked. The users changing the handing would simply check off left/right and inswing/outswing parameters instead of using the flip functionality. Handing populates the schedule correctly every time as a result.

You might even be able to automate a good bit of the modification process with Dynamo (creating the parameters, mirroring instances, etc).