{
  "kind": "bimfit_reference_building_manifest",
  "schemaVersion": 1,
  "id": "molio",
  "name": {
    "ko": "몰리오 하우스",
    "en": "Molio-Huset"
  },
  "summary": {
    "ko": "Molio와 buildingSMART Denmark가 CC BY 4.0으로 공개한 업무시설 예제. 공개된 설비 형상은 조명 말단기입니다.",
    "en": "An office sample published by Molio and buildingSMART Denmark under CC BY 4.0. Published service geometry is lighting terminals."
  },
  "useType": "office_building",
  "licence": "CC BY 4.0",
  "attribution": "Molio / buildingSMART Denmark, Molio-Huset sample. CC BY 4.0 via buildingsmart-community/Community-Sample-Test-Files. Extracted and adapted by BIMFIT.",
  "sourceUrl": "https://github.com/buildingsmart-community/Community-Sample-Test-Files/tree/main/IFC%202.3.0.1%20(IFC%202x3)/Molio",
  "generatedAt": "2026-09-17T00:00:00.000Z",
  "sourceFiles": [
    {
      "role": "architectural",
      "fileName": "molio.ifc",
      "sha256": "626654e3b62648d3f0499e17c04d4f087931f048ddf79410f6cb90e45004c086",
      "byteLength": 73945142,
      "units": {
        "lengthToMetres": 0.001,
        "areaToSquareMetres": 1,
        "lengthUnitName": "MILLIMETRE",
        "areaUnitName": "SQUARE_METRE",
        "lengthAssumed": false,
        "areaAssumed": false
      }
    }
  ],
  "counts": {
    "storeys": 8,
    "spacesTotal": 117,
    "spacesFloor": 117,
    "assemblies": 0,
    "externalElements": 0,
    "exteriorWalls": 100,
    "windows": 119,
    "exteriorCurtainWalls": 0,
    "exteriorDoors": 10,
    "externalElementsNote": "483 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": 3666.57,
    "areaPlanTotalSqm": 3666.57,
    "exteriorWallNetSqm": 3199.7,
    "exteriorWallNote": "100 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": 2048.16,
    "exteriorWallAboveRoofSqm": 1151.55,
    "exteriorWallByOrientationSqm": {
      "N": 820.161306371684,
      "NE": 0,
      "E": 529.0466942208511,
      "SE": 0,
      "S": 917.134676268258,
      "SW": 0,
      "W": 933.3617387380573,
      "NW": 0
    },
    "glazingApertureSqm": 357.89,
    "glazingByOrientationSqm": {
      "N": 0,
      "NE": 0,
      "E": 0,
      "SE": 0,
      "S": 0,
      "SW": 0,
      "W": 0,
      "NW": 0
    },
    "exteriorDoorSqm": 27.23,
    "exteriorDoorByOrientationSqm": {
      "N": 0,
      "NE": 0,
      "E": 1.91,
      "SE": 0,
      "S": 0,
      "SW": 0,
      "W": 10.61,
      "NW": 0
    },
    "openingsNote": "Glazing aperture 357.89 m² = 119 IfcWindow at OverallWidth × OverallHeight (357.89 m²). Exterior doors are separate — a door is aperture, not glazing: 10 IfcDoor, 27.23 m², OverallWidth × OverallHeight. Host wall by IfcRelFillsElement → IfcOpeningElement → IfcRelVoidsElement (129 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 (117 of 117 have geometry); this file has no IfcCurtainWall; 61 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 5 door(s) here; 4 confirm against an exterior wall, 1 do not: #8181 [L]QQC 1.91 m². Rows in openings.json.",
    "conditionedVolumeGrossM3": 12935.59,
    "roomVolumeNetM3": 11723.95,
    "volumeNote": "Gross from 117 spaces (floor area × storey height; voids, and rooms taller than their storey with no void above, as their own solids); net from 117 spaces (117 from stated volume quantity). A closed tessellation's signed volume is exact.",
    "roofProjectedSqm": 0,
    "roofProjectedByFamilySqm": {},
    "roofElementSumSqm": 0,
    "roofUnionSqm": 0,
    "roofSurfaceSqm": 0,
    "roofSurfaceByFamilySqm": {},
    "roofNote": "Plan shadow per element (union of its projected triangles, ifc-plan-shadow.mjs): 0 elements — . roofProjectedSqm sums 0 roof type(s), each as the union of its elements; the elements themselves sum to 0 m² (elements of one type overlapping in plan) and all types together cover 0 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 0 m²; a flat deck's surface equals its shadow, a pitched roof's exceeds it. 2 IfcRoof carry no geometry of their own and are measured through the IfcSlab ROOF parts they aggregate. Roof decks are the 16 IfcSlab named [L]AC. Two IfcRoof [L]AE carry no geometry of their own. Storey floors named [L]BG are not roof.",
    "groundSlabSqm": 13.64,
    "groundSlabSumSqm": 13.64,
    "groundPerimeterM": 25.6,
    "groundHolePerimeterM": 0,
    "groundNote": "IfcSlab (not ROOF or LANDING) on storeys at or below Kælder (-3.5 m): 3 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. 3 counted, 0 excluded. groundSlabSqm is the union of the counted shadows (they sum to 13.64 m²; stacked build-up layers count once); groundPerimeterM is the outline's outer rings (3 polygons)."
  },
  "assemblies": [],
  "orientation": {
    "trueNorthDeg": null,
    "northAssumed": true,
    "weakOutwardCount": 22,
    "offCardinalCount": 0,
    "offCardinalSqm": 0,
    "wallCount": 62,
    "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": "Site",
    "declaredLatitudeDeg": 55.667573999999995,
    "declaredLongitudeDeg": 12.619383,
    "locationIsAuthoringDefault": true,
    "locationNote": "Molio-Huset is a Danish IFC-exchange sample. IfcSite address fields are placeholders (#Tegnestue / Vej / By); they do not establish a surveyed energy climate. BIMFIT uses a separately named Seoul comparison climate.",
    "statedTown": "Denmark (sample)",
    "trueNorthStated": false
  },
  "storeys": [
    {
      "id": "storey-fundament",
      "name": "Fundament",
      "elevationM": -4.4,
      "floorToFloorHeightM": 0.9,
      "spaceCount": 0,
      "floorAreaSqm": 0,
      "ref": "ifc://molio.ifc#1060"
    },
    {
      "id": "storey-k-lder",
      "name": "Kælder",
      "elevationM": -3.5,
      "floorToFloorHeightM": 3.5,
      "spaceCount": 14,
      "floorAreaSqm": 523.74,
      "ref": "ifc://molio.ifc#1062"
    },
    {
      "id": "storey-grundplan",
      "name": "Grundplan",
      "elevationM": 0,
      "floorToFloorHeightM": 3.5,
      "spaceCount": 13,
      "floorAreaSqm": 528.15,
      "ref": "ifc://molio.ifc#1063"
    },
    {
      "id": "storey-1-sal",
      "name": "1. Sal",
      "elevationM": 3.5,
      "floorToFloorHeightM": 3.5,
      "spaceCount": 17,
      "floorAreaSqm": 416.47,
      "ref": "ifc://molio.ifc#1064"
    },
    {
      "id": "storey-2-sal",
      "name": "2. Sal",
      "elevationM": 7,
      "floorToFloorHeightM": 3.5,
      "spaceCount": 17,
      "floorAreaSqm": 522.94,
      "ref": "ifc://molio.ifc#1065"
    },
    {
      "id": "storey-3-sal",
      "name": "3. Sal",
      "elevationM": 10.5,
      "floorToFloorHeightM": 3.5,
      "spaceCount": 17,
      "floorAreaSqm": 522.94,
      "ref": "ifc://molio.ifc#1066"
    },
    {
      "id": "storey-4-sal",
      "name": "4. Sal",
      "elevationM": 14,
      "floorToFloorHeightM": 3.5,
      "spaceCount": 18,
      "floorAreaSqm": 529.88,
      "ref": "ifc://molio.ifc#1067"
    },
    {
      "id": "storey-5-sal",
      "name": "5. Sal",
      "elevationM": 17.5,
      "floorToFloorHeightM": 3.144,
      "spaceCount": 17,
      "floorAreaSqm": 522.94,
      "ref": "ifc://molio.ifc#1068"
    },
    {
      "id": "storey-6-sal",
      "name": "6. sal",
      "elevationM": 20.644,
      "floorToFloorHeightM": 3,
      "spaceCount": 4,
      "floorAreaSqm": 99.54,
      "ref": "ifc://molio.ifc#1069"
    },
    {
      "id": "storey-tag",
      "name": "Tag",
      "elevationM": 23.644,
      "floorToFloorHeightM": 0,
      "spaceCount": 0,
      "floorAreaSqm": 0,
      "ref": "ifc://molio.ifc#1070"
    }
  ],
  "spacesFile": "spaces.json",
  "roofs": [],
  "groundSlabs": [
    {
      "id": "slab-2155",
      "name": "[L]BG",
      "elementType": "IfcSlab",
      "predefinedType": "USERDEFINED",
      "storeyId": "storey-k-lder",
      "projectedSqm": 5.61,
      "countsAsGround": true,
      "evidence": "5.61 m² under 1 conditioned space footprint(s)",
      "excludedReason": null,
      "ref": "ifc://molio.ifc#2155"
    },
    {
      "id": "slab-2156",
      "name": "[L]BG",
      "elementType": "IfcSlab",
      "predefinedType": "USERDEFINED",
      "storeyId": "storey-k-lder",
      "projectedSqm": 3.96,
      "countsAsGround": true,
      "evidence": "3.96 m² under 1 conditioned space footprint(s)",
      "excludedReason": null,
      "ref": "ifc://molio.ifc#2156"
    },
    {
      "id": "slab-2169",
      "name": "[L]BG",
      "elementType": "IfcSlab",
      "predefinedType": "USERDEFINED",
      "storeyId": "storey-k-lder",
      "projectedSqm": 4.07,
      "countsAsGround": true,
      "evidence": "4.07 m² under 1 conditioned space footprint(s)",
      "excludedReason": null,
      "ref": "ifc://molio.ifc#2169"
    }
  ],
  "openingsFile": "openings.json",
  "serviceLayers": [
    {
      "id": "lighting",
      "ko": "조명",
      "en": "Lighting",
      "file": "lighting.glb",
      "byteLength": 733572,
      "triangleCount": 11388,
      "groups": [
        "terminal-instanced"
      ],
      "elements": 42,
      "distinctGeometries": 82,
      "instancedShapes": 82,
      "instancedPlacements": 861,
      "drawCalls": 82,
      "note": "42 IfcFlowTerminal luminaires from the architectural IFC ([L]XLD / [L]XLC). This is lighting geometry, not HVAC. No inferred network is added.",
      "flow": {
        "file": null,
        "ports": 115,
        "connections": 0,
        "directedEdges": 0,
        "drawnEdges": 0,
        "bidirectionalEdges": 0,
        "unresolvedConnections": 0,
        "ungeometried": 0,
        "unreachedEdges": 0,
        "plantNodes": 0,
        "supplySegments": 0,
        "returnSegments": 0,
        "reason": "Source port directions do not establish supply/return system roles in this combined model; animation is not published.",
        "wavelengthM": null
      }
    }
  ],
  "architecturalDetails": {
    "id": "details",
    "ko": "건축 상세",
    "en": "Architectural details",
    "file": "architectural-details.glb",
    "byteLength": 1600984,
    "sha256": "15f18440ec78a89d090fa52c5009abd5da8927078f6a21a032bfc5c408d2caec",
    "triangleCount": 30806,
    "placedTriangleCount": 310426,
    "triangleCountBasis": "triangleCount stores each instanced shape once; placedTriangleCount includes every placement",
    "groups": [
      "column",
      "railing",
      "furnishing"
    ],
    "elements": 2118,
    "distinctGeometries": 286,
    "instancedShapes": 79,
    "instancedPlacements": 2455,
    "drawCalls": 89,
    "materials": 10,
    "sourceFiles": [
      {
        "role": "architectural",
        "fileName": "molio.ifc",
        "sha256": "626654e3b62648d3f0499e17c04d4f087931f048ddf79410f6cb90e45004c086",
        "types": [
          {
            "type": "IfcFurnishingElement",
            "candidates": 39,
            "rendered": 38,
            "withoutRenderedMesh": 1
          },
          {
            "type": "IfcRailing",
            "candidates": 2119,
            "rendered": 2066,
            "withoutRenderedMesh": 53
          },
          {
            "type": "IfcColumn",
            "candidates": 14,
            "rendered": 14,
            "withoutRenderedMesh": 0
          }
        ]
      }
    ],
    "indexFile": "architectural-details-index.json",
    "indexSha256": "5853b4222395105bded7a6ba8f79aa3a24040a06ec1e7994c6be3b5a40138a02",
    "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": [
      "lighting"
    ],
    "typedElementCount": 48,
    "distributionPortCount": 115,
    "sources": [
      {
        "role": "architectural",
        "fileName": "molio.ifc",
        "sha256": "626654e3b62648d3f0499e17c04d4f087931f048ddf79410f6cb90e45004c086",
        "schema": "IFC2X3",
        "typedElementCount": 48,
        "entitiesByType": {
          "IfcFlowTerminal": 42,
          "IfcDistributionControlElement": 6
        },
        "distributionPorts": 115,
        "systems": 0
      }
    ],
    "summary": {
      "ko": "건축 IFC의 조명 말단기 42개를 표시합니다. HVAC가 아니며 추정 네트워크를 넣지 않습니다. 모델 간 중복 가능성이 있어 원본 요소 수를 설치 설비의 고유 개수로 해석하지 않습니다.",
      "en": "Shows 42 lighting terminals from the architectural IFC. This is not HVAC, and no inferred network is added. 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."
      }
    ]
  },
  "model": {
    "file": "model.glb",
    "byteLength": 11331488,
    "triangleCount": 205015,
    "groups": [
      "slab",
      "wall",
      "stair",
      "glazing",
      "door",
      "space"
    ],
    "note": "Building fabric: walls, slabs, roofs, openings, and IfcSpace solids. 38 exterior walls produced no mesh after the opening boolean; the space solids are the model's own enclosure so the 외피 layer is not a glass cage. 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": "17234fb8d6067f7650380a463fa053940474d6a89fef254a3522aa64e7de24db",
    "spacesHashScope": "UTF-8 JSON.stringify of parsed spaces.json; independent of checkout line endings",
    "areaSources": [
      "GrossFloorArea"
    ],
    "exclusions": [],
    "datums": [
      {
        "name": "Tag",
        "elevationM": 23.644,
        "rooms": 0,
        "roomAreaSqm": 0,
        "excludedSpaces": 0
      },
      {
        "name": "6. sal",
        "elevationM": 20.644,
        "rooms": 4,
        "roomAreaSqm": 99.538,
        "excludedSpaces": 0
      },
      {
        "name": "5. Sal",
        "elevationM": 17.5,
        "rooms": 17,
        "roomAreaSqm": 522.937,
        "excludedSpaces": 0
      },
      {
        "name": "4. Sal",
        "elevationM": 14,
        "rooms": 18,
        "roomAreaSqm": 529.875,
        "excludedSpaces": 0
      },
      {
        "name": "3. Sal",
        "elevationM": 10.5,
        "rooms": 17,
        "roomAreaSqm": 522.938,
        "excludedSpaces": 0
      },
      {
        "name": "2. Sal",
        "elevationM": 7,
        "rooms": 17,
        "roomAreaSqm": 522.938,
        "excludedSpaces": 0
      },
      {
        "name": "1. Sal",
        "elevationM": 3.5,
        "rooms": 17,
        "roomAreaSqm": 416.465,
        "excludedSpaces": 0
      },
      {
        "name": "Grundplan",
        "elevationM": 0,
        "rooms": 13,
        "roomAreaSqm": 528.146,
        "excludedSpaces": 0
      },
      {
        "name": "Kælder",
        "elevationM": -3.5,
        "rooms": 14,
        "roomAreaSqm": 523.737,
        "excludedSpaces": 0
      },
      {
        "name": "Fundament",
        "elevationM": -4.4,
        "rooms": 0,
        "roomAreaSqm": 0,
        "excludedSpaces": 0
      }
    ]
  }
}
