Sunday, February 12, 2017

Vetting BIM content for your office

During the recent workshop at my Midwest offices visit, this same question was raised many times during the discussion. "Should we be downloading and using content from other websites for our project? If so, how do we know they are "okay" to use?"

Revit content has always been a popular topic throughout the years. Although many manufacturers have caught up with providing content for designers to use, they are not created equally. When the occasion arises where I need to "use" the content that I find from any website, I always go through this set of rules to vet the content. Below are the criteria I use to make my own assessment whether the downloaded content is good before I decide to make my own.

This is solely my own opinion and you should make adjustment to see it fits for your use. In addition, I use this logic when it comes to working on large scale projects/models. This can apply if you are the person managing the company's Revit content library.

**Edited on 2/26/2017** Family Category added.

Imported Geometry

Impact Level: 👎👎👎👎👎

This is probably my number one rule where no imported geometry whether it is from dwg, sat or skp format is allowed EVER. Period. You can't modify the geometry at all, can't apply material to the geometry (and set as instance parameter for material; although you can apply material through Object Style as a workaround). It comes with all kinds of baggage and will impact your model performance downstream.
I would avoid using family with imported geometry at all cost.


Impact Level: 👎👎👎👎👎

Usually this is the result when there is an imported geometry introduced to the family, it brings all the "layers" from the CAD file and it turns these into sub-category under Imported Categories tab in Visibility Graphic setting. By loading the family to the project, all these sub-categories will carry over to your model; overtime, when you have other families with these rogue sub-categories, they will increase your filesize of the overall model.


Impact Level: 👎👎👎👎👎

I have seen this becomes more and more of an issue from families provided by manufacturer. The content from the manufacturer site will be modeled to match the "exact" size and shape per the specification, down to the nuts and bolts details. While having content with this kind of details could be useful if you need to take your scene/view for rendering or VR use, it will again weight down your model and navigating in 3D view will become significantly slow.

This family has geometry down to every single metal rod

(Unnecessary) Nested Families

Impact Level: 👎👎👎👎👎

I came across with these kind of families from many sites even some from the manufacturer. Essentially, the content creator of the family has no idea what they are doing at all. It has many nested families embedded in the host family but do not serve any purpose at all. The example below has over 17 nested families that are not being used at all; A "Door" family is nested into this chair which should not be there in the first place. The family size is over 5M, which is 5 to 8 times larger than the desired file size.

Raster Image

Impact Level: 👎👎👎

Raster images are another offender to contribute to large family file size. When I build my own content, occasionally I need to refer some images from a product or design for references, I could import the image to floor plan (or elevation view) and size the image accordingly. If you have images imported for any 3D family, the raster image will not display once you loaded in the project, it will only be stuck in the family. Hence, they can increase the file size too.

(Unused) Material

Impact Level: 👎👎👎

A few years ago I downloaded a chaise lounge family from a user community site. It was a nicely done family. When I examined it, there were over thousand materials in this family. Back in previous versions in Revit, you couldn't delete material using "purge unused", you could only delete the material one at a time in the material browser. *Now you can simply use Purge Unused.* Excessive material not only added to the family file size, they will migrate to the project file as well.

Filled Pattern & Line Patterns

Impact Level: 👎👎👎

From the same chaise lounge family, I was able to find hundreds and hundreds of Filled Patterns as well as Line Patterns, they will also contribute to the family file size overall.

(Too many/too less) Parameters

Impact Level: 👎👎

A good family should have parameters that are relevant to the family; For instance, family with material parameters that represent the geometry will allow the user to modify material in the project. Other parameters like width, length, depth of the family can be scheduled in the project.

On the other hand, having too many parameters can be confusing too. If it is a parametric family, having too many parameters require the user to understand how to leverage or modify the value when needed. Manufacturer families come with many (shared) parameters that populate the product information; many others are supposed to use for FM. Unfortunately, different manufacturer has different naming, organization for these FM parameters and it is nearly impossible to use them cohesively in a project. I normally would delete the parameters that are irrelevant to the users.

Family with no parameter or value defined 

User needs to have a good understanding in order to use the family properly. 

Level of Details

Impact Level: 👎👎

Many manufacturer offered families like to create the family with "Coarse", "Medium" and "Fine" level of detail. While this might be a good idea, it always causes confusion to the users. Often times, the coarse level of the family is nothing but a box; this could be easily misread as something else in a project when your model has tons of elements in the space. I generally go to family editor and get rid of the geometry that associates with coarse level visibility setting.

Family Category

Impact Level: 👎👎

Another common issue from downloaded families are set to be the incorrect Revit category. One way to easily identify the category is to open the family in family editor, click the Family Category and Parameters icon. The example below shows this chair is set to Generic Model category. This will become an issue once it is loaded to the project, such as scheduling as well as Visibility/Graphic Overrides setting.

Insertion Point

Impact Level: 👎👎

Never let the 3D view fool you. I know first thing many people do after downloading the family is to use it in the project. Before you do so, always open the family in family editor and check the other views (ref. level, front, right, left...). I have this dumbbell rack family many years ago. While it looks decent in 3D view, it is not properly done. The insertion point (default insertion point is the interception of the vertical and horizontal ref. plane) is not centered in the family. When I check the front elevation, the entire rack is rested below the ref. level (finish floor) in the family. What it means is when I place this family to the project, it sits below finished level.

Reference Planes

Impact Level: 👎

This has nothing to do with file size but just good practice. Only set the reference plane that matters to the followings: Front, back, left, right, center (front/back), center (left/right), weak reference & strong reference. By assigning a ref. plane to any of this property will allow Revit to snap/dimension to adjacent element when selecting the family in project.  Turn all the others to "Not a Reference"; this way, Revit will ignore it. On the other hand, if the family has many ref. planes and all of them are set to "weak reference" or something like that, Revit will try to snap or dimension in the project. This could result in inaccuracy in the model. Steve Stafford has a good blogpost years ago to explain much more in depth about the purpose of ref. plane.

To conclude, I hope this provides some good guidelines when you choose to download families from any site. You should always do your due diligence to validate the family prior using it in your project.


  1. Great Post…. What do you think about the possibility of using an RPC workaround?