{
  "kind": "bimfit_reference_building_manifest",
  "schemaVersion": 1,
  "id": "digital-hub",
  "name": {
    "ko": "DigitalHub 오피스",
    "en": "DigitalHub Office"
  },
  "summary": {
    "ko": "RWTH 아헨 E3D가 MIT로 공개한 업무시설 조정 모델. 원본은 건축·난방·환기·급배수 IFC이며, 공개 설비 형상은 난방입니다.",
    "en": "An office coordination model published by RWTH Aachen E3D under MIT. The source set includes architecture, heating, ventilation and plumbing IFCs; published service geometry is heating."
  },
  "useType": "office_building",
  "licence": "MIT",
  "attribution": "Copyright (c) 2020 RWTH Aachen University — E3D Institute of Energy Efficiency and Sustainable Building. DigitalHub IFC models. MIT licence; extracted and adapted by BIMFIT. https://github.com/RWTH-E3D/DigitalHub",
  "sourceUrl": "https://github.com/RWTH-E3D/DigitalHub",
  "generatedAt": "2026-09-16T12:00:00.000Z",
  "sourceFiles": [
    {
      "role": "architectural",
      "fileName": "FM_ARC_DigitalHub_with_SB_v1.ifc",
      "sha256": "2e2da24f35b0a68ef74cf781d3671915691bcc1160bd22c78c78044adf310ffe",
      "byteLength": 17621384,
      "units": {
        "lengthToMetres": 1,
        "areaToSquareMetres": 1,
        "lengthUnitName": "METRE",
        "areaUnitName": "SQUARE_METRE",
        "lengthAssumed": false,
        "areaAssumed": false
      }
    },
    {
      "role": "heating",
      "fileName": "FM_HZG_DigitalHub_v1.ifc",
      "sha256": "70a40f5d0782b53ae573b89cca8990f66b54b21229527daddd58e5dc2573fbb6",
      "byteLength": 9869500,
      "units": {
        "lengthToMetres": 0.001,
        "areaToSquareMetres": 1,
        "lengthUnitName": "MILLIMETRE",
        "areaUnitName": "SQUARE_METRE",
        "lengthAssumed": false,
        "areaAssumed": false
      }
    },
    {
      "role": "ventilation",
      "fileName": "FM_LFT_DigitalHub_v1.ifc",
      "sha256": "8647e24ea0c0e2f4188fad6222662c1004de55978f9a0d0e1190445e149dbd6c",
      "byteLength": 7369265,
      "units": {
        "lengthToMetres": 0.001,
        "areaToSquareMetres": 1,
        "lengthUnitName": "MILLIMETRE",
        "areaUnitName": "SQUARE_METRE",
        "lengthAssumed": false,
        "areaAssumed": false
      }
    },
    {
      "role": "plumbing",
      "fileName": "FM_SAN_DigitalHub_v1.ifc",
      "sha256": "5d6b7998d9060626132f56010a75c238ebc00ed6b0f937f2c1db0ac46fbff87a",
      "byteLength": 16846052,
      "units": {
        "lengthToMetres": 0.001,
        "areaToSquareMetres": 1,
        "lengthUnitName": "MILLIMETRE",
        "areaUnitName": "SQUARE_METRE",
        "lengthAssumed": false,
        "areaAssumed": false
      }
    }
  ],
  "counts": {
    "storeys": 3,
    "spacesTotal": 59,
    "spacesFloor": 59,
    "assemblies": 20,
    "externalElements": 0,
    "exteriorWalls": 44,
    "windows": 47,
    "exteriorCurtainWalls": 1,
    "exteriorDoors": 4,
    "externalElementsNote": "1630 external physical space boundaries exist and none resolved: swept curve is not a readable polyline. The classifier reads IfcSurfaceOfLinearExtrusion (Revit); this file's boundaries are another surface type. Envelope areas here come from stated wall NetSideArea or solid geometry. Exterior wall membership uses the boundary's element reference and PHYSICAL/EXTERNAL flags directly; it does not require a readable boundary surface or consume its area."
  },
  "areas": {
    "totalFloorAreaSqm": 2780.19,
    "areaPlanTotalSqm": 2780.19,
    "exteriorWallNetSqm": 2920.59,
    "exteriorWallNote": "44 walls selected by IfcRelSpaceBoundary PHYSICAL/EXTERNAL element references; area from each wall's stated NetSideArea (openings already removed). Boundary surface areas are not used.",
    "exteriorWallBelowRoofSqm": 0,
    "exteriorWallAboveRoofSqm": 0,
    "exteriorWallByOrientationSqm": {
      "N": 1094.13,
      "NE": 0,
      "E": 365.45,
      "SE": 0,
      "S": 1094.49,
      "SW": 0,
      "W": 366.53,
      "NW": 0
    },
    "glazingApertureSqm": 601.66,
    "glazingByOrientationSqm": {
      "N": 253.8,
      "NE": 0,
      "E": 47,
      "SE": 0,
      "S": 253.86,
      "SW": 0,
      "W": 47,
      "NW": 0
    },
    "exteriorDoorSqm": 8.22,
    "exteriorDoorByOrientationSqm": {
      "N": 0,
      "NE": 0,
      "E": 2.16,
      "SE": 0,
      "S": 3.91,
      "SW": 0,
      "W": 2.16,
      "NW": 0
    },
    "openingsNote": "Glazing aperture 601.66 m² = 47 IfcWindow at OverallWidth × OverallHeight (587.5 m²) + 1 exterior IfcCurtainWall at the projected outline of their plates and mullions (14.16 m²; the glass plates alone give 12.9 m², the bounding rectangles 18 m²). Exterior doors are separate — a door is aperture, not glazing: 4 IfcDoor, 8.22 m², OverallWidth × OverallHeight. Host wall by IfcRelFillsElement → IfcOpeningElement → IfcRelVoidsElement (49 openings); a curtain wall is its own wall segment (1); 2 door(s) inside a curtain wall. Sector is the host wall's, from the same orientation pass as the wall split. Envelope by a both-sides probe against the conditioned IfcSpace solids (59 of 59 have geometry): 0 curtain wall(s) with a room on both sides excluded as interior screens (0 m²); 66 openings hosted in walls outside the exterior set; nothing unresolved. IsExternal is reported per row and never used as a filter — it means \"not an interior partition\" to an authoring tool, never \"bounds conditioned space against outdoor air\". It marks 69 door(s) here; 4 confirm against an exterior wall, 65 do not: #57325 TU DF 1 - Fluchttüre Endausgang:EN 179 - ML - 1010 x 2250:2421088 2.16 m², #61366 TU DF 1 - Fluchttüre Endausgang:EN 179 - ML - 1010 x 2250:2421089 2.16 m², #61430 TU Durchgang:DL - 1200 x 2100:2421090 2.7 m², #90017 TU DF 1 - Fluchttüre Endausgang:EN 179 - ML - 1010 x 2250:2423930 2.16 m², #90064 TU DF 1 - Fluchttüre Endausgang:EN 179 - ML - 1010 x 2250:2423931 2.16 m², #90112 TU Durchgang:DL - 1200 x 2100:2423932 2.7 m², #96267 TU DF 1 - Fluchttüre Endausgang:EN 179 - ML - 1010 x 2250:2426178 2.16 m², #96314 TU DF 1 - Fluchttüre Endausgang:EN 179 - ML - 1010 x 2250:2426180 2.16 m², #96362 TU Durchgang:DL - 1200 x 2100:2426586 2.74 m², #96397 TU Durchgang:DL - 1200 x 2100:2426588 2.74 m², #102748 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2432934 2.42 m², #102803 TU Durchgang:DL - 1200 x 2100:2432935 2.74 m², #105317 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2432938 2.42 m², #105370 TU Durchgang:DL - 1200 x 2100:2432939 2.74 m², #105395 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2432971 2.42 m², #105683 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2433295 2.42 m², #105860 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2434145 2.42 m², #105903 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2434320 2.42 m², #105946 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2434342 2.42 m², #105989 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2434521 2.42 m², #106032 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2434549 2.42 m², #106075 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2434619 2.42 m², #106201 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2435775 2.42 m², #106293 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2435886 2.42 m², #107788 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2439813 2.42 m², #190945 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2549490 2.23 m², #193491 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2549557 2.23 m², #193550 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2549587 2.23 m², #193593 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2549631 2.23 m², #193636 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2549876 2.23 m², #193679 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2550105 2.23 m², #193722 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2550155 2.23 m², #193765 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2550231 2.23 m², #193808 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2550281 2.23 m², #193851 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2550361 2.23 m², #193894 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2550459 2.23 m², #196787 TU DF 2 - Rahmenstock flächenbündig:ML - 1635 x 2135:2550600 3.49 m², #197828 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2553177 2.23 m², #197871 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2553215 2.23 m², #197914 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2553265 2.23 m², #197957 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2553337 2.23 m², #198000 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2553405 2.23 m², #198043 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2553451 2.23 m², #198086 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2553503 2.23 m², #198129 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2553541 2.23 m², #198172 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2553635 2.23 m², #198215 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2553695 2.23 m², #198258 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2553817 2.23 m², #198301 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2553889 2.23 m², #198344 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2553933 2.23 m², #198387 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2553963 2.23 m², #198479 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2554156 2.23 m², #198522 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2554196 2.23 m², #198565 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2554242 2.23 m², #198608 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2554278 2.23 m², #198651 TU DF 1 - Rahmenstock flächenbündig:DL - 1000 x 2000:2554324 2.23 m², #211286 TU DF 1 - Stahl-Eckzarge Falztüre:DL - 800 x 2000:2699597 1.77 m², #215448 TU DF 1 - Stahl-Eckzarge Falztüre:DL - 800 x 2000:2699634 1.77 m², #215558 TU DF 1 - Stahl-Eckzarge Falztüre:DL - 800 x 2000:2699876 1.77 m², #215603 TU DF 1 - Stahl-Eckzarge Falztüre:DL - 800 x 2000:2699940 1.77 m², #215893 TU DF 1 - Stahl-Eckzarge Falztüre:DL - 800 x 2000:2700827 1.77 m², #215938 TU DF 1 - Stahl-Eckzarge Falztüre:DL - 800 x 2000:2700881 1.77 m², #216130 TU DF 1 - Stahl-Eckzarge Falztüre:DL - 800 x 2000:2701309 1.77 m², #216175 TU DF 1 - Stahl-Eckzarge Falztüre:DL - 800 x 2000:2701363 1.77 m², #222306 TU DF 2 - Rahmenstock flächenbündig:ML - 1635 x 2135:2749010 3.49 m². Rows in openings.json.",
    "conditionedVolumeGrossM3": 10238.5,
    "roomVolumeNetM3": 9875.22,
    "volumeNote": "Gross from 59 spaces (floor area × storey height; voids, and rooms taller than their storey with no void above, as their own solids); net from 59 spaces (59 from stated volume quantity). A closed tessellation's signed volume is exact.",
    "roofProjectedSqm": 1222.43,
    "roofProjectedByFamilySqm": {
      "Basisdach:Flachdachaufbau begrünt 320:2719837": 1222.43
    },
    "roofElementSumSqm": 1222.43,
    "roofUnionSqm": 1222.43,
    "roofSurfaceSqm": 1222.43,
    "roofSurfaceByFamilySqm": {
      "Basisdach:Flachdachaufbau begrünt 320:2719837": 1222.43
    },
    "roofNote": "Plan shadow per element (union of its projected triangles, ifc-plan-shadow.mjs): 1 elements — 1 IfcSlab.PredefinedType=ROOF. roofProjectedSqm sums 1 roof type(s), each as the union of its elements; the elements themselves sum to 1222.43 m² (elements of one type overlapping in plan) and all types together cover 1222.43 m² (one type above another). surfaceSqm is each element's true one-sheet surface (Σ area of its upward faces; ÷ 2 where a surface model has no downward face and both sheets are wound upward; ÷ the coverage where its parts cover its shadow more than once, as stacked layer solids do — surfaceBasis says which), summing to 1222.43 m²; a flat deck's surface equals its shadow, a pitched roof's exceeds it. 3 IfcRoof carry no geometry of their own and are measured through the IfcSlab ROOF parts they aggregate. Roof geometry is read from the architectural IFC. Classification follows measured planes; no typology is invented.",
    "groundSlabSqm": 661.67,
    "groundSlabSumSqm": 1961.4,
    "groundPerimeterM": 126.1,
    "groundHolePerimeterM": 0,
    "groundNote": "IfcSlab (not ROOF or LANDING) on storeys at or below B01_OKRD (-3.37 m): 7 candidate(s). A slab counts as ground envelope when a conditioned space stands on it — its shadow overlaps a conditioned ground-storey space footprint (14 of 14 such spaces have one: 14 solid) or an IfcRelSpaceBoundary names it as bounding one. IsExternal is not consulted. 4 counted, 3 excluded: \"Sohle:Sohle 1 mm:2437499\" 618.9 m², \"Geschossdecke:WD 200 hart:2720852\" 545.96 m², \"Geschossdecke:STB 200 + WD 200:2751473\" 0.44 m². groundSlabSqm is the union of the counted shadows (they sum to 1961.4 m²; stacked build-up layers count once); groundPerimeterM is the outline's outer ring."
  },
  "assemblies": [
    {
      "id": "assembly-geschossdecke-stb-250",
      "name": "Geschossdecke:STB 250",
      "totalThicknessM": 0.25,
      "layers": [
        {
          "name": "Ortbeton - bewehrt",
          "thicknessM": 0.25,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#26525"
        }
      ],
      "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#26527"
    },
    {
      "id": "assembly-geschossdecke-stb-220",
      "name": "Geschossdecke:STB 220",
      "totalThicknessM": 0.22,
      "layers": [
        {
          "name": "Ortbeton - bewehrt",
          "thicknessM": 0.22,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#28134"
        }
      ],
      "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#28135"
    },
    {
      "id": "assembly-basiswand-stb-300",
      "name": "Basiswand:STB 300",
      "totalThicknessM": 0.3,
      "layers": [
        {
          "name": "Ortbeton - bewehrt Verputzt",
          "thicknessM": 0.3,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#28221"
        }
      ],
      "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#28222"
    },
    {
      "id": "assembly-bodenplatte-stb-300",
      "name": "Bodenplatte:STB 300",
      "totalThicknessM": 0.3,
      "layers": [
        {
          "name": "Ortbeton - bewehrt",
          "thicknessM": 0.3,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#28402"
        }
      ],
      "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#28403"
    },
    {
      "id": "assembly-basiswand-stb-200",
      "name": "Basiswand:STB 200",
      "totalThicknessM": 0.2,
      "layers": [
        {
          "name": "Ortbeton - bewehrt",
          "thicknessM": 0.2,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#28469"
        }
      ],
      "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#28470"
    },
    {
      "id": "assembly-basiswand-stb-250",
      "name": "Basiswand:STB 250",
      "totalThicknessM": 0.25,
      "layers": [
        {
          "name": "Ortbeton - bewehrt",
          "thicknessM": 0.25,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#30663"
        }
      ],
      "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#30664"
    },
    {
      "id": "assembly-geschossdecke-fb-150-leer",
      "name": "Geschossdecke:FB 150 leer",
      "totalThicknessM": 0.15,
      "layers": [
        {
          "name": "Fußbodenaufbau",
          "thicknessM": 0.15,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#99376"
        }
      ],
      "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#99377"
    },
    {
      "id": "assembly-geschossdecke-fb-100-leer",
      "name": "Geschossdecke:FB 100 leer",
      "totalThicknessM": 0.1,
      "layers": [
        {
          "name": "Fußbodenaufbau",
          "thicknessM": 0.1,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#107450"
        }
      ],
      "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#107451"
    },
    {
      "id": "assembly-basiswand-leichtbetonmauerwerk-250",
      "name": "Basiswand:Leichtbetonmauerwerk 250",
      "totalThicknessM": 0.25,
      "layers": [
        {
          "name": "Leichtbeton - Mauerwerk",
          "thicknessM": 0.25,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#137421"
        }
      ],
      "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#137422"
    },
    {
      "id": "assembly-basiswand-wd-200-luft-40-bekleidung-12",
      "name": "Basiswand:WD 200 + Luft 40 + Bekleidung 12",
      "totalThicknessM": 0.252,
      "layers": [
        {
          "name": "Faserzementplatte (Equitone - natura)",
          "thicknessM": 0.012,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#146506"
        },
        {
          "name": "Luftschicht",
          "thicknessM": 0.04,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#146507"
        },
        {
          "name": "Steinwolle (Rockwool Fixrock033 VS)",
          "thicknessM": 0.2,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#146508"
        }
      ],
      "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#146509"
    },
    {
      "id": "assembly-basiswand-metall-einfachsta-nderwand-2-lagig-beplankt-mw12bf",
      "name": "Basiswand:Metall-Einfachständerwand 2-lagig beplankt  (MW12BF)",
      "totalThicknessM": 0.15,
      "layers": [
        {
          "name": "Trockenbau - Rigips Die Blaue RFI",
          "thicknessM": 0.025,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#187770"
        },
        {
          "name": "Dämmung - Isover Akustik TF",
          "thicknessM": 0.08,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#187771"
        },
        {
          "name": "Luftschicht",
          "thicknessM": 0.02,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#187772"
        },
        {
          "name": "Trockenbau - Rigips Die Blaue RFI",
          "thicknessM": 0.025,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#187773"
        }
      ],
      "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#187774"
    },
    {
      "id": "assembly-deckensystem-abgeha-ngte-decke-rigips-die-dicke-25",
      "name": "Deckensystem:Abgehängte Decke - Rigips Die Dicke 25",
      "totalThicknessM": 0.025,
      "layers": [
        {
          "name": "Trockenbau - Rigips Die Dicke RFI",
          "thicknessM": 0.025,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#198727"
        }
      ],
      "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#198728"
    },
    {
      "id": "assembly-basiswand-metall-einfachsta-nderwand-2-lagig-beplankt-sanita",
      "name": "Basiswand:Metall-Einfachständerwand 2-lagig beplankt - Sanitär",
      "totalThicknessM": 0.4,
      "layers": [
        {
          "name": "Trockenbau - Rigips Die Blaue RFI",
          "thicknessM": 0.025,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#207127"
        },
        {
          "name": "Steinwolle (Rockwool Fixrock033 VS)",
          "thicknessM": 0.08,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#207128"
        },
        {
          "name": "Luftschicht",
          "thicknessM": 0.19,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#207129"
        },
        {
          "name": "Steinwolle (Rockwool Fixrock033 VS)",
          "thicknessM": 0.08,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#207130"
        },
        {
          "name": "Trockenbau - Rigips Die Blaue RFI",
          "thicknessM": 0.025,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#207131"
        }
      ],
      "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#207132"
    },
    {
      "id": "assembly-basisdach-flachdachaufbau-begru-nt-320",
      "name": "Basisdach:Flachdachaufbau begrünt 320",
      "totalThicknessM": 0.32,
      "layers": [
        {
          "name": "Dachdeckung - Begrünung",
          "thicknessM": 0.1,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#216444"
        },
        {
          "name": "Dachdeckung - Flies",
          "thicknessM": 0.005,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#216445"
        },
        {
          "name": "Dämmung - hart",
          "thicknessM": 0.2,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#216446"
        },
        {
          "name": "Dachdeckung - Bitumenbahn",
          "thicknessM": 0.015,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#216447"
        }
      ],
      "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#216448"
    },
    {
      "id": "assembly-basiswand-wd-hart-200",
      "name": "Basiswand:WD hart 200",
      "totalThicknessM": 0.2,
      "layers": [
        {
          "name": "Dämmung - hart",
          "thicknessM": 0.2,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#216624"
        }
      ],
      "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#216625"
    },
    {
      "id": "assembly-geschossdecke-wd-200-hart",
      "name": "Geschossdecke:WD 200 hart",
      "totalThicknessM": 0.2,
      "layers": [
        {
          "name": "Dämmung - hart",
          "thicknessM": 0.2,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#216953"
        }
      ],
      "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#216954"
    },
    {
      "id": "assembly-basiswand-gk-vs-sanita-r",
      "name": "Basiswand:GK VS - Sanitär",
      "totalThicknessM": 0.065,
      "layers": [
        {
          "name": "Trockenbau - Gipsplatte",
          "thicknessM": 0.025,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#217405"
        },
        {
          "name": "Dämmung - weich",
          "thicknessM": 0.04,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#217406"
        }
      ],
      "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#217407"
    },
    {
      "id": "assembly-basiswand-gk-100-doppelbeplankt",
      "name": "Basiswand:GK 100 - Doppelbeplankt",
      "totalThicknessM": 0.1,
      "layers": [
        {
          "name": "Trockenbau - Gipsplatte",
          "thicknessM": 0.025,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#217477"
        },
        {
          "name": "Dämmung - weich",
          "thicknessM": 0.05,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#217478"
        },
        {
          "name": "Trockenbau - Gipsplatte",
          "thicknessM": 0.025,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#217479"
        }
      ],
      "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#217480"
    },
    {
      "id": "assembly-basiswand-gk-75-toilettentrennwand",
      "name": "Basiswand:GK 75 - Toilettentrennwand",
      "totalThicknessM": 0.075,
      "layers": [
        {
          "name": "Trockenbau - Gipsplatte",
          "thicknessM": 0.0125,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#217747"
        },
        {
          "name": "Dämmung - weich",
          "thicknessM": 0.05,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#217748"
        },
        {
          "name": "Trockenbau - Gipsplatte",
          "thicknessM": 0.0125,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#217749"
        }
      ],
      "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#217750"
    },
    {
      "id": "assembly-geschossdecke-stb-200-wd-200",
      "name": "Geschossdecke:STB 200 + WD 200",
      "totalThicknessM": 0.4,
      "layers": [
        {
          "name": "Ortbeton - bewehrt",
          "thicknessM": 0.2,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#222539"
        },
        {
          "name": "Dämmung - hart",
          "thicknessM": 0.2,
          "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#222540"
        }
      ],
      "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#222541"
    }
  ],
  "orientation": {
    "trueNorthDeg": null,
    "northAssumed": true,
    "weakOutwardCount": 3,
    "offCardinalCount": 0,
    "offCardinalSqm": 0,
    "wallCount": 44,
    "note": "Azimuths are clockwise from north, where north is the model's -Z after web-ifc's Z-up to Y-up conversion. Outward face inferred by comparing each face's centroid with the building centre, which is correct for a convex plan and can be wrong at a re-entrant corner."
  },
  "site": {
    "declaredSiteName": "Default",
    "declaredLatitudeDeg": 48.137599945000005,
    "declaredLongitudeDeg": 11.579939842222222,
    "locationIsAuthoringDefault": true,
    "locationNote": "The publisher identifies an RWTH Aachen office model. BIMFIT uses a separately disclosed Seoul climate comparison; IfcSite coordinates are not treated as a surveyed energy climate.",
    "statedTown": "Aachen",
    "trueNorthStated": false
  },
  "storeys": [
    {
      "id": "storey-b01-okrd",
      "name": "B01_OKRD",
      "elevationM": -3.37,
      "floorToFloorHeightM": 3.22,
      "spaceCount": 14,
      "floorAreaSqm": 602.25,
      "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#150"
    },
    {
      "id": "storey-e00-okrd",
      "name": "E00_OKRD",
      "elevationM": -0.15,
      "floorToFloorHeightM": 3.9,
      "spaceCount": 20,
      "floorAreaSqm": 1380.6,
      "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#156"
    },
    {
      "id": "storey-e01-okrd",
      "name": "E01_OKRD",
      "elevationM": 3.75,
      "floorToFloorHeightM": 0,
      "spaceCount": 25,
      "floorAreaSqm": 797.34,
      "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#162"
    }
  ],
  "spacesFile": "spaces.json",
  "roofs": [
    {
      "id": "roof-216340",
      "name": "Basisdach:Flachdachaufbau begrünt 320:2719837:1",
      "family": "Basisdach:Flachdachaufbau begrünt 320:2719837",
      "elementType": "IfcSlab",
      "predefinedType": "ROOF",
      "basis": "IfcSlab.PredefinedType=ROOF",
      "storeyId": "storey-e01-okrd",
      "projectedSqm": 1222.43,
      "upFacingProjectedSqm": 1222.43,
      "tiltDeg": 0,
      "surfaceSqm": 1222.43,
      "surfaceBasis": "upward faces of a closed solid",
      "partOf": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#216336",
      "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#216340"
    }
  ],
  "groundSlabs": [
    {
      "id": "slab-28398",
      "name": "Bodenplatte:STB 300:2398103",
      "elementType": "IfcSlab",
      "predefinedType": "BASESLAB",
      "storeyId": "storey-b01-okrd",
      "projectedSqm": 636.61,
      "countsAsGround": true,
      "evidence": "568.4 m² under 14 conditioned space footprint(s); bounds 13 conditioned space(s) per IfcRelSpaceBoundary",
      "excludedReason": null,
      "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#28398"
    },
    {
      "id": "slab-107125",
      "name": "Sohle:Sohle 1 mm:2437499",
      "elementType": "IfcSlab",
      "predefinedType": "FLOOR",
      "storeyId": "storey-b01-okrd",
      "projectedSqm": 618.9,
      "countsAsGround": false,
      "evidence": null,
      "excludedReason": "no conditioned space stands on it: no conditioned ground-storey footprint overlaps its shadow and no IfcRelSpaceBoundary names it",
      "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#107125"
    },
    {
      "id": "slab-107379",
      "name": "Sohle:Sohle 1 mm:2437790",
      "elementType": "IfcSlab",
      "predefinedType": "FLOOR",
      "storeyId": "storey-b01-okrd",
      "projectedSqm": 636.61,
      "countsAsGround": true,
      "evidence": "568.4 m² under 14 conditioned space footprint(s)",
      "excludedReason": null,
      "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#107379"
    },
    {
      "id": "slab-107446",
      "name": "Geschossdecke:FB 100 leer:2438670",
      "elementType": "IfcSlab",
      "predefinedType": "FLOOR",
      "storeyId": "storey-b01-okrd",
      "projectedSqm": 26.49,
      "countsAsGround": true,
      "evidence": "26.49 m² under 1 conditioned space footprint(s); bounds 1 conditioned space(s) per IfcRelSpaceBoundary",
      "excludedReason": null,
      "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#107446"
    },
    {
      "id": "slab-216949",
      "name": "Geschossdecke:WD 200 hart:2720852",
      "elementType": "IfcSlab",
      "predefinedType": "FLOOR",
      "storeyId": "storey-b01-okrd",
      "projectedSqm": 545.96,
      "countsAsGround": false,
      "evidence": null,
      "excludedReason": "no conditioned space stands on it: no conditioned ground-storey footprint overlaps its shadow and no IfcRelSpaceBoundary names it",
      "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#216949"
    },
    {
      "id": "slab-217027",
      "name": "Geschossdecke:WD 200 hart:2721280",
      "elementType": "IfcSlab",
      "predefinedType": "FLOOR",
      "storeyId": "storey-b01-okrd",
      "projectedSqm": 661.67,
      "countsAsGround": true,
      "evidence": "568.4 m² under 14 conditioned space footprint(s)",
      "excludedReason": null,
      "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#217027"
    },
    {
      "id": "slab-222535",
      "name": "Geschossdecke:STB 200 + WD 200:2751473",
      "elementType": "IfcSlab",
      "predefinedType": "FLOOR",
      "storeyId": "storey-b01-okrd",
      "projectedSqm": 0.44,
      "countsAsGround": false,
      "evidence": null,
      "excludedReason": "no conditioned space stands on it: no conditioned ground-storey footprint overlaps its shadow and no IfcRelSpaceBoundary names it",
      "ref": "ifc://FM_ARC_DigitalHub_with_SB_v1.ifc#222535"
    }
  ],
  "openingsFile": "openings.json",
  "serviceLayers": [
    {
      "id": "heating",
      "ko": "난방",
      "en": "Heating",
      "file": "heating.glb",
      "byteLength": 16995320,
      "triangleCount": 240377,
      "groups": [
        "valve",
        "plant",
        "terminal",
        "fitting",
        "duct",
        "valve-instanced",
        "terminal-instanced",
        "fitting-instanced",
        "plant-instanced"
      ],
      "elements": 1705,
      "distinctGeometries": 1578,
      "instancedShapes": 279,
      "instancedPlacements": 2547,
      "drawCalls": 284,
      "flow": {
        "file": "heating-flow.json",
        "ports": 3567,
        "connections": 1771,
        "directedEdges": 1706,
        "drawnEdges": 1706,
        "bidirectionalEdges": 65,
        "unresolvedConnections": 0,
        "ungeometried": 0,
        "unreachedEdges": 17,
        "plantNodes": 0,
        "supplySegments": 0,
        "returnSegments": 1689,
        "reason": null,
        "wavelengthM": 26
      }
    }
  ],
  "architecturalDetails": {
    "id": "details",
    "ko": "건축 상세",
    "en": "Architectural details",
    "file": "architectural-details.glb",
    "byteLength": 540896,
    "sha256": "bf68458ab0334cfb7c3fbd74802d67f9d1b7a138e7f168e03c67a20f38cd4a92",
    "triangleCount": 9360,
    "placedTriangleCount": 18552,
    "triangleCountBasis": "triangleCount stores each instanced shape once; placedTriangleCount includes every placement",
    "groups": [
      "column",
      "covering",
      "railing"
    ],
    "elements": 113,
    "distinctGeometries": 297,
    "instancedShapes": 7,
    "instancedPlacements": 773,
    "drawCalls": 10,
    "materials": 4,
    "sourceFiles": [
      {
        "role": "architectural",
        "fileName": "FM_ARC_DigitalHub_with_SB_v1.ifc",
        "sha256": "2e2da24f35b0a68ef74cf781d3671915691bcc1160bd22c78c78044adf310ffe",
        "types": [
          {
            "type": "IfcCovering",
            "candidates": 38,
            "rendered": 38,
            "withoutRenderedMesh": 0
          },
          {
            "type": "IfcRailing",
            "candidates": 13,
            "rendered": 13,
            "withoutRenderedMesh": 0
          },
          {
            "type": "IfcColumn",
            "candidates": 62,
            "rendered": 62,
            "withoutRenderedMesh": 0
          },
          {
            "type": "IfcFurnishingElement",
            "candidates": 0,
            "rendered": 0,
            "withoutRenderedMesh": 0
          }
        ]
      }
    ],
    "indexFile": "architectural-details-index.json",
    "indexSha256": "017631df61fdfe929e37449898746f1350f8946f450f1f2996a3ee6ceb9588e8",
    "appearance": "web-ifc tessellator RGBA, including possible default styles; no inferred finish textures. Metalness 0 and roughness 0.85 are renderer assumptions, not measured material properties.",
    "note": "Selected source IFC entity classes omitted from the core fabric layer. Original tessellated geometry and placements; repeated shapes use GPU instancing. Not a claim of complete architectural or fabrication detail. Existing services remain separate."
  },
  "mepCoverage": {
    "schemaVersion": 1,
    "status": "source_geometry_published",
    "publishedLayerIds": [
      "heating"
    ],
    "typedElementCount": 4028,
    "distributionPortCount": 8358,
    "sources": [
      {
        "role": "architectural",
        "fileName": "FM_ARC_DigitalHub_with_SB_v1.ifc",
        "sha256": "2e2da24f35b0a68ef74cf781d3671915691bcc1160bd22c78c78044adf310ffe",
        "schema": "IFC4",
        "typedElementCount": 0,
        "entitiesByType": {},
        "distributionPorts": 0,
        "systems": 0
      },
      {
        "role": "heating",
        "fileName": "FM_HZG_DigitalHub_v1.ifc",
        "sha256": "70a40f5d0782b53ae573b89cca8990f66b54b21229527daddd58e5dc2573fbb6",
        "schema": "IFC4",
        "typedElementCount": 1707,
        "entitiesByType": {
          "IfcSpaceHeater": 63,
          "IfcPipeSegment": 867,
          "IfcPipeFitting": 712,
          "IfcTank": 2,
          "IfcUnitaryEquipment": 1,
          "IfcValve": 54,
          "IfcPump": 6,
          "IfcSensor": 2
        },
        "distributionPorts": 3567,
        "systems": 36
      },
      {
        "role": "ventilation",
        "fileName": "FM_LFT_DigitalHub_v1.ifc",
        "sha256": "8647e24ea0c0e2f4188fad6222662c1004de55978f9a0d0e1190445e149dbd6c",
        "schema": "IFC4",
        "typedElementCount": 1309,
        "entitiesByType": {
          "IfcDamper": 18,
          "IfcFilter": 2,
          "IfcAirToAirHeatRecovery": 1,
          "IfcCoil": 2,
          "IfcInterceptor": 1,
          "IfcDuctSilencer": 2,
          "IfcAirTerminal": 148,
          "IfcDuctSegment": 594,
          "IfcDuctFitting": 538,
          "IfcHumidifier": 1,
          "IfcFan": 2
        },
        "distributionPorts": 2656,
        "systems": 8
      },
      {
        "role": "plumbing",
        "fileName": "FM_SAN_DigitalHub_v1.ifc",
        "sha256": "5d6b7998d9060626132f56010a75c238ebc00ed6b0f937f2c1db0ac46fbff87a",
        "schema": "IFC4",
        "typedElementCount": 1012,
        "entitiesByType": {
          "IfcSanitaryTerminal": 72,
          "IfcPipeSegment": 506,
          "IfcPipeFitting": 411,
          "IfcUnitaryEquipment": 16,
          "IfcWasteTerminal": 2,
          "IfcValve": 3,
          "IfcFlowMeter": 1,
          "IfcFilter": 1
        },
        "distributionPorts": 2135,
        "systems": 24
      }
    ],
    "summary": {
      "ko": "공개된 난방 IFC를 표시합니다. 원본 환기·급배수 IFC는 설비 레이어 300 드로우콜 상한을 넘어 목록에만 집계하고 형상은 공개하지 않습니다. 추정 MEP로 채우지 않습니다. 모델 간 중복 가능성이 있어 원본 요소 수를 설치 설비의 고유 개수로 해석하지 않습니다.",
      "en": "Published heating IFC is shown. Source ventilation and plumbing IFCs are inventoried but unpublished because their extracted service-layer draw-call counts exceed the 300 ceiling. No inferred MEP is added in their place. Source occurrence counts can overlap between models and are not unique installed equipment counts."
    },
    "limitations": [
      {
        "ko": "해시로 고정된 IFC 파일에서 해당 스키마의 설비 분류 상속을 확인한 요소 목록이며, 실제 설치 설비의 완전성 조사가 아닙니다.",
        "en": "Inventory of distribution occurrence classes using each pinned IFC file's schema inheritance, not a completeness survey of installed services."
      },
      {
        "ko": "분야별·수정본 모델 간 요소가 중복될 수 있으며 파일 간 설비 중복 제거는 하지 않았습니다.",
        "en": "Counts include overlapping discipline and revision models; there is no cross-file equipment deduplication."
      },
      {
        "ko": "일반 IfcBuildingElementProxy·IfcFurnishingElement는 원본 근거 없이 MEP로 분류하지 않습니다.",
        "en": "Generic IfcBuildingElementProxy and IfcFurnishingElement occurrences are not classified as MEP without source evidence."
      },
      {
        "ko": "환기·급배수 원본 IFC는 설비 레이어 300 드로우콜 상한을 넘어 형상으로 공개하지 않습니다. 난방은 상한 이하라 공개합니다. 추정 MEP로 대체하지 않습니다.",
        "en": "Ventilation and plumbing source IFCs are unpublished as geometry because their extracted service-layer draw-call counts exceed the 300 ceiling. Heating is under the ceiling and is published. No inferred MEP is substituted."
      }
    ]
  },
  "model": {
    "file": "model.glb",
    "byteLength": 8119368,
    "triangleCount": 129742,
    "groups": [
      "slab",
      "wall",
      "stair",
      "glazing",
      "door",
      "mullion"
    ],
    "note": "Building fabric only: walls, slabs, roofs and openings. Furniture, fixtures, railings and the structural frame are not in this file.",
    "serviceNote": "Service layers carry every component at the model's own geometry; a repeated shape is stored once and placed by instancing."
  },
  "invalidDiagnostics": {
    "note": "No space-boundary strips resolved in this file; there is no sum to refute.",
    "rawSumSqm": 0,
    "rawSumByElementType": {}
  },
  "galleryEvidence": {
    "generator": "build-gallery-catalogue.mjs:1",
    "spacesSha256": "fab75b77d5ced7ea6e168beeee61d516c5799c0e1a0314aee054101abb064a50",
    "spacesHashScope": "UTF-8 JSON.stringify of parsed spaces.json; independent of checkout line endings",
    "areaSources": [
      "NetFloorArea"
    ],
    "exclusions": [],
    "datums": [
      {
        "name": "E01_OKRD",
        "elevationM": 3.75,
        "rooms": 25,
        "roomAreaSqm": 797.34,
        "excludedSpaces": 0
      },
      {
        "name": "E00_OKRD",
        "elevationM": -0.15,
        "rooms": 20,
        "roomAreaSqm": 1380.6,
        "excludedSpaces": 0
      },
      {
        "name": "B01_OKRD",
        "elevationM": -3.37,
        "rooms": 14,
        "roomAreaSqm": 602.25,
        "excludedSpaces": 0
      }
    ]
  }
}
