Room Finishes Update

I keep on working on my Revit add-ins. After Align, it is now Room Finishes who have been updated to support Revit 2017. Along with this update, I also have integrated some new features.

First of all, Room Finishes now support all kind of units. You just have to type your dimension with its unit symbol, and the plugin will convert it in a floor height or a skirting board height. The plug-in will now also use the default length unit of your model.


I have to thanks Brian Winterscheidt for this update, who was kind enough to contribute to my plug-in on Github, and point me to the Revit unit conversion system available in the API.

The other major update is the ability to join skirting board with their supporting wall. You can now join both geometries automatically. This enable one of the most wanted feature, the ability to cut the skirting board around the door.

Just select “Join geometry” before running the command, and every skirting board will be joined with its host wall.


This feature could generate its fair share of warning, so I have remove every related error message. You will now be able to run this command without having to dismiss every warning that come up.

I also add some minor UI improvements, like the ability to resize the window, or sorting wall type names by alphabetical order to be able to quickly find the specific wall type you have created for your skirting board or your floor finish.

Of course, Room Finishes is still open source, the entire code can be found on Github.

This plug-in is already available on the Autodesk App Store. If you like it, don’t hesitate to write a nice comment or add a few stars, it always means so much to me!

Align Tag Update

It is this time of the year again, and I have finally take the time to update Align on the App Store for the new version of Revit.

However, there is more in this than a simple version update, and this new release is packed with improvement, both small and large.

The main change reside in the alignment method. In the previous version of Align Tag, I was using the center point of a given tag as a reference to align tag (either left or right). To improve on the alignment of tags of various sizes, I now use the bounding box of the tag.


Tags will now properly align themselves along their right or left side, regardless of their size or origin point.


However, if you want something similar to the older version, you can use the new Align Center and Align Midlle commands, which will use the center of the tag as a reference.

This new alignment method is more in line with what can be found on solutions like PowerPoint, or Adobe Illustrator, and will allows you to neatly arrange your tag whatever their size or origin point.

Another important improvement is the long awaited support for Text. You can now align Text along with Tag, using the same command.

While I was at it, I also add support for Keynote tag, Room Tag and Space Tag, basically every tag. The Area Tag is still missing, but can be expected for the next version.

However, this support came at a cost, and I have to drop the support for Revit 2015 and prior. So, if you are still using this version, you will have to keep the old Align plugin.

There is also a handful of small UI improvement that I hope will help you.

Aligned tags are now kept selected after running the command so you can align them in another direction right away.

Your Align commands are also one click closer to you! The interface have been artfully arranged in a new tab to keep every icon directly accessible in the ribbon.


Under the hood, I have rewrote a large part of the code to support more types of annotation elements, and I hope to be able to use this new framework for more complex manipulations, including in the Arrange Tags function.

Of course, Align Tag is still open source, the entire code can be found on Bitbucket.

This plug-in is already available on the Autodesk App Store. If you like it, don’t hesitate to write a nice comment or add a few stars, it always means so much to me!

MEP design and Dynamo

Most of the work we see with Dynamo involves designing complex parametric geometry. But Dynamo can also help you automate your design and make more informed decisions, even on the most ordinary cubic building.

A lot of tasks of the MEP engineer involves retrieving information from the architectural model and can be automated using Dynamo.

The first task of the MEP engineer is to retrieve rooms from the architectural model and create MEP Spaces from it. The “Place Spaces Automatically” Revit function can be useful here, but it is far from enough in many cases. There isn’t any control on the created spaces, and properties from the room cannot be added to the newly created space.

To improve on this function, I start exploring space creation in Dynamo. There isn’t much support for Room and Space built in Dynamo. Some package can fill this gap (Lunchbox from Nathan Miller and Clockworks from Andreas Dieckmann) but does not offer a complete solution. Furthermore, we need support for linked files, since architectural rooms are most of time in linked files.

So I create my own Dynamo package, called DynamoMEP. This package contains a set of nodes for creating and working with Room and MEP Space.


I use these custom nodes to create an MEP Space from every Room in a linked architectural project.

I start by retrieving linked rooms using SteamNodes, a great package from Juline Benoit. Using Element.GetFromLinkedFile gives me a list of rooms in the linked file (The Get Document came from the Grimshaw package).


Using the Room.FromElement node, I convert these linked elements into Rooms. I can now get their location points, and create my MEP spaces based on these points.


Still using the DynamoMEP package, I can retrieve basic properties from these spaces, like their origin point, their associated level and their bounding elements.


My model has now a matching MEP Space for every room created in the linked model. Since we are using Dynamo, we can have a much more sophisticated workflow, and retrieve specific properties in the rooms to have them added to the newly created space.

DynamoMEP is still in this infancy, and need a lot of improvement, so don’t hesitate to report any bug or missing feature. You can add an issue on Github, or post a comment below. I hope to add new features as I develop MEP workflows in Dynamo.


A360 Team

A year after my first post about Autodesk A360, I kept on testing its features as they came out. When one of my colleagues brought me an A360 Team subscription from last year Autodesk University, I tested it on a small project with some of my teammates.

Recently, Autodesk  unrolled a new design for A360. I use this occasion to share my thoughts about the evolution of the service since my last post.

Starting using A360 is really easy. Just invite your teammates to your A360 hub, drag and drop documents to the platform, and start editing or commenting them. Basically, anyone can edit anything, the revision control system is here to retrieve any previous version of a document in case of emergency.

Roles and permissions are organized around Team Members, who belong to an organization and have access to every project inside this organization. These Team Members can invite Project Contributors outside of the organization to participate on a specific project.


Different project types allow for different accessibility rules for Team Members and Project Contributors. However, don’t expect to find tune every option, we are not in a tightly controlled document management system, but more on a collaboration platform based on trust and a powerful versioning system.

Of course, A360 provides the ability to upload Revit models, and process them as they arrived on the platform. To me, this is the most important feature. Every model you upload on A360 will be processed to be visible online, without having to download it. This feature has largely improved since my last article, and you can now select which views and sheets that will appear on A360. To do so, open the Views For A360 windows in Revit and create a set of views to be uploaded to A360. Save your model, upload it, wait for a while and every selected view will appear on the model page.


You can upload a single file or an assembly, which is a set of files linked together. When uploading an assembly, A360 asks for a parent file and uploads it along with every other file in the same folder. As it is processing this parent file, it takes these linked models into account to create online views.


My first impression of the online 3D viewer is quite good. It is fluid and really easy to use. One of the wishes of my previous article have been fulfilled, you can now create Sections of your model. Sections are beautiful, with a nice cut pattern, but the section plane is barely usable. Instead of being able to quickly select a face of your model to create a section plane, you have to painfully drag a predefined plane where you want to cut your model. Since the section plane gizmo stays aligned with the model origin, you can’t move it while zooming. I have to say I was pretty frustrated by the experience, seeing everything I was hoping for a web-based model viewer, and not being able to use it because of these few issues.

And why the Measure tool shows up when the model is loading and disappears when the viewer had started?

Aside from the current issues of the 3D viewer, Autodesk has created a really interesting collaboration platform. Roles and permissions manage to stay simple while enabling most collaboration scenarios. I still have to test the integration within Revit through the A360 Collaboration for Revit, as soon as it will become available in Europe.

Align Tags Update

This is a long overdue update, but I finally take the time to prepare my Align Tag plug-in for Revit 2016.

Along with the annual clean up and bug fixes, I also add a new feature called Arrange Tags. This will automatically arrange all tags with a leader all around the active view.


This function is slightly different from the previous ones since you don’t need to select any tags before running it. Just click on Arrange Tags, and every tag will be neatly placed on each side of the active view.


This function works great on small views, like local sections or callouts. Don’t expect too much on plan views, you will be disappointed.

How it work?

The main idea behind Arrange Tag is to find on the left or the right of the view the nearest available space to place a tag. Once every tags are neatly placed on each side of the view, a second subroutine check every tag leaders and uncross them.


This feature use an opinionated way to organize tags on a view, and it probably won’t please everybody. I created it specifically to place tags on section views, and it follows my own drafting rules. That being said, I hope you will find it useful.

The application is available on Autodesk App Exchange. If you don’t mind fumbling into my code, you will also find the entire solution on Bitbucket, fell free to use it for your own projects.

Beam Annotations

An article from Line Shape Space drive me to the Beam Annotation tools, and the various possibilities to automatically tag a set of beams.
The first idea when having to annotate a set of element is the Tag All function, quite efficient, but limited only to a tag by category. Furthermore, this function does not have the possibilities to add different tags on the same object.


To annotate efficiently a large set of beams, a specific tool exist, Beams Annotations. It functions pretty much like the Tag All command, but with more options.


You start by selecting the set of beams you want to annotate (All beam or only selected one), and if you want to include linked models elements.
Things become quite interesting with the other part of the windows, which display a schematic beam with six slots:


This second part allow us to describe where we want to place Structural Framing tags or Spot Elevation on our beam.

Here the possibilities are quite extensive. On every six position of each beam (start, middle, and end, on each side), you can select different options to place a Structural Framing Tag or an Spot Elevation to display top and/or bottom elevation for the beam:


To showcase this feature, I create a set of beam, distributed on the same plane:


In just a few click, I place a tag for every beam along with a nice Spot Elevation displaying the bottom elevation of the beam.


This tool become extremely powerful when dealing with slopped beams. To showcase this feature, I create a set of beams aligned along a complex surface. To create quickly this kind of beam system, I use Grasshopper with the Hummingbird plug-in. I describe the complete procedure in one of my older post.


These beams are displayed as a grid in a plan view:


I select the Beam Annotation tool, and add a Spot Elevation at the stating and the ending point of sloped beams, along with a Structural Framing Tag on the middle.


After running the command, Revit add a Structural Framing Tag and two Spot Elevation on every beams in my view:


These annotations place themselves nicely along the beam, and a few adjustments with the setting adjust them perfectly on the view:


Room Finishes Update

A new version of my Revit plug-in Room Finishes is available on the Autodesk App Exchange.

This major update integrate a new feature for creating floor finishes. The main idea is to create a floor that follow the general outline of a room, at a given height offset from the room level.

The first application is to model quickly floor finishes inside every selected room. Just select a floor type, a height offset and the plug-in will model a finish floor on every selected room.


We can see here the floor created with the previous parameters:


The whole idea came when I have to model an insulation just under the slab for more than a thousand of rooms. Luckily, these rooms where correctly modeled, with their upper limit set just below the upper slab.


So I wrote a small piece of code for creating a floor with the same boundaries than the selected rooms. Just like my previous plug-in for creating skirting board, you just have to select a type of floor to create, enter the desired height and the application will create the floor in the selected rooms.

In my problem, the distance between the room level and the upper slab could change, so I introduce an additional feature, the ability to select one of the parameter of the room to define the height of the floor.


Since my rooms are modeled from slab to slab, I just have to select the Unbounded Height room parameter to create insulation at the correct elevation.


I am also using it to draw a temporary floor at the ceilling height in every room of a project. This temporary floor is used to run a clash detection to check if every HVAC objects are correctly placed above the drop-ceiling height.

The application is already available in the Autodesk App Exchange. If you already have installed Room Finishes, just download the update from the same link.

I also finally clean up my code and upload it on GitHub for everyone to see. The source code is freely available here as a Visual Studio 2012 solution. Feel free to download and use it for any of your own application. I would be delighted if you can use it for something useful.

CASE Design, Inc. Add-Ins

As Case Inc update their set of tools for Revit 2015, I write a few words about them.

CASE Inc. is a Building Information Modeling consultancy based in New York City, which provide a very interesting set of tools for managing Revit models. I am using these tools on a daily basis to automate repetitive tasks, and extract data from my model.

These tools come with a nice installer, allowing us to add applications for Revit and Navisworks, in various version.


It load a new ribbon bar in Revit, displaying all the available tools:


I am not using all of them, so I will just present here my favorites.

View Duplicator:


This tool allows me to quickly duplicate a set a view, and create for example a set of view for publishing. You can add a prefix or a suffix on every one of them, and filter the existing view to quickly select which one you want to duplicate.

Param To Param:


Originally design to write down parameter values to be able to export them in schedules, I am also using it to refactor in a single place parameters values scattered in various locations. One of the most useful example is to write down the reference level name in a single shared parameter applied on multiple categories.

Door Mark renumbering:


This tools allow us to mark a door with its related room. This is a very fast solution for extracting Room-Door relation, for schedule or room plan.

 Export Famillies to RFA:


Autodesk provide with Revit a very comprehensive set of families. But most of these families need to be sorted and renamed to fit the practice of our office. To do so, we add all of them in a Revit file, sort and rename them in this model, and finally, export all of them in nicely ordered folders for every draftsmen to use.

Shared Parameter Loader:


Finally, the Shared Parameter Loader allow me to quickly add large set of shared parameters on specific categories. This is especially useful when dealing with sheets parameters which have to be added to ever model in order to produce drawings.

These tools ease largely my daily pain while dealing with Revit models, and deserve to be in the toolbox of every Revit BIM Manager.


Tekla BIMsight

As a regular user of Autodesk product, I am using Navisworks as my main coordination and project review software.

But recently, one of my client ask for BIMSight, a solution developed by Tekla for the project coordination. If I have already try it, I have never had the opportunity to implement it on project scale. I can now share my first impression on this solution.


One of the main advantage of Tekla BIMSight is its price. Since it can be downloaded freely on the Tekla website, it can be given to anyone working on the project without bothering about licence fee. Furthermore, it is largely user-friendly, and can be used by anyone, even without a training phase.

It provide all main functionalities of a good project review software, like models compilation, project review and annotation, clash detection…

Possibilities for input format are pretty limited, since it can only import DWG and IFC files, but these formats are enough for most situations.

Tekla BIMSIght provide pretty good clash detection features, with most of the usual fonctionnalites : clash statuses, tagging, sorting and grouping, and so on.

The presentation of the clash result are also pretty good, but there is no function to export a clash report in PDF or HTML as we have in Navisworks, for example.

There is set of tools for creating notes that save a viewpoint in the model. Once done, you can add comments and markups on this view or link objects to this viewpoint. BIMsight provide also the ability for different users to respond to comments and keep an history of these responses.


One of the most interesting part of these notes is the possibility to export them in the BCF format, in order to be able to import them in another software. This functionnality can be really powerfull, and I will describe it more precisely in a future post.

Finally, I am quite impress by BIMSight. Tekla manage to provide a fully functional model review solution without even make us pay for it, which is pretty remarkable is this market.

My Revit experience

I previously dealt with some issues regarding the use of Digital Project. These problems arrose mostly because CATIA is not suitable for the AEC industry. Even if Digital Project is adapted to the building construction techniques, the main core, CATIA, is still a product aimed at industrial products.

Furthermore, Digital Project needs large resources both in time and money for designing anything. It can be perfectly acceptable for mass-produced objects or very complex building, but when it comes to more average construction projects, we have to find another solution.

I was wondering if I would be able to create all the precast pieces of a stone-like facade on Revit, and see what differences we can find.

Here is a little demonstration of concept for designing intricate geometry and casting drawing in Revit

Designing a specific part with the basic tool from the Revit family (extrusion and boolean operations) is not very difficult, and I quickly got the design of one of the arc over the door.

Anyway, some limitations already appears. Due to the void form created as boolean, it is impossible to merge the arc with the superior part, and a join remains.

Furthermore, there is at least one piece I was not able to draw properly a double-curved arch.

I insert my Revit family in a new project, and add a few dimensions and a section line.

A main problem appears when I am trying to extract a section of the curved part. If I get the section, I cannot add dimensions to it.

Finally, there is no embedded tool for extracting the position of the center of gravity. This information can probably be extracted using another software or the API, but we are seeking for a process developed entirely with Revit.

All these limitations made me think that Revit is not powerful enough to efficiently design intricate elements. Even if possibilities for creating complex 3D models are enough for most of the precast elements, there are still too many limitations for using it in production. I am waiting for the next releases of Revit to overcome these issues.