Object Library Wars

Hello BIMfans,
After managing to produce my Architectural floor plan drawing last week, this week I have started to look at my Mechanical graphical model.

Around my home, there are several different heating products I need to register and capture within my information model.  So, I thought I would try something different and attempt to use some manufacturer’s objects instead of producing my own. Unfortunately finding suitable objects has proved rather difficult, however, I did manage to find a few boilers on the portals of each of the three most popular online object libraries: National Building Library (NBL), BIM Store, and BIM Object.  So I thought I would compare each of them to decide which I would use.

Let the Object Library Wars Commence!

A long time ago, in a graphical model far, far away….

The Rules:

I went onto the portal for each of these online object libraries and searched for the term ‘Boiler’ and selected the closest object available to compare against the requirements within my BIM Execution Plan. These objects were judged by the following categories based on the appropriate BIM Execution Plan specified BS 8541 standards:

Object Name:

BS 8541-1 specifies how to name objects.  The name should include three fields separated by an _underscore, written using CamelCase:

  • Source (The library it was taken from or the manufacturer of the object);
  • Type (Appropriate IfcType as included in the appendix of BS 8541-1);
  • Subtype (Additional details NOT covered in the object’s attributes).

For an object name to be compliant I would expect to see something similar to:


So, what names have been used?  Shown below are the boiler names as they were downloaded.  As you can see each object included a source, however, none of them used the IFC Type or its predefined subtype or product/model name.  In addition, both the BIM Store and BIM Object boilers include hyphens which are not permitted.

The NBL boiler is the closest with three fields and CamelCasing, followed by BIM Store which began with the source, and finally, BIM Object last which began with a bespoke category.

Source File Name Rank
NBL nbl_GasFiredCondensingBoilers_TopFlueSpigotConnector 1st
BIM Store Worcester-GB162-Gas_Fired_Condensing_Boiler_Single-14 2nd
BIM Object HVAC_Heaters_Baxi_Luna-Duo-tec-MP-plus 3rd

Note:  I am aware that each of these libraries has their own object standard.  However, my EIR didn’t request these. So my BIM Execution Plan needs to comply with the national standards.

Level of Detail:

BS 8541-2 specifies the need to be able to visually represent an object with three levels of detail:  Coarse, Medium, and Fine.  These levels of detail allow an object to show only relevant elements as required.  For example, the detail needed in an assembly drawing would not need to be visible in a general arrangement.  I’m pleased to report that each of these objects did incorporate these levels of detail; resulting in a three-way tie.

Source Levels of Detail Provided Rank
NBL Coarse, Medium, and Fine 1st
BIM Store Coarse, Medium, and Fine 1st
BIM Object Coarse, Medium, and Fine 1st
Here is the same Boiler at Coarse, Medium, and Fine detail.

Shape and Measure:

BS 8541-3 specifies that product objects (those that represent an actual product) are required to have a coordinating level of detail.  This means that the product should be visibly recognizable.  However, it also warns about the dangers of excessive geometric detail, which can be seen in these objects. Here are two examples:

  • Company logo.  Shown here is the Worcester logo included in the BIM Store Boiler. Why? The logo itself is only 25mm high and is only legible at quite low scales. What value does having this logo included bring to this object?

    As you can see at 1:1 the logo appears fine but becomes unreadable from 1:20
  • Complex elements.  Many of these families utilize nested objects (objects within objects, think Terry Pratchett and turtles).  Some of these nested objects are quite complicated for what are essentially graphical placeholders.  For example, take the flue basket also shown below from the same BIM Store boiler which uses a horrendous amount of rules to show that it is perforated.

    While only being 100mm tall, this flue basket has over 50 (yes, 50!) references to produce the 10x10mm perforations shown.

As you can see below, these additional complexities have negatively affected the file sizes.  With NBL again coming out best with the smallest file size by far for their generic boiler.

Source File Size Rank
NBL 440KB 1st
BIM Store 1396KB 2nd
BIM Object 2344KB 3rd

NOTE:  The file size for the flue basket is 668KB, so this nested object alone takes up more memory than the whole of the NBL Boiler.

Level of Information:

BS 8541-4 specifies that product objects, as defined earlier, should have both specification and assessment attributes.  In addition, these attributes should be named in CamelCase and indicate the data type expected.  Of the three boilers, only the NBL boiler followed BS 8541-4 fully by using CamelCase throughout its attributes.  BIM Store are a close second, follow this convention only for attributes required to achieve BS 1192-4. While the BIM Object boiler does not include BS 1192-4 attributes or use CamelCase.

Spaces, spaces everywhere!

This means that once again the NBL boiler leads with its impressive use of CamelCase, with BIM Store second, and BIM Object third.

Source Level of Information Rank
NBL CamelCase for all attributes 1st
BIM Store CamelCase only for COBie attributes 2nd
BIM Object CamelCase not used 3rd

The Conclusion:

The winner, consistently ranking first in each category is the National Building Library!

However to be frank none of these objects are ideal.  For future product objects, it will be much easier for me to create my own.  This is due to the limitations I have listed above as well as the fact that these objects cannot be easily configured to suit my needs. For example, for the Classification information to exchange into COBie I require it to be written into a field called ‘ClassificationForObjects’.  However, this property doesn’t exist in any of the three boiler objects.  In addition, there are a number of attributes I don’t need that will have to be deleted such as the reference to other classification systems, as well as modifications to the geometry to lower the file size.

Mech Model
It has been heavily modified, but you can see the winning NBL boiler in my Mechanical Model.

And there you have it, after comparing three different boilers I have now begun to make the necessary changes to create my final boiler object.  This means that subject to ensuring that the correct product information is attached and the inclusion of a few extraction fans, I have now populated my mechanical model; therefore Plain Language Question PLQ2.4 is well underway!

Note:  This model does not have any pipework connecting my heating system together, and nor will it.  The majority of my pipework is not accessible, and as such, I have decided that I will not guess where they are located.  Pipework, therefore, has been excluded from the model until such time as its precise location can be determined.

Model Generation:
2.1 What existing information is available?
2.2 Is there sufficient information to produce a BEP?
2.3 What is the layout of the house?
2.4 What assets are contained within?
2.5 What asset information can be linked to the graphical model?

Now that I have a pretty strong Architectural & Mechanical model, it’s time to look at some electrical objects…

Note:  If you have any comments or opinions regarding Object Library Wars, please let me know either on twitter, or commenting below.

14 thoughts on “Object Library Wars

  1. Super post Dan. It still amazes me how similar products have such varied file sizes when it comes to objects. We made modelling mistakes early on have since aimed for our manufacturer objects to be similar (or better) in file size to a generic object.

    I made an attempt to collate the level of information side of manufacturer BIM objects last year here: http://www.craigsewell.co.uk/guide-to-bim-object-data/ I did struggle with why there is so much duplication of information and would welcome any comments you may have on this?


  2. Great Post Dan,
    Do you think it be acceptable for Manufacturers to provide both Uniclass 2015 and Uniclasss 2 classifications or would this just confuse things further?


    • Hi Chris,
      I think it would confuse things further.

      Ultimately, it is the project specified classification system that should be included; objects need to be flexible. This can be done by including a field for the classification source, and what the classification code is (to be fair all three have done this).

      There is nothing “wrong” with NBS using Uniclass 2; it just seems odd as they wrote Uniclass 2015 and should want to promote it as it is a fundamental part of their BIM Toolkit.


  3. Another excellent post Dan
    Uniclass 2 is the direct parent of Uniclass 2015 (and presumably keen to see it do well in life!) but is definitely a legacy system so its need for availability, upkeep and use should by now relate ONLY to legacy issues. So I think you are too lenient in your last para and it should be more like “There is nothing wrong in NBS making Uniclass 2 codes available for reference for legacy users but all primary references should be Uniclass 2015 ……” or something like that.


  4. You start by saying you want a specific boiler, but finish with a ‘Generic’ boiler? NBL couldn’t supply what you were after so why did you not just disregard them at the start? :/ you may as well have created the component yourself… companies that create ‘Manufacturer Specific’ Content for people are going to have logos etc. in there if they are relevant. That’s the point of making them Specific isn’t it!? So they look like the products in reality?


    • Hi Joe, none of the suppliers had what I was after; and after reviewing what was on offer my conclusion is that I should have created my own component like you say.

      The point isn’t that they look like the product, it should have the data required to satisfy my needs. In a previous blog I state that I don’t need to create photo realistic representations, so why bloat all of that into my model if it serves no purpose?


  5. Good post Dan.

    The fact you’ve had to search 3 separate libraries, interrogate each model individually and still didn’t find a solution, just about sums up the state of the object market and the usefulness of BIM libraries in general.

    My hunch is that they won’t exist within 3 years.


  6. BS8541-1 is all well and good but in my experience it simply doesn’t work on a practical level – IMO this BS needs a lot more consideration of how things are actually used in the real world. As a simple example it’s much easier to find a door based on it’s Type Reference than it is on it’s name than a lengthy description of it being a double door with vision panels, over panel and side panel…

    I could be wrong but didn’t NBS have a hand in writing this BS?


    • NBS have a representative on B/555, the committee who wrote it, but I don’t know their role in writing it. They of course have their own library object standard which doesn’t align with BS 8541-1.

      You are right that type is needed to find elements, but BS 8541-1 is for naming objects as they appear in your common library in explorer. This is why consistency is important so that you capture the right objects when you hit CTRL+F


      • There are 2 issues here – finding an element in a library and using said element in your model.

        In the model I want it to be easily identified so Type Mark works – this can be an additional field, I also want to know how detailed the element is (8541-3) so am I using it for client presentation graphics or is it simply to indicate the existent of the component. Going a stage further not all elements need to be in 3D so this would also be helpful to know when loading the family from a library.

        Drilling down further you then have the type name itself – for instance a door for use might be Type01A (family name would be Type01) with a width of 910 and height of 2110 – the exact info here will vary between element types but still important when it comes to classifying elements…


      • The problem with what you have described is that we are comparing project specific codes with BS 8541-1. BS 8541-1 defines naming for non-project specific library objects; the kind that you have on your server for everyone to use.

        If you had a door whose family is called Type01, how can you distinguish this from the window family (I assume also called Type01) when they appear in COBie? In a different project wouldn’t the Type01 door sometimes be Type02? How do you manage that in an office server?


      • Our door name would look something like this :


        JMA indicates it’s one of our families.
        Door – defines the category the family can be found on.
        Dbl_Blnk – description of the door type – in this case Double Blank
        Typexx – The door type – this is changed from xx to a number once it’s defined in the project.
        M3 – indicates a 3D family
        L2 – indicates a largely arbitrary level of detail…

        In reality the type would be IDT or EDT rather than ‘Type’ – IDT being internal door type EDT being external door type.

        For library components we’re also looking at a classification system (which would be replaced by the type number in the project) which defines the makeup of the door – if you know the type of door configuration you are looking for then this classification code could be used to find suitable options. We are also working on something similiar for windows but thats proving more complicated. Happy to discuss this with you further if you’re interested.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s