Skip to content

Data Bundle

Data Bundle as a Bucket of (IFC) Entities

erDiagram
    dataBundle
    file
    object
    representation
    propertySet
    relationship
    material ["material <: relationship"]
    space ["space >: object"]
    dataBundle ||..o{ dataBundle : "parent"
    dataBundle ||--|{ file : "import or export storage"
    bundleMembership
    bundleMembership }|--|| dataBundle : member
    bundleMembership }|--|| entity : member
    entity ||..o| object : "is a"
    entity ||..o| relationship : "is a"
    entity ||..o| representation : "is a"
    entity ||..o| propertySet : "is a"
    entity ||..o| material : "contains"
    entity ||..o| space : "is a"

A dataBundle (or a bundle for short) is the logical 'bucket' for all files and data related to a 'source' project (whether IFC or not).

When an IFC is provided, The bundle will keep track of the source file and of all transformations thereof (like e.g., an ifcJSON, a filtered ifCJSON, a derived IFC) and all the objects and the relationships originating from the source or added thereafter in the database.

An initial project may be complemented and enriched by new contributing source files. In that case, new information can be logically placed in a new bundle that will be a child of the initial bundle.

erDiagram
    dataBundle
    file
    bundleUnit ["bundleUnit: Site, Building, Storey, Space, Zone, Spatial Zone"]
    spatialUnit
    spatialUnitBundle ["spatialUnitBundle: junction between spatialUnit and bundle"]
    bundleUnit ||..o{ bundleUnit : "parent or group"
    dataBundle ||..o{ dataBundle : parent
    bundleUnit }|..|| dataBundle : ""
    spatialUnitBundle |o..|| bundleUnit : ""  
    dataBundle ||..|{ file : storage
    spatialUnitBundle ||--|| spatialUnit : providesRoot

In this view, the dataBundle (or bundle for short) provides a summary of the core hierarchy and groups via

bundleUnit

  • and hierarchy thereof (parent -> children)
    • site -> building(s)
    • building -> storey(s)
    • storey -> space(s)
    • site -> spatialZone(s)
    • building -> spatialZone(s)
    • storey -> spatialZone(s)
  • and assignments thereof (group -> member)
    • zone -> zone(s)
    • zone -> space(s)

and the link with Spatial Unit is maintained in spatialUnitRoot which gives the unit and/or group that relate to the Spatial Unit