REVIT OmniClass, Keynote and Assembly Code type parameters

Adding OmniClass, Keynote and Assembly Codes data in our model is actually adding the “I” of BIM. But maybe you agree with me all that stuff is a bit confusing. Let’s put on paper what is cloudless of all these concepts and we will see where it leads us. Firstly, it’s all about classifications systems regarding construction industry. They all are designed to provide a standardized and common basis to all parties involved.


OmniClass Number is a type parameter that exists in families but doesn’t in system families. I see here a dead line. The OmniClass list used by Revit refers to Table 23 “Products” in OmniClass system which is published by the Construction Specifications Institute (CSI). OmniClass list file can be find in: C:\Users\<current user name>\AppData\Roaming\Autodesk\REVIT\<product name and release>. Last Revit 2015 version seems to be updated with the official publication. Table 23 of OmniClass classification criteria is to list components or assemblies of components for permanent incorporation into construction entities, it’s focused into detailing and developing stages of a project. Following picture shows Level 0 of OmniClass Table 23 Product Classification:

OmniClass Keynote / Masteformat

Keynote Table file can be located directly in Revit: Annotate/Keynote/Keynoting Settings. Keynotes are a means of annotating model elements. Revit is prepared to do this, in fact you can directly create a Keynote Legend filtered by sheet, that means that if you insert that legend in a sheet it will only list keynotes defined in that sheet, so the intention to use it as an annotate tool is clear. Keynote Table refers to Masterformat, which is another classification list also published by CSI. Last version is the one based in Masterformat 2004. Masterformat criteria, as well as OmniClass, is about listing work results. It also incorporates construction practices. See below the Division 04- Masonry of Masterformat.



Assembly Code / Uniformat

Finally we had Assembly Codes, Assembly Codes list is based in Uniformat, another system also by CSI, and we already have 3 of them! List file can be located in Manage/Additional Settings/ Assembly Code. Uniformat established a system based in functionality of elements. It’s recommended using Uniformat in early stages of the project since you know that you have a façade (exterior wall) although you don’t know if it will develop into a glazed wall or a concrete wall or… but that’s the theory and it’s not entirely true since you actually can choose among some materials, although not all of them…that’s why this is so confusing. Next picture shows classification of Uniformat for Walls Revit Category.



Some thoughts about it

We have described three type parameters: can we define an element using all three of them? Sure. That can be called like something I heard: “faceted classification”, which means classify the element under different viewpoints.

The way I see it is that classification benefit stays mainly in quantity estimation, cost estimation, planning and specs documentation (I must say here it also helps to filter in schedules!). Correct codification permits easy exporting data to programs related to these activities.

Here is where the contractor gets involved. In fact I think here it is something to be resolved: Who is assigning codes to the model elements? Contractor? Estimator? Designer? Is it efficient to separate all that activities?

Another question comes to my mind… what if I do my own hierarchical list? At least, can I create new entries? That is going to depend on the project and on the client, I guess, and in the way information is added to the model, which leads again to previous paragraph: since smart use of construction estimating programs means smart use of the codification, who must assign codes?

To finish…

UniClass 2 has to be mentioned. The other system. Last three systems are published by CSI and CSC in US and Canada. UniClass 2 is published by CPIC in UK. It is also organized in tables as OmniClass, and more or less you can establish a match between them. Their hierarchical lists can be converted to a .txt file, so I suppose there’s no problem to use in Revit same way as the others.

What is specific in Uniclass 2 is a CAD list. Here is where we can find useful codification for naming our CAD elements such as Grids, Views, Text Styles and so on. Here it comes another issue: family naming: Is it needed to repeat previous construction codes in the name of the types and families? Or here we can just use our own naming system? I prefer second option, I name the family by my own and internally I assign one code or another according to classification system to apply.

I’m eager to listen to your comments about this!