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.


Managing linked worksets

A pretty powerful function in Revit is the ability to manage worksets in a linked Revit file.


In the Manage Link window, selecting the Manage Worksets open a list of user worksets in the linked file. These linked worksets can be opened or closed through the same interface.


It is a project setting, so elements in the closed workset will be hidden everywhere in our host model.

It allow us to load only the part of the linked project that really interesting us. For example, as a mechanical engineer, I generally don’t need to display furniture from the architectural model. Closing the related workset can save me significant loading time.

The most common application of this feature is to hide linked grids and references planes.When new workset are created, every level and grid goes into the “Shared Levels and Grids” default workset. This behavior should not be changed, since it allows us to easily hide linked levels and grids in our current model.

Before closing linked "Shared Levels and Grids" workset

Before closing linked “Shared Levels and Grids” workset

Before closing linked "Shared Levels and Grids" workset

After closing linked “Shared Levels and Grids” workset

I also place reference planes and scope boxes in this workset, to be able to hide them as easily. But selecting all reference planes and scope boxes of a model to place them in the correct workset can a tedious business. To change this, I wrote a few line of code for set up every Scope Box, and Reference plane to the correct workset :

public void SetGridWorkset()
	Document doc = this.ActiveUIDocument.Document;

	//Select the shared grid workset
	IList<Workset> worksetList =
		new FilteredWorksetCollector(doc)
	int sharedGridWorksetId=0;

	foreach (Workset workset in worksetList) {
		if (workset.Name.Contains("Shared Levels and Grids"))
			sharedGridWorksetId = workset.Id.IntegerValue;

	if( sharedGridWorksetId == 0 ) return;

	//Reference planes
	List<Element> elements =
		new FilteredElementCollector(doc)
	//Scope box
	List<Element> scopeBoxes =
		new FilteredElementCollector(doc)

	using (Transaction tx = new Transaction(doc)) {
		tx.Start("Change Workset");

		foreach (Element e in elements) {

			//Retrive workset parameter
			Parameter wsparam =
				e.get_Parameter(BuiltInParameter.ELEM_PARTITION_PARAM );
			if( wsparam == null ) continue;

			//set workset to Shared Levels and Grids


This piece of code is inspired from the work of Jeremy Tamick, available here, thanks to him.

Understanding View Range

Setting up view range regularly came with great stress, and “why I can’t see this particular element” shouts. To explain it to myself (and maybe other), I write a few lines about it.
The View Range comes with four elevations, corresponding to the four planes which define a view range:

ViewRangeInterfaceThese four planes, draw in a section view:

SectionViewPlaneDepthThese planes must stay sorted in the same order, i.e., from up to down: Top, Cut Plane, Bottom and View Depth. Trying to change that order will result in this kind of error message:


The general idea behind the view range is that every element between the Cut plane and the View Depth is displayed.

On ceiling plan, where there is only three plans, all objects included between the cut plane and the View Depth plane are visible.

Most objects became entirely visible even if a small part of them is between the cut plane and the View Depth:


Cut by the Cut plane


Above the Cut plane

On the other hand, some families, let’s call them the “cutable” ones, change their appearance when cut by the Cut plane, and display the section display of their material. Cutable objects belongs to one of the following categories: Wall, windows, doors, railings, site, Structural column, Structural foundation, Structural Framing, Structural Stiffener, Casework, Columns, Roof, Ceilling, and Floor.
In case of an editable cutable family, each geometric element composing this family can be hidden when cut by the Cut plane:


If the View Depth setting is set to Clip (With or without line) these objects are also cut by the View Depth Plane. For example, with a wall with an edited profile:


The corresponding view plan, with different Depth Clipping:


Some categories have also specific behaviors. For example, a windows stay visible above the cut plane if the hosting wall is still below the cut plane.

I also note than an Object Syle or an Override does not apply to an object placed below the Bottom plane, or above the top plane for ceiling view. For example, if Furniture Object Style is set to Red, a chair is normally displayed in red in a plan view:

FurnitureObjectStyle_Plan_AboveBottomPlane FurnitureObjectStyle_Section_AboveBottomPlane

But when the same chair is placed below the Bottom plane, it become black:

FurnitureObjectStyle_Plan_BelowBottomPlane FurnitureObjectStyle_Section_BelowBottomPlane

Filters Override, on the contrary, stays active whenever the object is bellow or above the Bottom plane. I don’t know the reason of such behavior, maybe someone from Autodesk could be able to answer.

Finally, to help users with this view range issues, I create a general section of the building with two different set of dimensions, one for Top height, the other for Cut Plane Height. This section is printed and used as a handout for Revit users to set up themselves their view range on their working views.



EDIT : I have found on Augi the solution for objects placed below the Bottom plane. These elements are displayed with the project’s Beyond> Style Line.


Autodesk Screencast

Implementing BIM software across a company implies to communicate in-house procedures or best-practices to a potentially large audience. We also have to keep it mind than our public is generally not as proficient as we are with all this BIM stuff.

Replacing text by pictures or even better, videos, can help deliver our message. This is where Autodesk Screencast can be really useful.


Autodesk Screencast, formerly known as Autodesk Project Chronicle in the Autodesk Labs, is a screencast application specifically design for Autodesk products. It can support any application, but has an additional feature for Fusion 360, AutoCAD, Revit and Inventor. On these products, it can record not only the screen, but also every commands used during the session. These commands are displayed in a very convenient timeline, allowing the viewer to understand the process behind what is displayed on the screen.


To record these command, Screencast install a plug-in in every selected Autodesk Application.


Screencast comes as a stand-alone application, and can be launch from within your Autodesk product, directly in the Add-Ins ribbon. Once started, you can choose which application to record, fit its window to a correct aspect ratio and select if you also want to log keyboard events. You can even add to your video the sound coming from your microphone.


After hitting the Record button, you can start your demonstration. Screencast will log every command you launch along with the screen cast, and show keyboard actions. This last part is especially useful for describing functions with specific keys, like rotating the view with the Shift key in Revit or Navisworks.

At the end of your demonstration, you can edit your video, cutting out irrelevant parts or loading times to shorten our screencast.

Once recorded and edited, the screencast is automatically uploaded to the Autodesk Screencast website. By default, the screencast is public, but you can restrain to on who have the link, or to a specific group of user with an Autodesk account.


And the last but not the least, the video can be downloaded from the website. An URL is also provided to embed your screencast in a website.

I’m usually not very fond of video tutorial, but I must admit than the Screencast application made the creation of such video too easy to miss. I will probably use it more to present my solutions.