[IFC] Revit levels in native IFC?

edited August 2023 in General

In Revit we use different reference levels, usually around 4 levels per storey, see attached example section:

△ Lower surface of raw structural ceiling
▲ Lower surface of finished ceiling (suspended ceiling cladding)
▼ Top surface of finished floor (tiles)
▽ Top surface of raw structural floor

The level "top surface of raw floor" is set to structural within the identity data of the properties tab. The level "top surface of finished floor" is defined as building storey (this is probably just an IFC export setting in Revit).

Walls are constrained to the corresponding reference levels with appropriate offsets, either raw floor to raw ceiling or sometimes finished floor to 0,10m above finished ceiling. Furniture is referenced to finished floor, lighting to finished ceiling and so on.

There is the concept of IfcBuildingStorey, but this is defined as the complete space between 2 floors. I am specifically in the search of a 2-dimensional reference plane like in Revit to which I can constrain other building elements.

Within IfcBuildingStorey I can set the top surface of raw structural floor with ElevationOfSSLRelative or the top surface of finished floor with ElevationOfFFLRelative within the Pset_BuildingStoreyCommon. But I can not define the lower surface of the finished or raw ceiling or or other reference planes.

So, how do I recreate the this concept of Revit reference levels in native IFC? Is there already a way to do this in BlenderBim? Is it even supported in IFC? Or is our workflow flawed and we need another approach?


There is a YouTube video explaining the differences between Revit and IFC in regards of levels and how to best handle an export of Revit levels to IFC. Interesting, but doesn't help with native IFC.

Tagged:
theoryshawAce

Comments

  • I am specifically in the search of a 2-dimensional reference plane like in Revit to which I can constrain other building elements.

    Whilst you can define planes and elevations in storeys, it is out of scope of IFC to define "parametric constraints" at the moment (and likely will stay out of ISO scope for a while ... since IFC is an international foundation and everybody has different parametric workflows). This means that any parametric constraints will be a BlenderBIM Add-on specific feature (and hopefully over time native IFC authoring tools can be semi-compatible with their parametric logic "engines"). To date we have not built any "to plane" magic constraints but it is definitely on the todo list.

    Within IfcBuildingStorey I can set the top surface of raw structural floor with ElevationOfSSLRelative or the top surface of finished floor with ElevationOfFFLRelative within the Pset_BuildingStoreyCommon.

    This is correct.

    But I can not define the lower surface of the finished or raw ceiling or or other reference planes.

    See FinishCeilingHeight in Qto_SpaceBaseQuantities (naturally, ceilings vary between rooms - the room itself goes up to the underside of structural floor above). However similar to the ElevationofSSL/FFLRelative properties these are just properties ... not parametric constraints i.e. reference planes.

    You can use IfcAnnotation to annotation arbitrary RLs in drawings, but this is within a drawing, not a "global reference plane". You can simply use the same IfcAnnotation outside of a drawing (and even draw a plane with an extent if you wish) but again, we haven't implemented any of these constraints yet (well sort of, we have a very basic "wall to underside of slab" thing built, but it leaves a lot to be desired!)

  • Isn't IfcGrid suitable to be used as a reference level?

  • Leaving BlenderBim as a specific authoring tool aside, what would be an approach to use reference planes or construction lines in a native IFC centric workflow?

    @Moult The mentioned approach of using IfcAnnotation elements is a good suggestion for a workaround. But it feels awkward, kind of not "semantically" correct.

    @carlopav yeah, I thought of using a vertical IfcGrid (rotated 90 degrees around the y-axis) with multiple IfcGridAxis placed as the different reference planes. But this feels even more like a hack.

    Reference planes or even further any reference elements (lines, circles etc) are an important concept in architectural modelling. Not only as non tangible concepts during the planing phase, but even as a real world used construction helper -> Meterriss

    So far I see 2 options:

    1. use workarounds and hacks -> not really future proof
    2. add the concepts of construction elements / reference lines to the IFC schema to allow to use this across authoring tools
  • Ah, thank you. IfcConstraint seems to be a good direction.

  • @aothms @Moult, Does IFCopenshell support IfcConstraint/IfcMetric/IfcObjective?

Sign In or Register to comment.