The Importance of Being Open(BIM)

Hello BIMfans,
Last week I started to build my mechanical model and had managed to compare different object vendors to select my preferred boiler object.  This week I have started to build my electrical model and wanted to discuss the importance of proper data formatting.  I need to do so to ensure that when information is exported from my native authoring tool (Revit) into IFC, it is formatted correctly.  As an active member of buildingSMART, I am a strong believer in open formats, and the importance of being open(BIM).

TheImportance of Being Open(BIM)

What is openBIM you ask?  In short, it is the use of non-proprietary methods to delivery asset information.  There is a short video that explains it better than I can here.

The non-proprietary method I’m referring to is Industry Foundation Class (IFC); think of it as the PDF of the built environment.  No matter what software you use to make a document, if you convert it into a PDF it’ll allow others to access this information without having purchased the software you used; this is what IFC achieves.  Note:  There any many other benefits too I won’t discuss here, but if you are interested I suggest you read Rob Jackson’s excellent blog post on Why Use IFC).

As IFC has a language (Schema), it comes with its own grammar (Property Sets) which includes acceptable words (Properties) that can be used providing consistency and the opportunity for validation.  For example, take my Nest Thermostat.  Under IFC2x3 (the current recommended release) it is classified as an IfcSensorType and I can associate a number of standard property sets to this object to define it.  Note:  In IFC4 a thermostat is a IfcUnitatryControlType, but for the purposes of this blog I am sticking to the recommended release of 2×3.

To make this a successful BIM Level 2 project, I need to export information about my Thermostat that I defined at the start of blog when I discussed my Model Purposes & Data Requirements.  As I discussed during these posts, I will need properties relating to condition, warranty, and manufacturer information.  By looking through the IFC Schema I can find suitable property sets and properties to include that are structured in a consistent manner.  After searching, I came up with the list below:

  • Pset_ServiceLife
  • Pset_EnvironmentImpactIndicators (for my energy use)
  • Pset_Condition (for monitoring until it requires repair/replacement)
  • Pset_Warranty (for reference when being repaired/replaced)
  • Pset_ManufacturerTypeInformation (because it is a manufactured product)
  • Pset_ManufacturerOccurrence (because it is a manufactured product)

Note:  I will also need any properties required for types & components to satisfy COBie within BS1192-4.  

The problem is that to do this properly, it take a lot of work.

To help, there is a COBie extension for Revit that helps create COBie files from the native file format (A requirement of PAS1192-2).  However, it does not create correctly named IFC properties and each property that is created is prefixed with ‘COBie.<sheet>.<property>‘, I also found it difficult to control which properties did export and which did not.  Because of this, I chose not to use the export tool.  Also, since I requested IFC as a deliverable within my EIR, I need to make sure that the properties are structured properly; so I have decided to do this the long way.

In order to get a decent looking IFC, I needed to define my property sets. Revit can’t do this.  So to do it I had to create a number of shared parameters and a custom property set definition file to allow them to export correctly using the IFC Exporter.  At the same time is also used it to define my COBie properties too (excerpt below).

IfcExportSample
A copy of the defined property set file can be found here.

Using this file, it moves object properties into the defined property sets.  This is important because in Revit you cannot create property sets.  Because you can’t all the properties end up under one of the pre-defined categories (I’ve chosen IfcParameters for many of them). However this definition file resolves this when exporting.

MappingBeforeAfter.JPG
Shown Left:  Properties in the Revit file, Shown Right:  Properties in the IFC file, Shown off screen:  My agony in getting all of this to work!

Note:  To view IFC files there are many viewers available.  For this blog I have chosen to use xBIM. xBIM is a free open source viewer that also has the ability to federate models and export COBie files.

IfcThermostat
You can access the IFC File for my electrical model here.

Now here is the exciting bit.  Because I have defined the property sets I require including all of my Data Requirements and COBie properties I am able to create my COBie data in a number ways including:

  • Export Revit schedules to transpose into a COBie template;
  • Export directly from IFC into COBie; and
  • Install the COBie Extension and remap its properties to use my IFC properties.

So whichever method I choose I have a good set of data I can rely on.

COBieExport
I have 99 problems, but my Thermostat ain’t one.

I will point out however that it isn’t all sunshine and rainbows.  There are a few problems that I still need to resolve when exporting into IFC:

  • I cannot get an object’s category to export properly;
  • Under my attributes tab, a number of properties have duplicate instances.

UPDATE:  I have an issue with my NominalLength and NominalWidth properties, but after contacting Autodesk they have advised me to use ‘Length’ instead of ‘Real’ during the property mapping to achieve this.  I have now tested it and it works perfectly, so thank you Angel & Autodesk!

I will continue to explore this and will report back in the future post, but if anymore has any ideas feel free to let me know!

And there you have it, after reviewing how I create my information, I have now developed an openBIM workflow that allows the information I have created in Revit to be exported as an IFC, and this IFC aligned data can be used to create a fully populated* COBie file. Because of this my data is well structured and most importantly consistent with an international schema.

This means that if I apply this process to all of the assets within my model I should then be able to answer this Plain Language Question, and will have all the information I need to have delivered a fully compliant BIM Level 2 Information Model.  So let’s get to it!

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 started my electrical model, it’s time to add other assets such as my lights and fire alarms…

Note:  If you have any comments or opinions regarding my openBIM process, please let me know either on twitter, or commenting below.

PLQ2.3 – Object Naming (cont.) & House Layout

Hello BIMfans,
After starting to author my Architectural graphical model last week.  This week I have continued its development resulting in a model which while work in progress is starting to really come together!

3D
As with last week, you can access this model here through Autodesk’s A360 portal.

I was very happy to see that after last week’s blog, a lively debate started on LinkedIn around object naming; as I also had some questions of my own.  As you might have saw last week, when I named my walls I did not put the thickness of layers into my subtype. so for example a wall might have been called:

BBH_SolidWall_PlasterBrickwork

I did this because within BS8541-1, table 1 states that the subtype should not capture attribute data.  However, while authoring my model I quickly needed to distinguish between walls with the same build up but different thicknesses.  Unfortunately,  Revit doesn’t allow duplicate family names I couldn’t use ‘BBH_SolidWall_PlasterBrickwork’ for walls with the same layers at different thicknesses, so a solution was required.

BBH_SolidWall_PlasterSingleSkinBrickwork

Initially I described the number of brick skins to avoid recording attribute data within the name, but quickly realised that that was stupid, and I was describing the thickness of the wall, just in a very awkward way.  So I was led back to using the thickness of each layer within the subtype.

BBH_SolidWall_15Plaster225Brickwork

Now to make sure my reasoning was sound, I decided to ask Twitter.  Interestingly (but not very helpful) the majority of people who participated in my poll thought that both options were wrong.

VoteTweet
In fact the correct answer is that ‘both’ are correct.  As the wall does not have a predefined subtype, anything goes so long as it has no attribute data, and uses no special characters other than an underscore ( _ ).

To make matters worse, I added some new objects to my model this week that had to use BS8541-1‘s other naming convention for unclassified objects.  Basically, if you are using an object without a classification field then the unclassified object naming convention is required, which is a tad more complex:

BS8541NamingUnclassified
To use this convention I did what all great men do in times of strife.  Ignore the optional fields, in this case it is ‘presentation’.  Also why is BS8541-1 now telling me to use hyphens(-) instead of underscores( _ ) between each field in the example object?…

To make sure that I complied with the original Employer’s Information Requirements and my BIM Execution Plan, I needed to use this naming convention for the following objects:

  • Kitchen worktops;
  • Bespoke window sills; and
  • Top of small units which also acts as a shelf.

This meant I needed to find out some extra information.  We already have my role, in this instance it is Architectural, classification means we need to rely on a Uniclass 2015 table (see example below), we have skillfully skipped presentation, source is my organisation (BBH) as the object creator, type relates to the corresponding IFC type, and subtype will allow me to differentiate between any other similar objects.

UniclassWorktop
Uniclasss 2015:  Those underscores will look great inside my kitchen worktop family name…

Meaning that I named my kitchen worktop like this:

A-Pr_40_50_21_45-BBH-Worksurface-Kitchen

Note:  Because of the underscore ( _ ) within the classification codes I have used a hyphen (-) as a field separator which doesn’t comply with the text but does comply with the example provided within BS8541-1.  This inconsistency isn’t very helpful, so I have chosen a solution that suits my situation best.

Objects such as kitchen worktops and shelves have been added for a reason.  Each of these were needed to accurately reproduce my floor layout, as required to satisfy my next Plain Language Question “What is the Layout of my house?”.  So now that they have been modelled, the result is a set of floor plans built into a graphical model that’ll be used for its own purposes as well as capturing what assets I have in order to answer my next Plain Language Question.  Once completed I was able to set up suitable views of my floor plans, and transfer them to a title block to complete this deliverable.

Plans
The full size .pdf plans can be accessed here.

And there you have it, after putting in the objects I needed I have now been able to produce a drawing containing my ground and first floor plans which has been derived directly from my graphical model.  Using this information I now know the layout of my house; therefore Plain Language Question PLQ2.3 is complete!

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 model, it’s time to start creating some of my other models to record the electrical and mechanical objects

Note:  If you have any comments or opinions regarding the Layout of my House, please let me know either on twitter, or commenting below.

PLQ2.3 – 3D Modelling & Object Naming

Hello BIMfans,
After undertaking a traditional survey of my home last week, this week I have finally opened up a piece of 3D software and started to do some modelling!

First thing’s first; what do I need to actually produce?  Well, after reviewing my Master Information Delivery Plan (MIDP), and the responsibility matrix within my BIM Execution Plan (BEP), I need to produce an Architectural Model which includes:  External walls, internal walls, door, windows, roof, floors, fascia, gutting and anything else associated with the external structure or internal layout.  So to do this I need some objects, but it isn’t as simple as that..

First, I need to either find the right objects, or build them myself.  Now this week I have managed to build my own (so I won’t discuss online object libraries this week) but once I had built my objects I found that picking their names was a challenge!

Choosing_Baby_Name_Parent
Few people have ever had to name a wall!

Now luckily for me to make sure that good consistent naming was used I specified within my Employer’s Information Requirements (EIR) that BS8541-1 should be complied with; the British Standard for object identification.  Within this standard it states that objects using the software’s associated classification (Like when you use a Wall object to represent a Walls) should use three fields.

BS8541-Naming

Source:
Source is easy, I made these objects so I have used the the same organisation code I used in my EIR & BEP; BBH (BIMblog.house).  However if they are downloaded from another source, then they should be identified as the source.

Type:
Type are also fairly easy as BS8541-1 suggests the use of the corresponding IfcType which can also be found on the IFC Schema page.

Subtype:
Subtype has little guidance but states that this information should not captured within the attribute data, so with that limitation I have used this field to describe the structure of my objects. For example, a partition wall object has the subtype ‘PlasterStudPlaster’, so describe the layers used within.

Note:  All fields need to use CamelCase (no spaces) and special characters are not permitted either!

Annoyingly many of the standard objects within the software package I was using (Revit) didn’t strictly comply as hyphens ‘-‘ are only permitted in objects without associated classifications.  So, after creating a number of my own objects, I ended up with a list like this:

WallNaming
Note the BS8541-1 non-compliant default families that I couldn’t purge at the bottom of the list.

Now that I have a consistent naming method, it’ll be easier to identify these objects when they appear in schedules and eventually within my COBie export.  So, to the modelling!

Those of you who follow me on Twitter, may have seen my frustration at modelling my home last night.  As my home is a 1900s Victorian Terrace, it isn’t exactly built perfectly straight.  In fact, when I tried to use a photograph to check my dimensions by course counting I discovered something very interesting; my courses don’t add up!

BrickCourses
What kind of unholy monster would do this???

So sticking to my internal dimensions, and modifying some of my wall thickness to take into account imperial brick dimensions, I have started to create my graphical model. Currently Work in Progress, this model currently includes:

  • Generic floor objects with a depth based on my landing void;
  • Wall objects based on my survey measurements, and has started to be populated with bathstone detailing and render on the rear facade; and
  • Generic roof objects based on pure conjecture (to be revised!)
HouseCapture
You can access a copy of this Work in Progress 3D Model here to interact with through Autodesk’s A360 portal.

There you have it, after some frustration trying to make my measurements add up, this model is now starting to look like my home.  However, this model isn’t complete by a long shot, so I hopefully by next week it’ll have sufficient content so that I can answer my current Plain Language Question, PLQ2.3.

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 started this model, it’s time to add some further objects, to answer PLQ2.3…

 

PLQ1.4 – Standards

Hello BIMfans,
Now that I have established what my Data Requirements and Information Formats are, I now need to consider what Standards I want followed to make sure that the information I receive is right, complete, and structured correctly.

It is worth saying at the start of this post that (as a member of British, European and International Standards committees) I am a strong believer in adopting a standardized approach.  However, often when we are working we deal with Standards, instead of a Standard.

Toothbrush
Standards are like toothbrushes, everyone would rather use their own.

At BRE, I often audit for our BIM Business System Certification scheme. When auditing, I find it amazing how often I see phrases such as “BS 1192 amended/revised/inspired” when referring to naming conventions.  What also makes matters worse is when standards are developed often they are not considered holistically and as a result conflict with each other.

standards
If XKCD‘s Randall got a pound every time I tweeted this, he’d be slightly richer than he is now

As this blog is looking at promoting good practice, I will aim to follow existing standards where possible as opposed to producing my own.  On the Official BIM Level 2 Webiste, there are six ‘core’ standards identified which I will be following which are:

  • BS 1192; guidance on how to produce information using a standard file naming, revision, and suitability code convention, as well as exchanging information within a common data environment.  Note:  As I am a team of one I will not be following the common data environment exchange requirements.
  • PAS 1192-3; guidance on the relationship between the Employer’s Information Requirements (EIR) and other core documents from the organization and asset teams, as well as a definition for content included within an asset information model, and guidance on managing the asset information model throughout the asset’s life cycle.
  • BS 1192-4; guidance on how to structure an information exchange to COBieincluding how data should be presented, what the expected attributes are, and where to locate recommended type and system attributes.  Note: I will producing COBie compliant content.
  • PAS 1192-5; guidance on how to define the sensitivity of an asset as well as how to safeguard its information.  Note:  While my asset is not defined as ‘sensitive’, I will be requiring safeguards to prevent the release of any personally identifiable information on regarding the location of my home.
  • BS 8536-1 / BS 8536-2; guidance on forming Plain Language Questions, additional owner and operator information requirements, key employer activities at each project stage, and guidance on post-occupancy evaluation.

Those of you who have been paying attention will have noticed that most (if not all) of these standards have already been referred to in previous posts.  These six documents make up the ‘core’ set of BIM Level 2 standards, but they are not enough to manage a project, so I intend to refer to some additional Standards which will be outlined in future posts.

These Standards (as well as many, many others) will be used to structure my information as well as the key documentation that define relevant standards, methods, and procedures that well used to undertake the production of my information model.

And there you have it.  I have defined the standards that I intend to have followed.  This means that I have now answered another Plain Language Question; PLQ1.4 Complete!

Brief:
1.1 Have the model purposes been defined?
1.2 Are there any specific data requirements to achieve these purposes?
1.3 What format shall the information be delivered in?
1.4 What standards will be followed?
1.5 What level of accuracy/detail/development is required?
1.6 Is there sufficient information to produce an EIR?

Now that I know what standards to follow.  I need to now establish what Level of Definition is required for my information to satisfy PLQ1.5…

Note:  If you have any comments regarding my choice of Standards, then please let me know either on Twitter, or by commenting below.