For a wall in particular, perhaps one with IsExternal set to true, is there something which determines which side of the wall is external facing and which one is internal?
For any other object, is there anything which assigns the semantic of “external” vs “internal” facing material in a material layer set usage?
Not to my knowledge. Extending on the discussion here [0] you could use the geometry of spaces (or space boundaries) and overlay them with wall/slab geometries separated by material layer as you obtain them from IfcOpenShell.
Bumping this issue, because for users it makes sense to define a convention for what is exterior and what is interior in a layer set.
Here’s my proposal: Positive Y axis goes from interior to exterior. So most positive Y is exterior, least positive Y is interior.
This is the logic behind the proposal:
Roof slab layers are always extruding in a positive direction sense in the positive Z direction. Therefore, the further layer is the exterior, and the closest layer is the interior. Note that the opposite argument may be made for base-slabs.
Windows open outwards in the positive Y direction. Most windows open to the exterior (not all windows, yes, but most).
Doors open outwards in the positive Y direction. When doors are analysed for egress and fire, doors always swing to the exterior of the building.
It’s not strong logic, but as @aothms noted, nothing is currently present in the docs and I haven’t found anything.
“Windows open outwards in the positive Y direction. Most windows open to the exterior”
Not valid in most european country for safety reasons, windows open on the inside most of the time in western europe, at least (germany / italy / france / portugal / spain / switzerland…)
In facts never even saw one of such window beside medieval buildings with 2 windows, one inside and other outside.
I guess that energy simulation use a convention we may follow here.
Agree, the logic for windows is rather evenly divided between a convention of out swing and in swing windows. I will edit my post to say that it is not consistent.
A bit more research:
IfcCurtainWall makes no mention of axis and interior / exterior preference.
Revit seems to use +Y = exterior and -Y = interior, as per my proposal.
This quote for IfcWindowTypePartitioningEnum is really ambiguous … “looking into the direction?”
The figures are shown as elevations in the XZ plane of the local placement of the window, looking into the direction of the positive Y axis.
The expectation with assets such as windows and doors is that they will be supplied with a local axis such that a ‘front’ view would show the outside elevation, the ‘back’ view would show the inside, the ‘side’ view would show the side profile etc…
Given that walls are aligned to a local x-axis, it makes sense that the asset would be inserted into this wall without any rotational transform.
This implies that wall layers would fit on the y-axis with a positive increase towards the inside of the building.
Thanks @brunopostle - I like your logic, and I’m happy to follow your convention.
Just for clarification since i didn’t mention it in the original post there are only two benefits to setting a convention for whether the first layer is Interior or Exterior in a layer set.
When a user is drawing new external walls, this provides consistency on whether they draw clockwise or anticlockwise. Especially if an IFC project library is shared, this makes it consistent for defining and sharing assets.
When a software comes across a wall set to IsExternal, it makes it programmatically super easy to determine which side is external.
The normals of space and the matching outer walls of space boundaries provide a solution, that is, the surfaces of a wall farther from the surface of space!
Yes, that is a good solution, which relies on space boundaries to be present, as well as spaces to be correctly categorised between internal and external.