In the US, we’re refining our IFC data exchange standards for bridges. At this point, we’re getting into bridge/structure configurations we didn’t originally cover in our initial Design-to-Construction exchange standard. Specifically, I’m running into… culvert bridge designs, that is, structures of varying complexity that are buried, usually to traverse a small waterway.
Now, a few of the design configurations are relatively easy:
So the question is… what are the best options for IFC classes for these unitary sections? (And don’t tell be IfcPipeSegment.CULVERT… that is SO wrong on so many levels). I’ve speculated in a couple of cases (IfcSlab.FLOOR or IfcSlab.BASE), but they feel… forced. I could go full on USERDEFINED… but USERDEFINED what?.. Wall? Slab? Member?
Maybe… IfcBuiltElement.USERDEFINED:CULVERT_UNIT ??? Is that permissible and reasonable?
For Precast Units, which are generally off-the-shelf standard sizes;
If the culvert is part of a drainage network, then IfcPipeSegment.CULVERT would make sense, as it would be modeled as part of the drainage network. And would be detailed on the drainage drawings.
If it’s an overpass for a road, track, or fawner crossing, it would tend to be detailed on Road-Structures drawings. Maybe IfcBridge.PRESCAST_UNIT, if that’s a thing?
In either case, it would be notated on drawings as a “Precast Unit” and give details of manufacturer, model, type, etc.
For Cast In-Situ units, and Top/Bottom slabs over precast units, then IfcSlab and IfcWall make sense. This would probably also apply for individual precast panels, as they aren’t a complete off-the-shelf “unit”.
@Joel,
In this case, the culverts are seen primarily as bridge structures by the DOT bridge engineers, not drainage system elements. The difference being that they are primarily supporting the road traffic system and secondarily accommodating a drainage system. If these were just culvert pipes and not directly supporting a road, then use of IfcPipeSegment.CULVERT would make sense. IfcBridge.CULVERT is identifying the bridge type,
Since the IFC4.3 schema is such a mess at this point, we’re inclined to use IfcBuiltElement.USERDEFINED: CULVERT_UNIT as the primary functional classification for such precast units. Materiality, and construction method (precast) are all handled in other associated classes and properties/psets.
We also need to consider if using IfcBridgePart.SUPERSTRUCTURE or SUBSTRUCTURE is appropriate. We’re pretty clear on how this works for typical girder type bridges, but culvert types present a unique situation. We’re trying to balance logical and practical concerns for data management throughout the lifecycle.
This is where “Regional” differences probably start to come in. We generally treat Precast Culverts as a separate entity to Bridges, as they aren’t a typical bridge structure (piers, columns, abutments, etc). In most cases just a slab on ground, and couple of headwalls.
If we look at drainage (as that’s where precast are often used), for modelling/design purposes the Culverts are part of the drainage network. Under a road you could use say 3x 1200 Pipes v’s single 1800x900 Culvert. The pipes are IfcPipeSegment and would the Culvert be IfcBridge?
Where i’d see a problem, is any Culvert in a drainage network would essentially become detached from the network. So you would have all of the pits/pipes together under IfcFacility, and then a random Culvert under IfcBridge.
If the Culvert is for some other use, such as a road or fauna underpass, then i guess it could be considered a Bridge.