Starting at this tweet, Konrad Sobon triggered quite a discussion around Revit addins and how to manage users, deploy addins, and track their usage. He has worked on coding a tool called Mission Control for HOK that has a MongoDB backend and evidently harvests data from Revit sessions across the company. This is just one of many tools we are seeing recently related to project data, project intelligence, and similar analytics.

Based on this little exchange with @gschleusner , @arch_laboratory is hard at work making sure we will all have access to this soon 🙂

Update… v2 has been published in Bakery package as:
Create Floors From Rooms v2.dyf

All kinds of weirdness with Package Manager at the moment, so I am sharing my entire ‘packages’ folder including Bakery and dependencies for 0.8.2 at this link:

It uses a two different methods to get Room Boundary outlines: first try is with a Clockwork node, next try is by Element.Geometry. It also sets the Room Number to the newly created Floor Comments parameter.

Just letting you all know that this new node has just been published in the Bakery package:
Create Floors From Rooms v1.dyf

The scope:
This ‘version 1’ node takes the Room elements, converts to Element.Geometry, grabs the face at the host level, gets the curves from the face, uses Konrad Sobon’s Group Curves node to assist with making the Polycurves, then matches the right Polycurve with the outer boundary using a bounding box method. Then, it feeds the outline to a Floor creation node (after matching link Level-host Level if necessary), and then sets Element Id, Room Number and Room Name as one string to the parameter you select.

You can use it across links with some other Bakery nodes too, which would look something like this:

Unfortunately, sometimes the builtin Element.Geometry node will fail to convert the Room to a solid. This warrants further investigation, but only affected about 15 rooms of 718 in this particular test. In the meantime, I simply report which rooms fail in the ‘geometry failure’ output:

Future improvements needed:

  • handle Element.Geometry failures with some other method
  • cut out Floor Openings where voids are present in the Room space
  • match Base Offsets by moving created floors to correct height
  • get approximate Room Height by Volume and drive or report desired Floor Thickness

Here is the 1 minute demo:

And the dyn:

If you are on Dynamo 0.9 or newer, you may want to check out Marcello’s Direct Shape method over at:
Simply Complex: Create 3D Rooms in Revit Using DynamoBIM

Konrad has put together some very handy nodes to work with Revisions in Dynamo and Revit. I have packaged up a simple implementation of these in my Bakery package that takes a list of sheets, gets the first revision from that sheet, and then removes it (ie. unticks the Revisions on Sheet parameter). It looks like this:

This is useful for when you have copied or inserted sheets into your model, and they have automatically adopted a revision. You want to clean them up? Use the above, but make sure you filter that list of sheets first.

I use some a couple of these nodes from Bakery to grab views, filter them, then get the sheet from the view:

For more info:
revisions on sheet w/ dynamo | archi-lab

Quickly Deleting Revisions (graph from Konrad):

Also, for deleting revision entries from the Revision table:
I have an alternate version if you want to test it. I made one that splits off the list of revisions away from the first revision (otherwise you get an error – presumably because Revit needs at least Revision there).

You might need the custom node Eraser from the package manager.

I used the Eraser tool and a giant list.create to make a tool that deletes everything unwanted from incoming models (ie, sheets, views, tags, schedules, lines, etc) but I’m still testing it. Essentially the code is the same as the attached one.

As usual use this how you wish and post if you like.


Konrad Sobon has released a very cool and powerful new node package for Dynamo called Bumblebee. I did some very basic beta testing on some of his code a while back, and it looked promising then. It has some more polish now and it will certainly help us get the Revit to Excel connection “buzzzzzing” nicely through Dynamo 🙂

It supports some nice things like writing to multiple sheets at once, offset to specific Cell entries, and writing to multiple locations in the same sheet. Most of this is accomplished through the BB Data node:

There is even some handy documentation already in place:
For specific instructions on how to use each one of the components and what is possible to achieve with each one of them you can refer to Bumblebee Primer: BB Primer

Read more at Konrad’s post:
bumblebee – dynamo and excel interop | archi-lab

Konrad and Mostapha are working on something, and the functionality does not look shrimpy at all. Check it out:

“Mantis Shrimp is a Dynamo (Revit) and Grasshopper (Rhino) interoperability project that allows you to read Rhino’s native *.3dm file type as well as export geometry from Grasshopper. It is written in Python in form of a user objects (on Grasshopper side for exporting) and custom Python nodes (on Dynamo side for importing). It’s an OPEN SOURCE project with all of the source code available on GitHub. At the moment it’s a collaboration project between myself and Mostapha Sadeghipour.

I decided to make this project an open source for multitude of reasons but most importantly because it was written on top of Dynamo (an open source project) using OpenNurbs (an open source project) and inspired by Rhynamo (an open source project to be in December 2014), and finally I was helped along the way by Mostapha who’s almost never written anything that he didn’t like to share. I think i got the “bug” – not Ladybug – for sharing from him.

Here’s how to get started with Mantis Shrimp…”

Read the rest at:
mantis shrimp – getting started… | archi-lab

Konrad Sobon has been spending a bit of time with Dynamo lately, and he is even using it to finetune documentation in Revit – like getting tags to be placed in a more logical position on a glazed system.
From archi-lab:
Revit’s Tag All tool but with extra control over where the tag actually gets placed…
 tags generated through standard method of Annotate>Tag All are overlapping randomly not only with each other but also with panel edges. That’s not very good looking plan. Here’s an image of what you can do in seconds with my new node:


Original post:

Konrad has posted a video along with Dynamo nodes to demonstrate the management of tags based on their host type. Fire rated walls receive a certain tag, while non-fire rated receive a different one.

This is just one example showing that Dynamo isn’t just good for form creation. It has a legitimate role among the Python / Ruby / vanilla macro / API addin realm of Revit modification and customization.

Downloads at:
Revit/Dynamo | archi-lab

Original post:
Managing Family Types with Dynamo | archi-lab

Konrad Sobon has put together a Dynamo definition that parses a Warning HTML from Revit, picks out those associated with a particular warning type, and then lists the associate element IDs so they can be isolated in a view. What Revit Wants is this kind of cool.

Original post:

Video demo:

Check out his channel for more Dynamo things:

You can also:
Download Dynamo here