-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
bot:containsElement between storey and element is incorrectly converted from IFC #1
Comments
We now (wrongly) take the IfcBuildingStorey of an IFC element and make it by default explicitly contained in the storey, while it can also be adjacent to that storey if it is an external element. |
This is doable. To avoid handling the properties twice, the props:isExternal | props:isExternal_simple properties be created before the selection of bot:adjacentElement/bot:containsElement. |
Okay, so working points for the converter:
|
The IFC data structure (and by extension those from other CAD/BIM modeling tools) have a different way of handling storeys in comparison to BOT. In the case of IFC, storeys are two dimensional horizontal planes and every building element (wall, door, window, etc.) is modeled with an optional offset towards this storey. In the case of BOT, bot:Storeys are 3D volumes that either contain (bot:containsElement) OR is adjacent to a certain element (bot:adjacentElement).
In IFC, every space and building element is connected to an IfcBuildingStorey, because this is the reference for the space/element geometry location. If after the conversion to LBD, the building element is contained in a space, then one can correctly infer that the storey containing this space also contains the element:
=> infers:
inst:storey1 bot:containsElement int:deskA .
But if a building element is adjacent to a space, one cannot infer that it is adjacent to OR contained in the storey that contains the space:
=> does not infer (which is correct):
inst:storey1 bot:adjacentElement inst:wallA
I've posted an issue on the BOT github (w3c-lbd-cg/bot#23), to add a superproperty called bot:relatedElement, of bot:containsElement and bot:adjacentElement. The IFCtoLBD converter however, could look to the 'isExternal' property of the IFC building elements, to explicitly state if it is an internal or external element. With example:
IF:
inst:wallA props:isExternal | props:isExternal_simple true .
THEN:
inst:storey1 bot:adjacentElement inst:wallA .
ELSE:
inst:storey1 bot:containsElement inst:wallA .
The text was updated successfully, but these errors were encountered: