{
  "kind": "bimfit_building_energy_dataset",
  "schemaVersion": "1.3.0",
  "id": "fzk-haus",
  "scope": "published_baseline",
  "isMetered": false,
  "meteredEnergy": null,
  "calibration": {
    "status": "not_calibrated",
    "observations": null
  },
  "building": {
    "name": {
      "ko": "FZK 하우스",
      "en": "FZK House"
    },
    "summary": {
      "ko": "KIT(카를스루에 공과대학교) IAI가 공개한 검증용 단독주택 표준 모델.",
      "en": "KIT's (Karlsruhe Institute of Technology) open validation single-family house."
    },
    "useType": "single_family_house",
    "modelContext": {
      "classification": "synthetic_example",
      "basis": "The publisher describes FZK Haus as a Simple Phantasy Building. Its declared IFC coordinates do not establish a real house at that location.",
      "sourceUrl": "https://www.ifcwiki.org/index.php?title=KIT_IFC_Examples"
    },
    "location": {
      "verifiedCoordinates": null,
      "ifcDeclaredLatitudeDeg": 49.100435,
      "ifcDeclaredLongitudeDeg": 8.436539,
      "locationIsAuthoringDefault": false,
      "note": "IfcSite coordinates recorded; not verified against any other source."
    },
    "modelCounts": {
      "storeys": 2,
      "spacesTotal": 7,
      "spacesFloor": 7,
      "assemblies": 4,
      "externalElements": 0,
      "exteriorWalls": 8,
      "windows": 11,
      "exteriorCurtainWalls": 0,
      "exteriorDoors": 2,
      "externalElementsNote": "36 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 the wall walk, not from boundaries, so nothing published depends on this."
    }
  },
  "source": {
    "sourceUrl": "https://www.ifcwiki.org/index.php?title=KIT_IFC_Examples",
    "licenceAsDeclared": "KIT/IAI unrestricted use (attribution required)",
    "attribution": "Institute for Automation and Applied Informatics (IAI), Karlsruhe Institute of Technology (KIT), \"AC20-FZK-Haus\" — https://www.ifcwiki.org/index.php?title=KIT_IFC_Examples",
    "attributionStatus": "stated",
    "files": [
      {
        "role": "architectural",
        "fileName": "AC20-FZK-Haus.ifc",
        "sha256": "70cc8ff245fc0894201d96496c031005a5cbd7a96b22d8a1b87c5a883fb77994",
        "byteLength": 2570803,
        "units": {
          "lengthToMetres": 1,
          "areaToSquareMetres": 1,
          "lengthUnitName": "METRE",
          "areaUnitName": "SQUARE_METRE",
          "lengthAssumed": false,
          "areaAssumed": false
        }
      }
    ],
    "extractedAt": "2026-09-04T00:00:00.000Z",
    "manifestUrl": "/reference-buildings/fzk-haus/manifest.json",
    "statedPhysics": null,
    "transformations": "IFC quantities/solids extracted by build-reference-building; baseline inputs adapted by reference-buildings/energy-inputs; screening outputs computed at export."
  },
  "modelGeometry": {
    "artifactBaseUrl": "/reference-buildings/fzk-haus/",
    "architecturalDetails": {
      "id": "details",
      "ko": "건축 상세",
      "en": "Architectural details",
      "file": "architectural-details.glb",
      "byteLength": 84388,
      "sha256": "68fa5a1992ab9bbcec0c40dd927b0ba52a3d43ec87006984156184815235a75d",
      "triangleCount": 1832,
      "placedTriangleCount": 7824,
      "triangleCountBasis": "triangleCount stores each instanced shape once; placedTriangleCount includes every placement",
      "groups": [
        "beam",
        "railing"
      ],
      "elements": 6,
      "distinctGeometries": 8,
      "instancedShapes": 2,
      "instancedPlacements": 16,
      "drawCalls": 4,
      "materials": 2,
      "sourceFiles": [
        {
          "role": "architectural",
          "fileName": "AC20-FZK-Haus.ifc",
          "sha256": "70cc8ff245fc0894201d96496c031005a5cbd7a96b22d8a1b87c5a883fb77994",
          "types": [
            {
              "type": "IfcBeam",
              "candidates": 4,
              "rendered": 4,
              "withoutRenderedMesh": 0
            },
            {
              "type": "IfcRailing",
              "candidates": 2,
              "rendered": 2,
              "withoutRenderedMesh": 0
            }
          ]
        }
      ],
      "indexFile": "architectural-details-index.json",
      "indexSha256": "fa37f7d73294556a0cd3a0c016a86d9b2e5a33cd69bf52fa3161819c43f32377",
      "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."
    },
    "materialFabric": {
      "file": "material-fabric.glb",
      "byteLength": 305176,
      "sha256": "ed2fc17d106a45f86e4500ceb7823add9f021074d3ef0399692e3a68d17d03fb",
      "indexFile": "material-fabric-index.json",
      "indexSha256": "fd61c19f8408bb8f85d38e726cf96c061447520b9416e08b1f1321b7f7995172",
      "elements": 76,
      "triangleCount": 12262,
      "placedTriangleCount": 13778,
      "drawCalls": 12,
      "bindings": [
        {
          "key": "slab__architectural_34527",
          "group": "slab",
          "sourceRole": "architectural",
          "status": "layer_set",
          "assemblyRef": "ifc://AC20-FZK-Haus.ifc#34527",
          "materialRef": "ifc://AC20-FZK-Haus.ifc#34530",
          "materialNames": [
            "Stahlbeton 65690"
          ],
          "relationRef": "ifc://AC20-FZK-Haus.ifc#34531",
          "basis": "occurrence",
          "assemblyName": "Stahlbeton 65690 0.2",
          "representativeLayer": {
            "name": "Stahlbeton 65690",
            "thicknessM": 0.2,
            "ref": "ifc://AC20-FZK-Haus.ifc#34526"
          },
          "elements": 1
        },
        {
          "key": "slab__architectural_59316",
          "group": "slab",
          "sourceRole": "architectural",
          "status": "layer_set",
          "assemblyRef": "ifc://AC20-FZK-Haus.ifc#59316",
          "materialRef": "ifc://AC20-FZK-Haus.ifc#59319",
          "materialNames": [
            "Solid 397409098"
          ],
          "relationRef": "ifc://AC20-FZK-Haus.ifc#59320",
          "basis": "occurrence",
          "assemblyName": "Solid 397409098 0.2",
          "representativeLayer": {
            "name": "Solid 397409098",
            "thicknessM": 0.2,
            "ref": "ifc://AC20-FZK-Haus.ifc#59315"
          },
          "elements": 3
        },
        {
          "key": "wall__architectural_15069",
          "group": "wall",
          "sourceRole": "architectural",
          "status": "layer_set",
          "assemblyRef": "ifc://AC20-FZK-Haus.ifc#15069",
          "materialRef": "ifc://AC20-FZK-Haus.ifc#15072",
          "materialNames": [
            "Leichtbeton 102890359"
          ],
          "relationRef": "ifc://AC20-FZK-Haus.ifc#15074",
          "basis": "occurrence",
          "assemblyName": "Leichtbeton 102890359 0.24",
          "representativeLayer": {
            "name": "Leichtbeton 102890359",
            "thicknessM": 0.24,
            "ref": "ifc://AC20-FZK-Haus.ifc#15067"
          },
          "elements": 5
        },
        {
          "key": "wall__architectural_21971",
          "group": "wall",
          "sourceRole": "architectural",
          "status": "layer_set",
          "assemblyRef": "ifc://AC20-FZK-Haus.ifc#21971",
          "materialRef": "ifc://AC20-FZK-Haus.ifc#21974",
          "materialNames": [
            "Leichtbeton 102890359"
          ],
          "relationRef": "ifc://AC20-FZK-Haus.ifc#21975",
          "basis": "occurrence",
          "assemblyName": "Leichtbeton 102890359 0.3",
          "representativeLayer": {
            "name": "Leichtbeton 102890359",
            "thicknessM": 0.3,
            "ref": "ifc://AC20-FZK-Haus.ifc#21970"
          },
          "elements": 8
        },
        {
          "key": "stair__architectural_14521",
          "group": "stair",
          "sourceRole": "architectural",
          "status": "single_material",
          "assemblyRef": null,
          "materialRef": "ifc://AC20-FZK-Haus.ifc#14521",
          "materialNames": [
            "Holz"
          ],
          "relationRef": "ifc://AC20-FZK-Haus.ifc#14528",
          "basis": "occurrence",
          "assemblyName": null,
          "representativeLayer": null,
          "elements": 1
        },
        {
          "key": "glazing__architectural_17475",
          "group": "glazing",
          "sourceRole": "architectural",
          "status": "unsupported",
          "assemblyRef": null,
          "materialRef": "ifc://AC20-FZK-Haus.ifc#17475",
          "materialNames": [],
          "relationRef": "ifc://AC20-FZK-Haus.ifc#17477",
          "basis": "occurrence",
          "assemblyName": null,
          "representativeLayer": null,
          "elements": 9
        },
        {
          "key": "glazing__architectural_unassigned",
          "group": "glazing",
          "sourceRole": "architectural",
          "status": "unassigned",
          "assemblyRef": null,
          "materialNames": [],
          "relationRef": null,
          "basis": null,
          "assemblyName": null,
          "representativeLayer": null,
          "elements": 2
        },
        {
          "key": "door__architectural_17475",
          "group": "door",
          "sourceRole": "architectural",
          "status": "unsupported",
          "assemblyRef": null,
          "materialRef": "ifc://AC20-FZK-Haus.ifc#17475",
          "materialNames": [],
          "relationRef": "ifc://AC20-FZK-Haus.ifc#17477",
          "basis": "occurrence",
          "assemblyName": null,
          "representativeLayer": null,
          "elements": 3
        },
        {
          "key": "door__architectural_unassigned",
          "group": "door",
          "sourceRole": "architectural",
          "status": "unassigned",
          "assemblyRef": null,
          "materialNames": [],
          "relationRef": null,
          "basis": null,
          "assemblyName": null,
          "representativeLayer": null,
          "elements": 2
        },
        {
          "key": "mullion__architectural_35176",
          "group": "mullion",
          "sourceRole": "architectural",
          "status": "single_material",
          "assemblyRef": null,
          "materialRef": "ifc://AC20-FZK-Haus.ifc#35176",
          "materialNames": [
            "Solid"
          ],
          "relationRef": "ifc://AC20-FZK-Haus.ifc#35177",
          "basis": "occurrence",
          "assemblyName": null,
          "representativeLayer": null,
          "elements": 42
        }
      ],
      "appearanceBasis": "IFC occurrence or type material association. For a layer set, the thickest stated layer is used as an illustrative representative, not as the verified exterior finish. Source layer order does not establish installation direction. Unreviewed material names remain neutral. Glazing retains its base role appearance."
    },
    "mepCoverage": {
      "schemaVersion": 1,
      "status": "no_typed_mep_occurrences",
      "publishedLayerIds": [],
      "typedElementCount": 0,
      "distributionPortCount": 0,
      "sources": [
        {
          "role": "architectural",
          "fileName": "AC20-FZK-Haus.ifc",
          "sha256": "70cc8ff245fc0894201d96496c031005a5cbd7a96b22d8a1b87c5a883fb77994",
          "schema": "IFC4",
          "typedElementCount": 0,
          "entitiesByType": {},
          "distributionPorts": 0,
          "systems": 0
        }
      ],
      "summary": {
        "ko": "제공된 IFC에는 분류된 MEP 요소와 배관·덕트 포트가 없습니다. 일반 가구·프록시는 설비로 추정하지 않습니다.",
        "en": "The supplied IFC contains no typed MEP elements or distribution ports. Generic furniture and proxies are not interpreted as services."
      },
      "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."
        }
      ]
    },
    "serviceLayers": [],
    "scope": "Source geometry and occurrence inventory only. Geometry does not establish installed thermal performance, system connectivity or operating efficiency; energy inputs are recorded separately."
  },
  "measuredEnvelope": {
    "basis": "Measurements of model geometry and quantities; not on-site measurements.",
    "floorArea": {
      "value": 208.55,
      "unit": "m2",
      "status": "measured_from_model",
      "sourceField": "areas.totalFloorAreaSqm",
      "scope": "Extracted model elements; completeness and physical as-built accuracy are not certified."
    },
    "opaqueWallNetArea": {
      "value": 136.28,
      "unit": "m2",
      "status": "measured_from_model",
      "sourceField": "areas.exteriorWallNetSqm",
      "scope": "Extracted model elements; completeness and physical as-built accuracy are not certified."
    },
    "glazingApertureArea": {
      "value": 23.6,
      "unit": "m2",
      "status": "measured_from_model",
      "sourceField": "areas.glazingApertureSqm",
      "scope": "Counted openings selected by the extractor's host-wall and envelope rules; excluded and unresolved openings are not in this sum.",
      "coverage": "selected_opening_scope_not_certified_complete"
    },
    "exteriorDoorArea": {
      "value": 6.8,
      "unit": "m2",
      "status": "measured_from_model",
      "sourceField": "areas.exteriorDoorSqm",
      "scope": "Counted exterior door leaves selected by the extractor; not every IfcDoor or IsExternal flag.",
      "coverage": "selected_opening_scope_not_certified_complete"
    },
    "roofElementSurfaceSum": {
      "value": 171.13,
      "unit": "m2",
      "status": "measured_from_model",
      "sourceField": "areas.roofSurfaceSqm",
      "scope": "Sum of each roof element's one-sheet surface; different roof layers/elements may overlap. Not the selected outer-envelope roof area used by the energy model."
    },
    "roofFamilyProjectedSum": {
      "value": 143,
      "unit": "m2",
      "status": "measured_from_model",
      "sourceField": "areas.roofProjectedSqm",
      "scope": "Sum of plan unions by roof family; different families may overlap. Not a single union across the building."
    },
    "roofPlanUnion": {
      "value": 143,
      "unit": "m2",
      "status": "measured_from_model",
      "sourceField": "areas.roofUnionSqm",
      "scope": "One plan union across all counted roof elements, irrespective of family."
    },
    "groundContactArea": {
      "value": 120,
      "unit": "m2",
      "status": "measured_from_model",
      "sourceField": "areas.groundSlabSqm",
      "scope": "Extracted model elements; completeness and physical as-built accuracy are not certified."
    },
    "groundExposedPerimeter": {
      "value": 44,
      "unit": "m",
      "status": "measured_from_model",
      "sourceField": "areas.groundPerimeterM",
      "scope": "Outer ring length of the selected slab union. Slab gaps/fragmentation can increase it; this is not independently verified thermal exposure. Read the ground-coupling assumption."
    },
    "conditionedGrossVolume": {
      "value": 636.66,
      "unit": "m3",
      "status": "measured_from_model",
      "sourceField": "areas.conditionedVolumeGrossM3",
      "scope": "Extracted model elements; completeness and physical as-built accuracy are not certified."
    },
    "netRoomVolume": {
      "value": 470.82,
      "unit": "m3",
      "status": "measured_from_model",
      "sourceField": "areas.roomVolumeNetM3",
      "scope": "Extracted model elements; completeness and physical as-built accuracy are not certified."
    },
    "wallByOrientationSqm": {
      "N": 0,
      "NE": 39.56,
      "E": 0,
      "SE": 28.85,
      "S": 0,
      "SW": 37.23,
      "W": 0,
      "NW": 30.63
    },
    "glazingByOrientationSqm": {
      "N": 0,
      "NE": 5.8,
      "E": 0,
      "SE": 4.8,
      "S": 0,
      "SW": 5.8,
      "W": 0,
      "NW": 7.2
    },
    "doorsByOrientationSqm": {
      "N": 0,
      "NE": 0,
      "E": 0,
      "SE": 4.77,
      "S": 0,
      "SW": 2.03,
      "W": 0,
      "NW": 0
    },
    "orientation": {
      "trueNorthDeg": 50,
      "northAssumed": false,
      "weakOutwardCount": 0,
      "offCardinalCount": 8,
      "offCardinalSqm": 136.28,
      "wallCount": 8,
      "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."
    },
    "openingRecordsUrl": "/reference-buildings/fzk-haus/openings.json",
    "extractionNotes": {
      "floor": null,
      "openings": "Glazing aperture 23.6 m² = 11 IfcWindow at OverallWidth × OverallHeight (23.6 m²). Exterior doors are separate — a door is aperture, not glazing: 2 IfcDoor, 6.8 m², OverallWidth × OverallHeight. Host wall by IfcRelFillsElement → IfcOpeningElement → IfcRelVoidsElement (13 openings). 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 (7 of 7 have geometry); this file has no IfcCurtainWall; 3 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 0 door(s) here; 0 confirm against an exterior wall. Rows in openings.json.",
      "roof": "Plan shadow per element (union of its projected triangles, ifc-plan-shadow.mjs): 2 elements — 2 IfcSlab.PredefinedType=ROOF. roofProjectedSqm sums 2 roof type(s), each as the union of its elements; the elements themselves sum to 143 m² (elements of one type overlapping in plan) and all types together cover 143 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 171.13 m²; a flat deck's surface equals its shadow, a pitched roof's exceeds it. Dach-1 and Dach-2 are IfcSlab typed PredefinedType=ROOF directly, so classifyRoofs matches them with no nameMatch list. Slab-033 (PredefinedType=FLOOR, the 2.7 m mezzanine floor under the Galerie) is correctly excluded as an interior floor, not envelope.",
      "ground": "IfcSlab (not ROOF or LANDING) on storeys at or below Erdgeschoss (0 m): 1 candidate(s). A slab counts as ground envelope when a conditioned space stands on it — its shadow overlaps a conditioned ground-storey space footprint (6 of 6 such spaces have one: 6 solid) or an IfcRelSpaceBoundary names it as bounding one. IsExternal is not consulted. 1 counted, 0 excluded. groundSlabSqm is the union of the counted shadows (they sum to 120 m²; stacked build-up layers count once); groundPerimeterM is the outline's outer ring.",
      "volume": "Gross from 7 spaces (floor area × storey height; voids, and rooms taller than their storey with no void above, as their own solids); net from 7 spaces (7 from stated volume quantity). A closed tessellation's signed volume is exact."
    },
    "opaqueFacadeScope": null
  },
  "modelInputs": {
    "provenance": "mixed_model_measurements_and_named_assumptions",
    "measurementState": "complete",
    "scopeNotice": null,
    "pendingMeasurements": [],
    "pendingMeasurementReconciliation": [],
    "recipe": {
      "facade": {
        "windowWidth": 1.4,
        "windowHeight": 1.6,
        "sillHeight": 0.8,
        "windowSpacing": 2.2,
        "windowRatio": 0.3,
        "mullionDepth": 0.06,
        "mullionWidth": 0.05,
        "glassInset": 0.03,
        "solidPanelChance": 0.15,
        "parapetHeight": 0.9,
        "cornerInset": 0.05
      },
      "slab": {
        "thickness": 0.2,
        "overhang": 0
      },
      "column": {
        "spacing": 6,
        "size": 0.4,
        "inset": 0
      },
      "roof": {
        "type": "flat",
        "flatThickness": 0.3,
        "gableHeight": 3,
        "hipInset": 0.4
      },
      "materials": {
        "wall": {
          "color": "#A05030",
          "roughness": 0.9,
          "metalness": 0,
          "visualId": "concrete-cast"
        },
        "glass": {
          "color": "#88BBDD",
          "roughness": 0.1,
          "metalness": 0.3,
          "transparent": true,
          "opacity": 0.4,
          "emissive": "#334455",
          "emissiveIntensity": 0.15,
          "visualId": "glass-tinted"
        },
        "mullion": {
          "color": "#808890",
          "roughness": 0.4,
          "metalness": 0.6,
          "visualId": "metal-aluminum"
        },
        "slab": {
          "color": "#A05030",
          "roughness": 0.9,
          "metalness": 0,
          "visualId": "concrete-polished"
        },
        "column": {
          "color": "#A05030",
          "roughness": 0.9,
          "metalness": 0,
          "visualId": "concrete-precast"
        },
        "roof": {
          "color": "#808080",
          "roughness": 0.8,
          "metalness": 0.1,
          "visualId": "roof-membrane"
        },
        "groundFloor": {
          "color": "#A0A098",
          "roughness": 0.8,
          "metalness": 0.05,
          "visualId": "concrete-cast"
        }
      },
      "era": "2000-2009",
      "buildingName": "FZK Haus",
      "address": "Eggenstein-Leopoldshafen, Germany (derived from IfcSite RefLatitude/RefLongitude, 49.100435N 8.436539E — Forschungszentrum Karlsruhe / KIT Campus North, the model's own naming institution. IfcPostalAddress states no town; the place name is read from the coordinate, not from a stated address).",
      "footprintWidth": 10.07,
      "footprintDepth": 10.07,
      "officialFloorAreaSqm": 208.55,
      "floors": [
        {
          "floorNo": 1,
          "label": "1F — Erdgeschoss",
          "type": "above",
          "y": 0,
          "height": 2.7,
          "isGroundFloor": true,
          "useCode": "01000"
        },
        {
          "floorNo": 2,
          "label": "2F — Dachgeschoss (Galerie)",
          "type": "above",
          "y": 2.7,
          "height": 3.3899999999999997,
          "isGroundFloor": false,
          "useCode": "01000"
        }
      ],
      "totalHeight": 6.09,
      "wallThickness": 0.3,
      "mainPurpsCd": "01000",
      "strctCd": "21",
      "siteWidth": 10.07,
      "siteDepth": 10.07,
      "measuredEnvelope": {
        "planAreaSqm": 120,
        "wallLengthM": 44,
        "grossWallAreaSqm": 166.68,
        "roofAreaSqm": 171.13,
        "volumeM3": 636.66,
        "derivedFloorAreaSqm": 208.55,
        "basis": "Wall, glazing, door, roof, ground and volume areas are read from the FZK Haus IFC by scripts/build-reference-building.mjs (name-matched exterior wall walk against stated NetSideArea, IfcSpace stated quantities, per-element roof shadows, the ground slab's shadow union). U-values are the file's own stated ThermalTransmittance per element, not solved from generic-library layers, except the ground floor, where ISO 13370 replaces the file's air-to-air figure."
      }
    },
    "materials": {
      "source": "ifc-model",
      "confidence": "measured",
      "codeYear": 2005,
      "envelope": {
        "walls": [
          {
            "orientation": "N",
            "uValue": 0.4,
            "rValue": 2.5,
            "layers": [
              {
                "name": "Leichtbeton (lightweight concrete)",
                "thickness": 0.3,
                "thermalConductivity": 0.16,
                "density": 500,
                "specificHeat": 1000
              }
            ],
            "thermalBridge": 0,
            "surfaceArea": 39.56
          },
          {
            "orientation": "E",
            "uValue": 0.4,
            "rValue": 2.5,
            "layers": [
              {
                "name": "Leichtbeton (lightweight concrete)",
                "thickness": 0.3,
                "thermalConductivity": 0.16,
                "density": 500,
                "specificHeat": 1000
              }
            ],
            "thermalBridge": 0,
            "surfaceArea": 28.85
          },
          {
            "orientation": "S",
            "uValue": 0.4,
            "rValue": 2.5,
            "layers": [
              {
                "name": "Leichtbeton (lightweight concrete)",
                "thickness": 0.3,
                "thermalConductivity": 0.16,
                "density": 500,
                "specificHeat": 1000
              }
            ],
            "thermalBridge": 0,
            "surfaceArea": 37.23
          },
          {
            "orientation": "W",
            "uValue": 0.4,
            "rValue": 2.5,
            "layers": [
              {
                "name": "Leichtbeton (lightweight concrete)",
                "thickness": 0.3,
                "thermalConductivity": 0.16,
                "density": 500,
                "specificHeat": 1000
              }
            ],
            "thermalBridge": 0,
            "surfaceArea": 30.63
          }
        ],
        "roof": {
          "uValue": 0.3,
          "layers": [
            {
              "name": "Solid (roof deck, unidentified material)",
              "thickness": 0.2,
              "thermalConductivity": 0.6666666666666667,
              "density": 1000,
              "specificHeat": 1000
            }
          ],
          "solarReflectance": 0.3,
          "emissivity": 0.9,
          "greenRoofCoverage": 0
        },
        "groundFloor": {
          "uValue": 0.6664887260853198,
          "layers": [
            {
              "name": "Stahlbeton (reinforced concrete)",
              "thickness": 0.2,
              "thermalConductivity": 2.3,
              "density": 2400,
              "specificHeat": 880
            }
          ],
          "groundContactResistance": 0
        },
        "windows": {
          "uValue": 1.4,
          "shgc": 0.6,
          "vlt": 0.7,
          "glassType": "double",
          "coating": "none",
          "gasFill": "air",
          "frameMaterial": "wood",
          "airLeakageRate": 0.3,
          "shadingCoefficient": 0.69,
          "windowToWallRatio": {
            "N": 0.1415886729061675,
            "S": 0.1415886729061675,
            "E": 0.1415886729061675,
            "W": 0.1415886729061675
          }
        },
        "foundation": {
          "perimeterInsulationUValue": 0,
          "groundTemperature": 13.5,
          "moistureBarrier": "none"
        },
        "airtightness": {
          "ach50": 6,
          "equivalentLeakageArea": 0,
          "testMethod": "estimated"
        }
      },
      "hvac": {
        "heating": {
          "systemType": "individual",
          "fuelType": "gas",
          "efficiency": 0.87,
          "capacity": 0
        },
        "cooling": {
          "systemType": "split",
          "efficiency": 3.5,
          "capacity": 0
        },
        "ventilation": {
          "type": "natural",
          "heatRecoveryEfficiency": 0,
          "airflowRate": 0
        },
        "dhw": {
          "systemType": "gas-boiler",
          "efficiency": 0.85,
          "storageVolume": 0
        }
      },
      "lighting": {
        "lightingPowerDensity": 6,
        "controlType": "manual",
        "lampType": "led"
      },
      "renewable": {
        "solarPV": {
          "installed": false,
          "capacity": 0,
          "panelType": "monocrystalline",
          "tiltAngle": 0,
          "orientation": 0,
          "area": 0
        },
        "solarThermal": {
          "installed": false,
          "collectorArea": 0,
          "efficiency": 0
        },
        "geothermal": {
          "installed": false,
          "systemType": "closed-loop",
          "cop": 0
        }
      },
      "occupancy": {
        "occupancyDensity": 0.04,
        "weekdaySchedule": [
          1,
          1,
          1,
          1,
          1,
          1,
          0.9,
          0.7,
          0.4,
          0.3,
          0.3,
          0.3,
          0.3,
          0.3,
          0.3,
          0.4,
          0.6,
          0.8,
          0.9,
          1,
          1,
          1,
          1,
          1
        ],
        "weekendSchedule": [
          1,
          1,
          1,
          1,
          1,
          1,
          1,
          0.9,
          0.8,
          0.7,
          0.6,
          0.6,
          0.6,
          0.6,
          0.6,
          0.6,
          0.7,
          0.8,
          0.9,
          1,
          1,
          1,
          1,
          1
        ],
        "internalHeatGain": 3,
        "hotWaterDemand": 40
      }
    },
    "metadataScope": "Legacy source/confidence fields describe the adapter as a whole. They do not mean that every thermal, system, occupancy or geometry input is measured. Read the assumption and pending-measurement records.",
    "engineEnvelope": {
      "source": "measured",
      "planAreaSqm": 120,
      "wallLengthM": 44,
      "grossWallAreaSqm": 166.68,
      "roofAreaSqm": 171.13,
      "volumeM3": 636.66,
      "derivedFloorAreaSqm": 208.55,
      "intensityFloorAreaSqm": 208.55
    },
    "engineEnvelopeProvenance": "derived_from_model_with_scope_assumptions",
    "energyInputRoofCategory": {
      "type": "gable",
      "read": "2 roof rows · Dach-1 85.56 m² at 30.0° + Dach-2 85.56 m² at 30.0° → area-weighted 30.0° over the 171.13 m² priced"
    },
    "exteriorDoorAreaSqm": 6.8
  },
  "assumptions": [
    {
      "id": "A-STATED-U-PRIMARY",
      "assumes": "Wall (0.4), window (1.4), exterior door (1.4) and roof (0.3 W/m²K) U-values are the file's own stated IfcPropertySingleValue 'ThermalTransmittance', used directly rather than solved from a generic-material layer substitution.",
      "why": "This is the first reference building here where every relevant element states a real, non-zero, per-element U — the Clinic states none and Schependomlaan's 97 are all a documented zero. The wall's layer-solved cross-check (FZK_HAUS_WALL_ASSEMBLY_SOLVED, U 0.489) disagrees with the stated 0.4 by 22%, and the roof's material is named 'Solid' — an ArchiCAD placeholder with no identifiable conductivity at all, so for the roof there is nothing to solve a second reading from. The stated value is closer to the file's own intent than a generic-library substitution would be, and is used everywhere except the ground floor."
    },
    {
      "id": "A-GROUND-STATED-U-NOT-AIR-TO-AIR",
      "assumes": "The ground floor's engine U is the ISO-13370-solved value (see FZK_HAUS_GROUND_FLOOR), NOT the file's own stated 0.4 W/m²K on Bodenplatte.",
      "why": "A stated ThermalTransmittance on a ground slab is an ordinary air-to-air figure — exactly the Clinic's own headline defect (a slab on grade has no air-to-air U; the ground assumes a semi-infinite soil path, ISO 6946 does not model it). Using 0.4 directly here would repeat that error in a new building. The slab's own stated layer (0.2 m reinforced concrete, R_f 0.087 m²K/W, no insulation board of any kind) feeds ISO 13370 instead, at the slab's real measured area (120 m²) and exposed perimeter (44 m)."
    },
    {
      "id": "A-GALERIE-GROSS-VOLUME-ARTEFACT",
      "assumes": "The Galerie's net room volume is 217.53 m³ (its own stated NetVolume, exact match to its closed-solid mesh), not the 428.64 m³ its Qto's GrossVolume states (= 107.16 m² x a flat, apparently manually-set 4.0 m 'Height' property, disconnected from the actual pitched-roof geometry).",
      "why": "The build script's net-must-not-exceed-gross guard caught this: 428.64 > 362.92 (the space's own bounding-box-derived gross), and 362.92 itself exceeds the space's true closed-solid volume of 217.53. Traced to scripts/lib/ifc-envelope.mjs's quantityIndex(), which took the FIRST IfcQuantityVolume in the set — GrossVolume, listed before NetVolume in this file's Qto_SpaceBaseQuantities — the same 'whichever comes first' shape this codebase has already named and fixed for wall areas (statedWallAreas matching NetSideArea by name). Fixed 2026-09-06 by preferring a quantity NAMED NetVolume where one exists; the fallback for every other building's Qto, which states no such name, is unchanged. Verified: rebuilding the Clinic before/after the fix is byte-for-byte identical (the fix is a no-op there); rebuilding Schependomlaan moves its roomVolumeNetM3 from 2530.05 to 2497.61 (real IfcSpace rows in that file also had a same-named NetVolume this repo was not reading) — that rebuild is not shipped by this lane; it is main-coordinator's call when Schependomlaan's committed artifacts are next regenerated."
    },
    {
      "id": "A-WALL-LEICHTBETON-LAMBDA",
      "assumes": "'Leichtbeton' (lightweight concrete) maps to the standards library's autoclaved-lightweight-concrete row (st-lwc, λ 0.16 W/mK, 500 kg/m³).",
      "why": "The IFC material name carries no conductivity of its own — GENERIC_MATERIALS has no exact 'Leichtbeton' row, and st-lwc is the nearest category and density match. Used only for the disclosed cross-check (A-STATED-U-PRIMARY); it does not drive the engine's wall U."
    },
    {
      "id": "A-ROOF-MATERIAL-UNIDENTIFIED",
      "assumes": "The roof deck's 0.2 m 'Solid' material layer has no identifiable conductivity and no cross-check is attempted.",
      "why": "'Solid' is an ArchiCAD generic-object placeholder name, not a material specification — unlike the wall's 'Leichtbeton' or the slab's 'Stahlbeton', it names no physical substance. Inventing a λ to back-solve the stated 0.3 W/m²K would launder a made-up material as measured; the layer thickness (0.2 m, real) is recorded and the material identity is not."
    },
    {
      "id": "A-GROUND-NO-INSULATION",
      "assumes": "The ground slab (Bodenplatte) has exactly one stated layer — 0.2 m reinforced concrete — and no insulation board beneath it.",
      "why": "The file's own IfcMaterialLayerSet for this slab (setId 34527) lists one layer, Stahlbeton 65690 at 0.2 m. Nothing else is added: an uninsulated slab is a real, if dated, German construction detail, and inventing an insulation layer the file does not state would move the ground U in the flattering direction with no basis."
    },
    {
      "id": "A-SOIL",
      "assumes": "Soil conductivity 2.0 W/m·K under the slab (ISO 13370's own default).",
      "why": "Soil is never in a drawing set, and this is the same default used for the Clinic and Schependomlaan, for the same reason."
    },
    {
      "id": "A-GLAZING-SHGC",
      "assumes": "SHGC 0.60, VLT 0.70, double glazing, no low-e coating, air fill.",
      "why": "The file states window U (1.4 W/m²K, whole-window) and dimensions, and nothing about the glass composition. 1.4 is consistent with an ordinary (non-low-e) double unit rather than an HR++ unit, which typically reaches 1.1-1.2 — the SHGC/VLT/coating fields follow that reading rather than assuming a better pane than the U-value implies."
    },
    {
      "id": "A-DOORS",
      "assumes": "The 6.80 m² of exterior door leaves (Haustuer, Terrassentuer) are priced at their own stated U 1.4 W/m²K, same as the windows.",
      "why": "Unlike Schependomlaan and the Clinic, this file states a door U directly — Haustuer and Terrassentuer each carry ThermalTransmittance 1.4, identical to the windows' figure. Used as stated; no substitution needed."
    },
    {
      "id": "A-NORTH-ROTATED",
      "assumes": "The IFC states a 50-degree true-north rotation. All eight exterior walls occupy diagonal sectors NE/SE/SW/NW; true cardinal sectors are empty.",
      "why": "The energy interface has four internal slots, so NE maps to N, SE to E, SW to S and NW to W to preserve its data shape. orientationLabels keeps the visible compass names NE/SE/SW/NW. The annual engine uses a whole-building mean WWR and no directional solar calculation; the full eight-sector measurements remain in the manifest."
    },
    {
      "id": "A-WWR-ENGINE-MEAN",
      "assumes": "All four cardinal ratios handed to MaterialProperties are the single whole-building 0.1416 (23.6 / 166.68), not the four measured per-sector ratios.",
      "why": "Measured through the real engine on 2026-09-06, following bim-83's finding on the Duplex that the obvious next step — hand `meanWindowToWallRatio` the real per-sector split — is wrong. The weight is `walls[].surfaceArea`, which is NET opaque wall, while each ratio's own denominator is that sector's GROSS wall (wall+glazing+door); they do not cancel. Weighted by net wall this building's four real ratios (0.1279/0.1249/0.1287/0.1903) give a mean of 0.141506 and a window area of 22.996 m² against the measured 23.6 m² — small here (this building's four ratios span only 0.125-0.190) but the same-shaped error bim-83 measured at 10x the size on the Duplex, whose ratios span 0.10-0.37. Weighting instead by GROSS wall reproduces the aperture exactly — Σ(rᵢ·grossᵢ)/Σgrossᵢ ≡ Σglazing/Σgross is an identity, not a coincidence — but gross is not what `surfaceArea` is used for elsewhere (it sizes the wall-insulation retrofit measure as opaque wall). So one ratio is used, against gross, and it reproduces the measured aperture by construction; the four measured per-sector ratios stay in FZK_HAUS_WALL_BY_SECTOR_SQM/_GLAZING_BY_SECTOR_SQM/_DOOR_BY_SECTOR_SQM for the legend, the only present consumer that can do anything with four different numbers."
    },
    {
      "id": "A-HVAC",
      "assumes": "Individual gas heating at η 0.87, split-system cooling at COP 3.5, natural ventilation, gas DHW at η 0.85 — the repo's own 01000 (단독주택) row (korean-building-codes.ts).",
      "why": "The file has no MEP model of any kind — no HVAC, electrical or plumbing IFC exists for this building at all (unlike the Clinic and the Duplex, both of which carry real services models). Rather than invent a residential system from nothing, this takes the Korean code table's own single-family-house row, exactly as A-CLIMATE already substitutes a Korean climate for this building's real German site."
    },
    {
      "id": "A-LPD",
      "assumes": "Lighting power density 6 W/m², manual control, LED lamps — the repo's own 01000 row.",
      "why": "The file states no lighting load and no luminaire. Same substitution pattern as Schependomlaan's A-LPD, using this building's own nearest Korean use-code row rather than inventing a figure."
    },
    {
      "id": "A-OCCUPANCY",
      "assumes": "0.04 persons/m² (the 01000 row), residential day/night schedules, internal gain 3 W/m², hot water 40 L/person/day.",
      "why": "No occupancy data exists in a coordination model with no services and no COBie schedules. At 0.04 persons/m² over 208.55 m² this reads about 8.3 people — plausible for a single-family test house sized around 5-6 rooms (Schlafzimmer, Buero, Wohnen, Küche, Bad, Flur, Galerie)."
    },
    {
      "id": "A-AIRTIGHT",
      "assumes": "ACH50 = 6 (a dated, uninsulated-envelope default), no blower-door result exists.",
      "why": "No airtightness test or stated infiltration rate exists in the file. 6 ACH50 is a conservative figure for construction consistent with the stated U-values (wall 0.4, uninsulated ground slab) — closer to WSchV-1995-era airtightness expectations than a modern Passivhaus-adjacent figure. The engine divides by 20 to reach a natural rate of 0.30 h⁻¹, the same conversion this repo already regression-tests."
    },
    {
      "id": "A-VOLUME",
      "assumes": "The ventilation term uses the gross conditioned volume, 636.66 m³, not the 470.82 m³ the corrected room solids sum to.",
      "why": "The file states no single building-wide volume; both figures are measured (the gross from floor area x storey height, with the Galerie's own solid as the top storey's own solid since the storey has nothing above it; the net from each space's own stated NetVolume). Gross is what an infiltration rate is defined against — everything inside the air barrier."
    },
    {
      "id": "A-CLIMATE",
      "assumes": "A Korean climate (Seoul) for a German building.",
      "why": "The site coordinate is genuinely stated and precise (49.100435N 8.436539E, to the arc-second, plotting to Forschungszentrum Karlsruhe / KIT Campus North) — unlike the Clinic (unknown site) this building's location is known but, like Schependomlaan, unusable: the engine's regional table is Korean-only. Karlsruhe is milder than Seoul in winter and has a smaller cooling load in summer, so a Seoul climate should push this building's modelled demand up on both counts."
    },
    {
      "id": "A-NO-FOOTPRINT",
      "assumes": "The recipe's footprint is a 10.07 m square (sqrt of the ground storey's 101.39 m²).",
      "why": "Same shape as Schependomlaan's A-NO-FOOTPRINT: the manifest states no plan outline as a polygon, only per-room extents, so no true footprint shape is recovered. Nothing in the energy path reads it — measuredEnvelope short-circuits envelopeQuantities."
    },
    {
      "id": "A-ERA-UNDATED",
      "assumes": "Era 2000-2009, chosen from the magnitude of the file's own stated U-values, not from any date the file states.",
      "why": "AC20-FZK-Haus is KIT/IAI's 'Simple Phantasy Building' — a validation test house, not a dated real project. It carries no construction-year field. The era selects only cosmetic Korean code-table recipe defaults for anything not overridden below, and every U-value, WWR and airtightness figure here IS overridden explicitly by this file's own numbers, so the era decides nothing that reaches a kWh figure."
    },
    {
      "id": "A-STRUCTURE-CODE",
      "assumes": "Structure code 21 (철근콘크리트, RC) as the nearest Korean register category for a lightweight-concrete house.",
      "why": "The register's structure vocabulary has no row for autoclaved lightweight concrete specifically; RC is the nearest concrete-family code, closer than a masonry code (22-25) given the wall's material is a cast/panel concrete product rather than fired brick or block."
    }
  ],
  "modeledEnergy": {
    "status": "modeled_not_metered",
    "method": {
      "id": "bimfit-annual-degree-day-screening",
      "codePath": "src/lib/energy/annual-demand.ts",
      "scope": "Heating and cooling delivered energy after system efficiencies; auxiliary loads estimated separately."
    },
    "climate": {
      "sigunguCd": "11",
      "labelKo": "서울 기후 (가정)",
      "labelEn": "Seoul climate (assumed)",
      "assumptionId": "A-CLIMATE",
      "status": "assumed",
      "hddBase18KDay": 2700,
      "cddBase24KDay": 220,
      "winterDesignTemperatureC": -11.3,
      "summerDesignTemperatureC": 33.6,
      "indoorHeatingSetpointC": 20,
      "indoorCoolingSetpointC": 26,
      "coolingSeasonSolarKWhPerM2": 350
    },
    "hvac": {
      "heatingDeliveredKWhPerYear": 18001.66990781366,
      "coolingDeliveredKWhPerYear": 1302.7959113142856,
      "totalDeliveredKWhPerYear": 19304.465819127945,
      "deliveredKWhPerM2Year": 92.56516815693092,
      "fuelDemandKWhPerYear": {
        "electricKwh": 1302.7959113142856,
        "fossilKwh": 18001.66990781366,
        "fossilFuel": "gas"
      }
    },
    "comparisonRating": {
      "grade": "2",
      "table": "residential",
      "tableSelection": "adapted_use_code",
      "officialCertificate": false,
      "primaryKWhPerM2Year": 160.49440923137695,
      "deliveredFuelInputsKWhPerYear": {
        "electric": 4198.465784183478,
        "gas": 19932.116489726453,
        "districtHeating": 0,
        "districtCooling": 0,
        "renewable": 0
      },
      "primaryEnergyKWhPerYear": {
        "electric": 11545.780906504564,
        "gas": 21925.3281386991,
        "districtHeating": 0,
        "districtCooling": 0,
        "renewable": 0,
        "total": 33471.109045203666
      },
      "conversionFactorsPrimaryPerDeliveredKWh": {
        "electricity": 2.75,
        "gas": 1.1,
        "districtHeating": 0.728,
        "districtCooling": 0.937,
        "renewable": 2.75
      },
      "limitationIds": [
        "L-GRADE-SHARES",
        "L-SCREENING"
      ]
    },
    "estimatedWholeBuilding": {
      "hvacKWhPerYear": 19304.465819127945,
      "lightingKWhPerYear": 2702.6252146779125,
      "dhwKWhPerYear": 9652.232909563972,
      "plugLoadsKWhPerYear": 6949.60769488606,
      "totalKWhPerYear": 38608.93163825589,
      "ratioProvenance": {
        "source": "use_code",
        "useCodePrefix": "01"
      },
      "limitationIds": [
        "L-SITE-TOTAL"
      ]
    },
    "hvacEmissions": {
      "totalTonnesCO2PerYear": 4.231241429054579,
      "kgCO2PerM2Year": 20.288858446677434,
      "electricTonnesCO2PerYear": 0.5985044416577827,
      "nonElectricTonnesCO2PerYear": 3.6327369873967967
    },
    "designHeatLoss": {
      "totalW": 6984.88622234655,
      "elements": [
        {
          "name": "Walls",
          "quantity": 143.08,
          "quantityUnit": "m2",
          "coefficient": 0.4,
          "coefficientUnit": "W/(m2.K)",
          "heatLossCoefficientWPerK": 57.232000000000006,
          "temperatureDifferenceK": 31.3,
          "designHeatLossW": 1791.3616000000002
        },
        {
          "name": "Windows",
          "quantity": 23.6,
          "quantityUnit": "m2",
          "coefficient": 1.4,
          "coefficientUnit": "W/(m2.K)",
          "heatLossCoefficientWPerK": 33.04,
          "temperatureDifferenceK": 31.3,
          "designHeatLossW": 1034.152
        },
        {
          "name": "Roof",
          "quantity": 171.13,
          "quantityUnit": "m2",
          "coefficient": 0.3,
          "coefficientUnit": "W/(m2.K)",
          "heatLossCoefficientWPerK": 51.339,
          "temperatureDifferenceK": 31.3,
          "designHeatLossW": 1606.9107
        },
        {
          "name": "Ground Floor",
          "quantity": 120,
          "quantityUnit": "m2",
          "coefficient": 0.6664887260853198,
          "coefficientUnit": "W/(m2.K)",
          "heatLossCoefficientWPerK": 79.97864713023839,
          "temperatureDifferenceK": 6.5,
          "designHeatLossW": 519.8612063465495
        },
        {
          "name": "Infiltration/Ventilation",
          "quantity": 636.66,
          "quantityUnit": "m3",
          "coefficient": 0.3,
          "coefficientUnit": "1/h",
          "heatLossCoefficientWPerK": 64.93932,
          "temperatureDifferenceK": 31.3,
          "designHeatLossW": 2032.600716
        }
      ]
    }
  },
  "limitations": [
    {
      "id": "L-MODEL-NOT-SURVEY",
      "text": "Geometric measurements come from IFC quantities and solids. They are not a field survey, and omitted or misclassified model elements can bias the envelope."
    },
    {
      "id": "L-NO-METER",
      "text": "No metered energy series or calibration is included in this export. Linked source archives may contain separate measurements; every energy output here is modeled, not observed consumption."
    },
    {
      "id": "L-BASELINE",
      "text": "This export uses the published baseline recipe and material inputs. It excludes browser edits, proposed retrofits, and financing selections."
    },
    {
      "id": "L-CLIMATE",
      "text": "The climate is the explicitly assumed engine climate, not a weather series for the IFC's declared site. Read the climate assumption before comparing sites."
    },
    {
      "id": "L-SCREENING",
      "text": "The annual degree-day engine is a screening model, not the unwired ISO 13790 monthly kernel, a dynamic hourly simulation, or a certified assessment."
    },
    {
      "id": "L-GRADE-SHARES",
      "text": "The grade's fuel split adds 15% of HVAC total to electricity and 10% to gas, assigns heating to gas, and sets district energy and renewable contribution to zero. It does not read lighting power density or PV capacity. The grade is a comparison on Korean thresholds, not an official certificate."
    },
    {
      "id": "L-SITE-TOTAL",
      "text": "The estimated whole-building total uses end-use ratios to expand HVAC demand. It differs from the simplified fuel shares behind the grade; these totals must not be interchanged."
    }
  ],
  "links": {
    "model": "/models/fzk-haus",
    "dataset": "/api/reference-buildings/fzk-haus/dataset",
    "catalogueJson": "/api/reference-buildings/datasets",
    "catalogueCsv": "/api/reference-buildings/datasets?format=csv"
  },
  "integrity": {
    "algorithm": "SHA-256",
    "manifestSha256": "06fbfc27584fcfae51aa50c2e8bd60e82fa99c93e388fcdbe98dfb7cea756807",
    "modelInputsSha256": "cfb0c1fc87f8bf696006ad137248cbee87e098369777914bc912a81901a8b37b",
    "datasetPayloadSha256": "5d8ce55350555efca71109a1107243a8d7af1040ef2dd361629ead0c5c4a7458",
    "payloadHashScope": "UTF-8 JSON.stringify of this object without the integrity property; property order is preserved.",
    "codeRevision": "b52ba9c55e5dc195bb0058397e9415b7e775527b",
    "codeRevisionStatus": "deployment_metadata"
  }
}
