realthunder wrote: ↑
Sun Aug 30, 2020 10:21 pm
I am curious as to how IFC handles hierarchies, like the same type of window used hundred times. What's IFC's way to identify this type vs. instance relationship? Is there any 'assembly' kind of concept in IFC?
IFC Object model consists of 4 levels (schemas) from low level to high level: resource definition, core, shared element data, domain specific
For example, IfcWindow is defined at the shared element data level. At the higher level (domain specific schema) IfcWindow can have architectural concepts like Panel (i.e. glass) and Lining (i.e. frame). At the lower level (core schema and fundamentals) IfcWindow is a IfcBuildingElement/IfcProduct which has a Spatial Containment / Product Placement and a Surface 3D Geometry / Product Geometric Representation.
At the more basic level, there are the following concepts: project, object and product. Project represents some common metadata like units, geospatial position, libraries and classifications. Object defines an occurrence (instance) of an object type and properties. Product defines an object which has a position (and may have a shape).
Between fundamental concepts and the core layer lies a resource definition data schema. Resource definition data structures don't have an "occurence" (GUID) but are rather artificial concepts that don't exist in reality.
So, to answer your question, a window used hundred times would be modeled as hundred occurrences of object of type IfcWindow with some "shared resource definition" structure which defines common properties.
Specifically, I think this example is relevant: https://standards.buildingsmart.org/IFC ... -items.htm
This is one IfcRepresentationMap used in 4 IfcMappedItem (same MappingSource, different MappingTarget).
So, the resource structure used are IfcRepresentationMap https://standards.buildingsmart.org/IFC ... ionmap.htm
and IfcMappedItem https://standards.buildingsmart.org/IFC ... editem.htm