Friday, October 27, 2017

Avoid Using Worksets to Control Visibility

In my previous post, Opening a Revit Project Detached From Central; What You Need To Know, I touched on how Worksets are sometimes used to control visibility. I also mentioned I would write about why this is not a best practice... well, that is what this post is about.

History

It may be helpful to start the discussion talking about what Worksets were created for. Back in the day, when we only had 32-bit computers (or operating systems) which could only use 4GB of RAM and Revit could not link other Revit models, there needed to be a way to manage how much of the model was loaded into memory. FYI: We still need this today, but only on extremely large projects.

This is where Worksets come in. They are used to...
manage system resources. For example, if you are working on a skyscraper you might not be able to load the entire project at once - or if you can load it your computer might run too slow to get any work done. So dividing the geometry among multiple Worksets allows us to choose which Worksets load when opening the project (see the next two images).



Eventually, the developers of Revit let us start to use Worsets to control the visibility to elements in views (as discussed in my previous post linked above). And, while this is quick and easy to think about and implement, it is usually not the best long term workflow solution. There are better, less error-prone, ways to accomplish the same thing.

The Problem

The main problem with using Worksets to control visibility is it involves a manual effort by the designer; you either need to have the correct Workset set current or you have to select elements and place them on the correct Workset. This is like Layers in AutoCAD... it works great until one of the many people working on the project forget to manage Worksets while creating, copying, copy/pasting, binding, etc.

On a related note, check out this YouTube video by Carl Storm from IMAGINiT; Click Here.

Also, as mentioned in the previous post, there is a chance the visual fidelity of your project will get messed up if Worksets are stripped from a project.

The Solution

So what is the solution?

First, elements are inherently associated with categories. For example, grids will always be associated with the grids category. Thus we can use View Templates (VT) to control the visibility of grids; both in your model and in links. These VTs can be setup in the template (even for links). Using this method, no grids will ever be missed.

Second, we can proactively add parameters to our projects and content and use this information to control visibility. For example, all of our electrical and mechanical content has a "Schedule Appear On" parameter. Not only can we use this to segregate the plethora of stuff that is grouped in the Mechanical Equipment category, we can also use this to control visibility with filters in VTs. Of course it is possible to load content that has not been vetted, but in the big picture this is a more refined way to manage visibility for a common workflow.

In Closing

Similarly, Worksets should not be used to manage phasing or design options. Revit has features designed to handle those needs. Plus, elements in different Worksets still interact with each other as they are in the same "universe" whereas phasing and [secondary] design options are more like a "parallel universe".

This is my view on the topic... share yours in the comments section below.