IFC Wall material layers - best practice
I am keen to hear the forum members' thoughts on how timber framed, or metal framed walls will in-fill insulation is handled IFC wall material layers.
Here in Aotearoa NZ we typically build houses and smaller buildings using 'light timber framing' similar to parts of Australia and USA.
The question is what is good practice in IFC? ![]
thank you in advance :)
(https://community.osarch.org/uploads/editor/4o/5dxtdwepmiko.png "")
Comments
Hi @Nigel
interesting topic!
I would gladly extend the request to other parts like: what's best IFC practice for foundations or floors, for instance, or when it comes to walls if plaster is together with blocks or separate covering layer instead..
I understand it depends on several factors but it would be useful to have an exchange on it I think
I can prepare an example of how I'd usually IFC the elements in my takeoff models
Very interesting. I too would like to know good methods.
I would like to see you discuss insulation for pipes and ducts as well as walls.
The IFC in Wiki.OSArch states to use Material layer set if it is just walls. what about framed walls?
https://wiki.osarch.org/index.php?title=IFC_-_Industry_Foundation_Classes/IFC_materials
One of the IFC entities is IfcCovering.
https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcCovering.htm
For material layers I have only ever done one layer for "insulated timber/metal studs". When the wall continues beyond a part that requires insulation, I split the wall and continue it with a new wall with a layer for "timber/metal studs" (uninsulated).
The approach you take can vary based on the project and construction methods. In my recent project, I utilized a method that distinguished between "wall types" and "covering types." A "wall type" could refer to a complete wall, including its coverings, or just the structural/framed part, excluding coverings. On the other hand, a "covering type" pertained to the finished covering including its fixing system.
For walls, I found it beneficial to separate coverings in the following situations:
Structurally Engineered Components: When a wall included a structurally engineered component, such as concrete or core-filled blockwork, separating the coverings allowed for a clear delineation between disciplines (this also relates to foundations). This approach helped avoid redundant documentation, reducing the risk of errors.
Height Differences: In cases where there was a required height difference, particularly in exterior situations, the "wall type" extended from slab to slab, while the "covering type" covered the slab edge and continued up multiple stories. This separation ensured that each component had the correct height, didn't conflict with the floor slabs, and ensured the exterior precisely aligned over multiple stories.

By conditionally separating "wall types" and "covering types" I was able to maintain a relatively condensed wall and covering schedule while being able to accurately cover a variety of conditions.
For floor, roof, and ceiling types, I used a similar conditional logic. Except, rather than needing to control the heights differently, I needed to control their extents on the horizontal plane differently.
thanks @tim
I too use separation between wall core (an IfcWallType with concrete hollow or solid blocks) and plaster (IfcCoveringType, USERDEFINED = plaster), in my case I also lay the plaster on the internal face of the wall, going around projecting structural columns if present.
This also allows me to identify different plastering+finishing in a specific IfcCoveringType
Out of curiosity: what about blinding layer under foundation elements, IfcCovering? cheers
I don't think it's a covering. What about IfcSlab, BASESLAB?
Hi @tim :
How about screed (light concrete between structural and finish floor) IfcSlab or IfcCovering? I'd lean toward the latter (USERDEFINED = screed)
I'm surprised such construction feature hasn't been captured in Ifc (?), if not as a class at least as predefined type
thanks
I’d lean towards a screed being the ‘fill’ component of the material layer set of an IfcCovering-FLOORING.
thanks @timeandprice
Good, I almost got it right this time :D
I would agree with screed being a floor covering. It's also a bit of a funny one in that sometimes it's a bit hard to remove (I think?) if no bond breaker is used.
I added a request:
https://github.com/IfcOpenShell/IfcOpenShell/issues/5044
Thank you all for your insights. It became an interesting conversation. My original reason for asking is my quest of making a classifying and naming guidefor exporting ifc out of revit and archicad. This could clean up the "shambles of random' and produce clean spreadsheets exported from BBIM.
Wouldn't
plaster
deserve a predefined term under IfcCovering as well?And
paint
too, at least a combination of the two?..or there is an explanation for their absence?
I don't think it's the Ifc approach to match classifications with materials as you would end up duplicating information more than necessary.
That said, for Plaster or Wallboard, I did expect to see WALLLINING as a predefined type under IfcCovering. I see they are covered in IfcWall-ELEMENTEDWALL. However, this wouldn't suit all use cases. As an architect, I like to keep structurally engineered walls separate. This allows for a better workflow when updating structural information. For example, a combined exterior wall assembly could consist of:
IfcCovering-CLADDING | IfcWall-SOLIDWALL | IfcCovering-USERDEFINED: WALLLINING
I wonder why WALLLINING is not a predefined type?
I was thinking that LoadBearing in Pset_SlabCommon or Pset_WallCommon would sort out the structure or something.
I totally agree
one more thing..
In many parts of the world the sequence is very simple, with some little variation: paint | skimming | plaster |blockwork (hollow or solid concrete) |plaster| skimming | paint
the implementation of these layers into a single layerset is not always the best solution
I like this exchange, we are getting somewhere :)
Hi @tim
or anyone else who knows about it:
is there a spot available in the Psets where I can save the drawing nr of specific elements? (the one I used to model it, like a reference dwg)
or should I just create a custom pset? best practice please?
thanks
I am not sure I follow. Can you give an example?
thanks for the quick reply
I receive 2D DWG of a project I convert to IFC model for quantity takeoff
sometimes the model is more than one part and each of them come with dedicated DWG
is there anywhere I can save the reference drawing in a pset of an element or a group of them?
Does anyone have any thoughts or comments on why there is no PredefinedType for WALLLINING? I don't like that my workflow requires a user-defined wall covering type. What am I missing?
@steverugi that sounds like a custom pset.
@tim I've always used CLADDING for that.
Thanks @Moult
Yes I did that, but I find it a bit odd that docs reference is not available.
Especially in finishing and MEP components is quite useful (am I alone here?), but as you wrote a custom pset is the fix.
Me too :)
Cheers
Hi again, I have been reviewing an IFC4 that is part of a pilot project, where we are trying 'JIT' (Just In Time) and a client procured/supplied to site idea for housing projects. Anyway, I have two questions, 1. I am looking for some 'plain English' description of what to add as attributes (see PNG. 2. for a mech fixing what would be a Predefined Type? Also, there are two different 'Predefined Types' one for class and the second for attributes, is this a little confusing? I am looking forward the your interesting responses ;)
Hi @Nigel
I can't find the .png attached ;)
@steverugi I forgot! haha
@steverugi thank you, how do you think I should define the type of content for 'Object Type'?
'ObjectType' is used when USERDEFINED is selected, to indicate its value if the other predefined values do not meet your requirement, but I see 'SCREW' is what you need (part of the prefefined list) so 'ObjectType' should be left empty
But I'm curious to know by the experts if the above is correct :>))
Assign document to entities
I think I found an alternative way compared to custom Pset:
prepare document references
Project Overview
>Project Setup
>Documents
click on the
+
icon to create a new main document reference container (or folder), like 'drawings'from there you can edit the folder properties clicking on the pencil
and fill the fields as required to add information to the reference document folder
click on the
V
icon to save them, now click on the arrow>
to the left to start loading documents in the folderfrom here there are three options:
V
when done:assign document reference to element
Object Information
>Misc.
>Documents
> click on+ Assign Document References
, then select the folder, and click on the arrow>
to the left of the document icon :select the desired reference (in this case there is only one) by clicking on the
+
icon to assign the document refrence to the elementnow properly assigned:
the procedure is not that different than the classification assignment
nice one! many thanks
Thank you! I was thinking of CLADDING as an external element, but I see there is a PSet to nominate IsExternal