{"claim":{"id":"9b3dd0af-3c3b-4cf5-bbaf-09313ec69d92","submission_id":"abf08a23-6c75-4ba9-b8e3-1480b50cac3a","submission_revision_id":"53709edd-31ab-4601-a783-39fc46af121f","builder":"builder-01","status":"active","claimed_at":"2026-10-15T15:11:48.282731Z","delivered_at":null,"ended_at":null,"delivery_note":null,"end_reason":null},"task":{"submission_id":"abf08a23-6c75-4ba9-b8e3-1480b50cac3a","submission_revision_id":"53709edd-31ab-4601-a783-39fc46af121f","revision_version":4,"submission_status":"under_review","submitted_at":"2026-08-25T13:24:06.640993Z","submitter_name":"Hyunjun Kim","submitter_email":"mnb9227@gmail.com","task":{"status":"submitted","version":4,"extra_fields":{},"submitted_at":"2026-08-25T13:24:06.640993+00:00","industry_domain":"AEC / BIM (IFC Model Migration & Quantity Takeoff)","task_short_name":"bim_ifc_conform","operating_system":"Linux","task_description":"Goal: Produce a schema-valid IFC4 handover model plus a geometry-reconciled space schedule (BOM) from a real, released IFC2x3 building model.\n\nRemote workspace:\n- Task folder: bim_ifc_conform\n- Read ALL of `input/spec_sheet.md`, `input/qto_memo.txt` and `input/PROVENANCE.txt` first — every requirement there is enforced by QC.\n\nInputs (under `input/`):\n- `duplex_apartment_ifc2x3.ifc` — the released IFC2x3 coordination view of the Duplex apartment, a real buildingSMART sample project provided unmodified under CC BY 4.0 (see PROVENANCE.txt for attribution and change record). Project LENGTHUNIT is METRE. 21 spaces across the storeys (Level 1, Level 2, T/FDN, Roof); walls are mostly the IFC4-deprecated IfcWallStandardCase. Space bodies are swept solids, except two stair spaces exported as face-based surface models.\n- `bom_spaces.csv` — the space schedule exactly as the design tool's 'GSA Space Areas' quantity sets state it (level,space_name,schedule_area_m2). Export-time snapshot: the quantity values naturally disagree with the delivered geometry.\n- `qto_memo.txt` — the quantity-takeoff memo framing the reconciliation.\n- `PROVENANCE.txt` — upstream attribution (CC BY 4.0) and change record.\n- `spec_sheet.md` — mandatory delivery spec (area definitions, BOM schema, report format included).\n\nWhat to do:\n- Migrate the model to IFC4: FILE_SCHEMA must declare IFC4 and the file must be SCHEMA-VALID IFC4 — every entity rebuilt with its full IFC4 attribute set and passing ifcopenshell EXPRESS-rules validation (a bare IfcWallStandardCase->IfcWall text swap keeps the shorter IFC2x3 attribute form, e.g. an IfcWall without PredefinedType, and is rejected). No IfcWallStandardCase may remain; all spaces, storeys and walls must survive with their source GlobalIds (QC matches elements by GlobalId, not by Name). Solid swept walls carry PredefinedType SOLIDWALL — the attribute left unset or set to another enum value fails QC — and space geometry must survive the migration unchanged: every space's Body-geometry area must agree with the source model's to 1e-3 m2 (the schedule is corrected against the model, never the model bent to the schedule). Note: 2x3 space boundaries without a building element have no IFC4 representation — a documented drop of those relationships is acceptable.\n- Complete Pset_WallCommon on EVERY wall: Reference (non-empty string), IsExternal and LoadBearing (booleans), ThermalTransmittance (numeric) — attached through an IfcRelDefinesByProperties relationship that targets the wall entity itself (a pset hanging off another object that merely shares the wall's Name does not count).\n- Recompute each space's area from the MODEL GEOMETRY per the spec's area definitions (swept profile area for SweptSolid bodies; for SurfaceModel bodies half the sum of the plan projections of the strictly horizontal faces), honouring the declared project unit — do not trust the schedule or the quantity sets.\n- Reconcile the exported schedule (schedule_value_m2 stays as exported) and deliver `output/bom_corrected.csv` with EXACTLY one unique row per space in m2 agreeing with the model to 1e-3 m2 (keep at least 4 decimals), flagging corrected rows truthfully (`yes` exactly when the exported value disagrees with the recomputed geometry by more than 1e-3 m2).\n- Write `output/conversion_report.txt` in the spec's format: summary lines for the IfcWallStandardCase migration count and the Pset_WallCommon completion count, plus one row per space (name, exported value in m2, model value in m2, corrected yes/no).\n- The spec sheet fully specifies every QC-enforced output schema: the exact `bom_corrected.csv` header (level,space_name,area_m2,schedule_value_m2,corrected) with the level column equal to each space's actual storey in the delivered model, and the conversion-report row format.\n\nOutput:\n- `output/model_ifc4.ifc`\n- `output/bom_corrected.csv`\n- `output/conversion_report.txt`\n","software_licensing":"Free/Open Source","evaluation_criteria":null,"verification_method":"Deterministic QC evaluation (IfcOpenShell; evaluation/ is self-contained — evaluate.py plus ifc_geom.py, its own unit-aware geometry/property readers, so it runs exactly as packaged with no other local dependencies). Entity checks operate on parsed entities (never text scans), malformed CSV values degrade the affected rows rather than raising, and schema validation is REAL validation, not parsing. All ground truth (expected spaces/walls/storeys, counts, schedule values) is derived at run time from the byte-frozen source model in input/ — nothing is hardcoded.\n\nMaterials provenance: the source model is the REAL buildingSMART \"Duplex Apartment\" IFC2x3 test file, redistributed under CC BY 4.0 with the required attribution (\"BSI (2020) 'Duplex Apartment Test Files,' buildingSMART International\" + repository URL); input/PROVENANCE.txt records the license, source URLs, content SHA-256 and the change record (file rename only — the model ships unmodified, byte-frozen). Its naturally occurring characteristics ARE the task: 56 deprecated IfcWallStandardCase walls and design-tool 'GSA Space Areas' quantity values that disagree with the delivered geometry (by 2.5%-76% across the 21 spaces). Every QC-enforced output schema (BOM CSV columns, report rows) is documented in input/spec_sheet.md, which the agent receives with the inputs.\n\nHard gates (any failure => score 0):\n- All three output files exist and the IFC parses under schema IFC4 (header included)\n- SCHEMA-VALID IFC4, verified two ways: ifcopenshell's EXPRESS-rules validation reports zero errors, and every entity exposes its full IFC4 attribute set (a wall still in the shorter IFC2x3 form cannot be read past its parsed arity and fails here)\n- No IfcWallStandardCase entities remain — checked on parsed entities, so a textual mention in metadata cannot fail an otherwise-clean migration\n- Source GlobalIds preserved: the delivered model's space and wall GlobalId sets equal the source model's (elements are identified by GlobalId, not by Name; renaming or duplicating an element is a new element)\n- Exactly the source's UNIQUE spaces and storeys, duplicates rejected — the storey set is compared as (GlobalId, Name) pairs against the source model, not by count alone: a same-count set of renamed or re-identified storeys is not the source building and fails\n- Exactly the source's walls survive migration (no extras)\n- Every IfcWall carries PredefinedType SOLIDWALL — every wall in this model is a solid swept body, so the IFC4 enum left $ (or set to any other value) fails QC\n- Space geometry survives migration: every space's Body-geometry area in the delivered model (computed with the same unit-aware reader the scoring uses) agrees with the source model's to 1e-3 m2 — rescaling space bodies to force agreement with the exported schedule falsifies the model and fails QC, no matter how self-consistent the BOM and report are\n- The delivered model DECLARES an explicit IfcSIUnit LENGTHUNIT of METRE with no SI prefix — a model with no explicit length unit at all, or with any other unit, fails QC (nothing then defines what the geometry numbers mean; unit-aware geometry converts profile values through the declared LENGTHUNIT before any area comparison)\n- The BOM carries the byte-exact header level,space_name,area_m2,schedule_value_m2,corrected, has exactly one unique row per source space, and every row's level column equals the storey the space is aggregated into in the delivered model (enforced BEFORE scoring — duplicate rows cannot inflate any score)\n- Every wall carries exactly ONE individually complete Pset_WallCommon with a non-empty Reference and valid value types (IsExternal/LoadBearing boolean, ThermalTransmittance numeric), resolved through the IfcRelDefinesByProperties relationship that targets the wall ENTITY (name collisions do not count) — properties split across multiple incomplete Pset_WallCommon instances do NOT merge: two half-sets whose union is complete still fail\n\n- conversion_report.txt carries the spec-declared format as a hard gate: both summary lines present (IfcWallStandardCase count, Pset_WallCommon completed count) and one four-field row per source space (name, schedule value, model value, corrected flag); rows may carry leading indentation but must be exactly the four declared fields (a fifth field fails) — wrong numbers in a well-formed row stay a scored component, but an empty or structureless report fails outright\nDocumented representation tolerances (verified by probe): a utf-8 BOM on the BOM CSV and CRLF line endings on either text deliverable keep full credit (both open as utf-8-sig / universal newlines), and a utf-8 BOM on the conversion report is tolerated too (only row content is checked). The IFC deliverable must DECLARE schema IFC4 and pass express-rules validation — an IFC4X3-declared or IFC2X3-declared file fails the release outright, and a truncated or non-STEP file scores 0.0 with rc=0.\nScored components (weighted sum after gates, clamped to <= 1.0; areas carry >= 4 decimals at the 1e-3 m2 tolerance):\n- BOM areas agree with the DELIVERED model geometry to 1e-3 m2 (weight 0.25)\n- BOM areas AND schedule values agree with the hidden reference to 1e-3 (weight 0.25)\n- schedule reconciliation + corrected flags are truthful against the exported schedule: schedule_value_m2 as exported, and `corrected` = yes exactly for the rows whose exported value disagrees with the recomputed geometry (weight 0.1)\n- Report table cross-checked NUMERICALLY against the delivered BOM: per-space schedule/model values and yes/no flags must match (weight 0.25)\n- Report structural change counts verified against source ground truth: IfcWallStandardCase migrated and Pset_WallCommon completed counts (weight 0.15)\n\nSanity checks run by the contributor (logs in this package: build_log.txt, naive_log.txt, selftest_review_log.txt): the reference scores 1.0 with zero EXPRESS-validation errors and zero arity violations (logged at build time on the written file); a header-only schema bump and a schedule-trusting no-reconciliation pass both score 0.0; targeted negatives — duplicated BOM rows, a dropped wall, an empty Pset Reference, a MILLIMETRE unit switch without rescaling, a wall left in the shorter IFC2x3 attribute form (PredefinedType stripped), a byte-inexact BOM header, a replaced wall GlobalId, one wall's Pset_WallCommon split across two half-sets whose union is complete (the merging loophole — no single instance is complete), the explicit length unit removed from the unit assignment (absence is not read as metres), and a storey renamed with the count preserved and the BOM level column updated to match (caught only by the storey GlobalId+Name set comparison) ; 7th-sweep additions — walls with PredefinedType left $ or set to a wrong enum value, a space body rescaled to make the geometry agree with the exported schedule (BOM and report made fully self-consistent — caught only by the geometry-preservation gate, since every number cross-check passes), and a report row carrying a fifth field — are each rejected at 0.0.\n","software_and_version":"Python 3.12 + IfcOpenShell 0.8.5 (IFC2x3-to-IFC4 schema migration, geometry & pset validation)","specific_requirements":null,"expected_completion_time":null},"files":[{"file_id":"3b9ae353-8f85-4fe2-9a85-3c924fe7fb3b","filename":"03_upload_inputs.zip","category":"input_materials","content_type":"application/x-zip-compressed","size_bytes":487811},{"file_id":"7a2217bd-f10c-499a-98b8-60f35849191d","filename":"03_upload_reference.zip","category":"reference_output","content_type":"application/x-zip-compressed","size_bytes":973800}],"deep_review":{"overall_verdict":"Accept","review_text":"**Overall Verdict:** Accept — The submission is complete, coherent, and reachable, with strong deterministic evaluation evidence and only a nonmaterial space-description error.\n\n**Completeness Check:**\n- Instruction: Complete — Deliverables, migration constraints, geometry rules, tolerances, and exact BOM/report formats are clearly specified.\n- Inputs: Complete — The source IFC, schedule, specification, memo, and provenance are readable and internally consistent; the IFC hash matches the provenance record.\n- Toolchain: Complete — Python 3.12 and IfcOpenShell 0.8.5 provide a practical, open-source Linux workflow within the stated single-machine resources.\n- Reference output: Complete — All three reference deliverables are present. Independent static checks confirmed IFC4 declaration, preserved identities, 57 SOLIDWALL entities, 57 individually attached complete wall property sets, and 21 geometry-derived BOM areas within tolerance.\n- Rubric: Complete — Deterministic hard gates, weighted partial scoring, source-derived expectations, malformed-input handling, and extensive targeted negative tests are supplied.\n\n**File and Task Reachability:**\nAttachment classification: reachable. Task classification: reachable. Both ZIP archives matched their manifest byte counts, were unencrypted and CRC-clean, contained safe relative regular-file entries, and had modest expansion sizes. Inspected files included duplex_apartment_ifc2x3.ifc, bom_spaces.csv, spec_sheet.md, qto_memo.txt, PROVENANCE.txt, the reference model/BOM/report, evaluate.py, ifc_geom.py, the naive model/BOM/report, task_card.json, build_log.txt, naive_log.txt, and selftest_review_log.txt; no manifest content was left unreviewed. The source schedule values were confirmed in the IFC quantity records, and all 21 protected BOM areas were independently recomputed from source STEP geometry. The review environment lacked IfcOpenShell, so EXPRESS validation was not independently rerun; static STEP inspection and the supplied validation/self-test logs support that claim. The completion path from IFC2X3 migration through geometry reconciliation and deterministic evaluation is finite and suitable for the declared machine. License keys, accounts, tokens, and other credentials are not required from the contributor. Confidential, proprietary, or internal material may be evaluated as submitted evidence without requiring additional disclosure.\n\n**Special Screening:**\n`public_benchmark` — The supplied provenance affirmatively identifies the source as a publicly distributed buildingSMART sample model. The derived migration task and protected reference are bespoke, all necessary inputs are supplied, and no public standard solution is evidenced. External availability of the exact derived task/reference was not independently checked.\n\n**Recommended Changes:**\nThe submission is ready and requires no material changes. As an optional editorial correction, replace “two stair spaces” with “two hallway spaces (A201 and B201)” when describing the face-based SurfaceModel bodies; the representation-driven specification and evaluator already handle them correctly.","reviewed_at":"2026-08-25T13:43:35.390850Z"},"claim":{"id":"9b3dd0af-3c3b-4cf5-bbaf-09313ec69d92","submission_id":"abf08a23-6c75-4ba9-b8e3-1480b50cac3a","submission_revision_id":"53709edd-31ab-4601-a783-39fc46af121f","builder":"builder-01","status":"active","claimed_at":"2026-10-15T15:11:48.282731Z","delivered_at":null,"ended_at":null,"delivery_note":null,"end_reason":null}},"revision_is_current":true}