Hi, let say there is a rectangular beam consisting of six surfaces (i.e., 1 top, 1 bottom, and 4 sides). What is the IFC entity for the relationship between the 3D beam and the six surfaces (i.e., denote that the beam has these six surfaces)? Is it IfcRelAggregates
? Thanks!
That depends whether you are interested in the geometrical relationship between the solid and its faces or the semantic relationship between the beam and its surface facing a room or other building element.
In the first case (geometric), it would be an attribute for some subtype of IfcRepresentationItem
. For example if you consider IfcFacetedBrep
, that would be IfcClosedShell.CfsFaces
leading to the faces of the (outer or interior) shell.
In the second case (semantic), the relation is not actually between the building element (e.g. column) and the surface, but between the element and the room or object on the “other” side of the surface. The surface geometry is an optional attribute of the relation. That would be IfcRelConnects
and subtypes, for exampleIfcRelSpaceBoundary
or IfcRelConnectsElements
. Note that not all subtypes of IfcRelConnects
have provision for surface (connection) geometry, but most of them mandate the objects on both sides of the connection to be present.
Thanks @tauscher for your explaination!
I mean the first case (the geometirc relationship between the solid and its faces). I think what you mentioned here, like IfcRepresentationItem, IfcFacetedBrep, IfcClosedShell.CfsFaces,
are the entities to represent the surfaces? But I am wondering what’s the entity to represent that the solid “has” the surfaces (the “ownership” relationship between the solid and its surfaces), maybe an example is the IfcRelConnectsElements
to represent the connectivity of two joined elements.
Actually both examples have a “semantic” meaning. Geometry does not know about a directional meaning or relation to a superior global classification system (i.e. top, bottom, left, right etc.). I’m not aware of any IFC example which dissembles the faces of it’s representation. It would require the knowledge of what is meant by up and down in prior. It also depends on the final transformation (in terms of geometry in a scene graph). And finally it would blow up the model size massively. Most solutions try to post-compute those relations and annotate surfaces in an internal object model.
Thanks for your replies @Bernold.K @tauscher .
After looking into the IFC instance diagram in https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2_TC1/HTML/schema/templates/surface-3d-geometry.htm
, I guess the answers are IfcProductDefinitionShape
and IfcShapeRepresentation
?
Hi,
concerning the relation between product and shape, you are right. But it’s not an expression for the “ownership” between shape and its faces necessarily. It depends on how the exporting software will decompose (or not) a shape. I saw examples where each face became a shape (correcting myself in the upper comment, but only faces without a semantic meaning) and on the opposite where everything was bound to a single shape (with faces without meaning). If you are looking for “faces” of “solids”, you have to take a look into the bunch of implementations (i.e. see the inheritance of https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2_TC1/HTML/link/ifcgeometricrepresentationitem.htm). If you’re looking for an explicit common relation between solids and faces, there’s no in the IFC (as far I know, and with respect to the bunch of implementations, it’s really hard to have one).
Best,
Bernold
Thanks! @Bernold.K