diff --git a/corpus/MANIFEST_INDEX.json b/corpus/MANIFEST_INDEX.json index cfd753f..9575e6b 100644 --- a/corpus/MANIFEST_INDEX.json +++ b/corpus/MANIFEST_INDEX.json @@ -5,10 +5,10 @@ "artifact_id": "g-2026-0001", "bridge_sha256": "d07c7462aee22640661faed5262cf802ce0fcbc663f312961a39be92bf857050", "manifest_path": "corpus/artifacts/g-2026-0001/manifest.json", - "manifest_sha256": "eb825f6d575254a56d657e064f1dc582b50c5dac04cba60719dc1ce90c5a0b1b", + "manifest_sha256": "898ee2fe249574b4279da37fcaa6edb6cc680eb57e43b18686706462cd22147f", "prev_hash": null, "source_sha256": "c805df445d613b408e37337765572021265e3f5dfdc7d1fa53b22ba1600b8014", - "verdict_hash_sha256": "dd2c30d0393e6772e67f3146c41d492229f470f1be6cb3784c9715f6223c3d88", + "verdict_hash_sha256": "ae4679f6044a4c3caa0b2f3a6030648bc633b1d878957a759120f011f71ded5e", "verdict_status": "PASS" }, { @@ -16,15 +16,15 @@ "artifact_id": "g-2026-0002", "bridge_sha256": "bfdf36ffb0bb768f3409d818403990e64d4c262c6780603be87f8077387ad86d", "manifest_path": "corpus/artifacts/g-2026-0002/manifest.json", - "manifest_sha256": "365c02c11080003a7dc6872e6ed6e20e2c7d2cf971dc405dc88135a8e7e8f557", - "prev_hash": "0944bbea9b0f994469ba53db17ff78dc346464004a50e51af560844a1c6db827", + "manifest_sha256": "42bbeeaa0f0f7cf0fb9e6b8289b6910eedf9d49d4cbc38d7c894b3693c4dc1e7", + "prev_hash": "052f805331139ce12af539bc2537b44ff9428e436205ec5f93d131fd1f7d4c94", "source_sha256": "c805df445d613b408e37337765572021265e3f5dfdc7d1fa53b22ba1600b8014", - "verdict_hash_sha256": "e535c522deb0e53def892f31914767f40c1b329f4ce0ae4e325d7a941b15828d", + "verdict_hash_sha256": "afa87bb0a4e35ea8e5fa9a1adb21b29f8a0ba532571c88fd00c14dabcd4c7145", "verdict_status": "PASS" } ], "chain_algorithm": "sha256 over JCS-lite canonical entries (sorted keys, no whitespace, UTF-8)", - "chain_head": "79e22fd9c252bca9c3d87500e1418e63e27fcce001f0dc2eca84ebed48477989", + "chain_head": "42f52b37d53389f1a1e08a26e84cea209e64c9cd3544d94a6e83851dba0add53", "schema_version": "1.0.0", "signature": null, "signing_status": "not implemented — SPEC.md §12.2 requires an Ed25519 signature over the chain head; no maintainer key is published yet, so this chain is tamper-evident but not cryptographically anchored" diff --git a/corpus/artifacts/g-2026-0001/manifest.json b/corpus/artifacts/g-2026-0001/manifest.json index 797d007..00ba3f0 100644 --- a/corpus/artifacts/g-2026-0001/manifest.json +++ b/corpus/artifacts/g-2026-0001/manifest.json @@ -60,11 +60,13 @@ }, "counts": { "walls": { - "status": "known", + "status": "decoder_baseline", "expected": 0, "source": "paired Revit IFC export", "source_ifc_type": "IFCWALL", - "tolerance": 0 + "tolerance": 0, + "tracking_issue": 211, + "notes": "The paired 20 KB element fixture carries none of this type; the same .rvt carries 360, scored against the full export in the sibling manifest magnetar-2024-core-interior-slim (#211). Recorded as a decoder baseline here so the reference side stays the element fixture and the count is not double-claimed." }, "floors": { "status": "known_gap", @@ -84,18 +86,22 @@ "tolerance": 0 }, "doors": { - "status": "known", + "status": "decoder_baseline", "expected": 0, "source": "paired Revit IFC export", "source_ifc_type": "IFCDOOR", - "tolerance": 0 + "tolerance": 0, + "tracking_issue": 211, + "notes": "The paired 20 KB element fixture carries none of this type; the same .rvt carries 132, scored against the full export in the sibling manifest magnetar-2024-core-interior-slim (#211). Recorded as a decoder baseline here so the reference side stays the element fixture and the count is not double-claimed." }, "windows": { - "status": "known", + "status": "decoder_baseline", "expected": 0, "source": "paired Revit IFC export", "source_ifc_type": "IFCWINDOW", - "tolerance": 0 + "tolerance": 0, + "tracking_issue": 211, + "notes": "The paired 20 KB element fixture carries none of this type; the same .rvt carries 6, scored against the full export in the sibling manifest magnetar-2024-core-interior-slim (#211). Recorded as a decoder baseline here so the reference side stays the element fixture and the count is not double-claimed." }, "rooms_spaces": { "status": "known_gap", @@ -104,7 +110,7 @@ "source_ifc_type": "IFCSPACE", "tolerance": 0, "tracking_issue": 33, - "unsupported_feature": "typed_door_window_discrimination_and_host_binding", + "unsupported_feature": "partial_element_geometry", "notes": "Strict partition space-name recovers emit IFCSPACE; paired IFC has 0 spaces." }, "columns": { @@ -154,20 +160,24 @@ "source_ifc_type": "IFCPROPERTYSET", "tolerance": 0, "tracking_issue": 35, - "unsupported_feature": "typed_door_window_discrimination_and_host_binding", - "notes": "Current decoder emits RvtFloorGeometry property sets for plan-loop slabs (boundary annotation) plus RvtColumnGeometry sets for the 256 recovered columns (#204); not a match for the paired IFC property-set inventory." + "unsupported_feature": "revit_element_parameters_to_ifc_property_sets", + "notes": "Current decoder emits RvtFloorGeometry property sets for plan-loop slabs (boundary annotation) plus 754 RvtElementRecordGeometry sets for the columns, walls, doors and windows recovered from partition element records (#204/#211); not a match for the paired IFC property-set inventory, and no set carries a Revit element parameter yet (#35)." } }, "semantic_surface": [ - "entity_counts.IFCWALL", "entity_counts.IFCROOF", - "entity_counts.IFCDOOR", - "entity_counts.IFCWINDOW", "entity_counts.IFCBEAM", "entity_counts.IFCFLOWTERMINAL", "entity_counts.IFCUNITASSIGNMENT" ], "excluded": [ + { + "category": "walls", + "field": "entity_counts.IFCWALL", + "reason": "decoder_baseline", + "tracking_issue": 211, + "unsupported_feature": null + }, { "category": "floors", "field": "entity_counts.IFCSHADINGDEVICE", @@ -175,12 +185,26 @@ "tracking_issue": 31, "unsupported_feature": "floor_slab_extrusion_thickness" }, + { + "category": "doors", + "field": "entity_counts.IFCDOOR", + "reason": "decoder_baseline", + "tracking_issue": 211, + "unsupported_feature": null + }, + { + "category": "windows", + "field": "entity_counts.IFCWINDOW", + "reason": "decoder_baseline", + "tracking_issue": 211, + "unsupported_feature": null + }, { "category": "rooms_spaces", "field": "entity_counts.IFCSPACE", "reason": "known_gap", "tracking_issue": 33, - "unsupported_feature": "typed_door_window_discrimination_and_host_binding" + "unsupported_feature": "partial_element_geometry" }, { "category": "columns", @@ -201,7 +225,7 @@ "field": "entity_counts.IFCPROPERTYSET", "reason": "known_gap", "tracking_issue": 35, - "unsupported_feature": "typed_door_window_discrimination_and_host_binding" + "unsupported_feature": "revit_element_parameters_to_ifc_property_sets" } ], "notes": "`counts` is the normative SPEC.md §6.1 block and is what the gate reads; `semantic_surface` and `excluded` are the declared result, and tools/verdict.py fails with MANIFEST_ERROR if they disagree with what `counts` implies — so an accidental status flip is loud rather than a silent surface change. Tracking issues 31/33/34/35 are rvt-rs issues (github.com/DrunkOnJava/rvt-rs). The rvt-rs project-count manifest's `levels` category is omitted here: its status is `decoder_baseline` and it carries no `source_ifc_type`, so it is a decoder regression baseline, not a cross-witness category. The `decoder_*` fields are omitted for the same reason. The bridge file is a 20 KB element-export fixture, not a full project schedule, so seven of the eight agreeing surface fields are zero counts. See PROVENANCE.md." diff --git a/corpus/artifacts/g-2026-0001/observations/rvt-rs.json b/corpus/artifacts/g-2026-0001/observations/rvt-rs.json index f876b97..c61df8e 100644 --- a/corpus/artifacts/g-2026-0001/observations/rvt-rs.json +++ b/corpus/artifacts/g-2026-0001/observations/rvt-rs.json @@ -5,51 +5,57 @@ "input_hash_sha256": "c805df445d613b408e37337765572021265e3f5dfdc7d1fa53b22ba1600b8014", "input_role": "source", "observation": { - "building_elements_with_geometry": 256, + "building_elements_with_geometry": 754, "entity_counts": { "IFCAPPLICATION": 1, - "IFCAXIS2PLACEMENT2D": 256, - "IFCAXIS2PLACEMENT3D": 257, + "IFCAXIS2PLACEMENT2D": 754, + "IFCAXIS2PLACEMENT3D": 755, "IFCBUILDING": 1, "IFCBUILDINGSTOREY": 11, - "IFCCARTESIANPOINT": 513, + "IFCCARTESIANPOINT": 1509, "IFCCOLUMN": 256, "IFCCONVERSIONBASEDUNIT": 4, "IFCDIMENSIONALEXPONENTS": 4, - "IFCDIRECTION": 258, - "IFCEXTRUDEDAREASOLID": 256, + "IFCDIRECTION": 756, + "IFCDOOR": 132, + "IFCEXTRUDEDAREASOLID": 754, "IFCGEOMETRICREPRESENTATIONCONTEXT": 1, - "IFCLOCALPLACEMENT": 351, + "IFCLOCALPLACEMENT": 849, "IFCMATERIAL": 102, "IFCMEASUREWITHUNIT": 4, "IFCORGANIZATION": 1, "IFCOWNERHISTORY": 1, "IFCPERSON": 1, "IFCPERSONANDORGANIZATION": 1, - "IFCPRODUCTDEFINITIONSHAPE": 256, + "IFCPRODUCTDEFINITIONSHAPE": 754, "IFCPROJECT": 1, - "IFCPROPERTYSET": 320, - "IFCPROPERTYSINGLEVALUE": 1792, - "IFCRECTANGLEPROFILEDEF": 256, + "IFCPROPERTYSET": 818, + "IFCPROPERTYSINGLEVALUE": 4769, + "IFCRECTANGLEPROFILEDEF": 754, "IFCRELAGGREGATES": 3, "IFCRELCONTAINEDINSPATIALSTRUCTURE": 11, - "IFCRELDEFINESBYPROPERTIES": 320, - "IFCSHAPEREPRESENTATION": 256, + "IFCRELDEFINESBYPROPERTIES": 818, + "IFCSHAPEREPRESENTATION": 754, "IFCSITE": 1, "IFCSIUNIT": 6, "IFCSLAB": 64, "IFCSPACE": 18, - "IFCUNITASSIGNMENT": 1 + "IFCUNITASSIGNMENT": 1, + "IFCWALL": 360, + "IFCWINDOW": 6 }, "exported_building_elements": { "IFCCOLUMN": 256, + "IFCDOOR": 132, "IFCSLAB": 64, - "IFCSPACE": 18 + "IFCSPACE": 18, + "IFCWALL": 360, + "IFCWINDOW": 6 }, "material_count": 102, "storey_count": 11 }, - "observation_hash_sha256": "b1ae3c34ebf7b6261c11d65b67af240e1c398ac046f4e8838ca3a356080181d8", + "observation_hash_sha256": "d88897c6d9b8223350a831f4caf48d76d469a4d4f47815da56da6d34e9364fb7", "schema_version": "1.0.0", "semantic_surface_covered": [ "entity_counts" @@ -58,15 +64,16 @@ "partial_element_geometry", "revit_compound_assemblies_and_walltype_widths", "floor_slab_extrusion_thickness", - "typed_door_window_discrimination_and_host_binding", + "door_window_host_wall_binding", "opening_index_to_ifc_openingelement_host_join", - "schema_field_wall_instances" + "schema_field_wall_instances", + "revit_element_parameters_to_ifc_property_sets" ], "warnings": [ - "Unsupported or incomplete geometry was reported: unsupported_geometry_curve=18, unsupported_geometry_missing_level=18, unsupported_geometry_missing_dimensions=18, floor_boundary_annotation_only=64.", + "Unsupported or incomplete geometry was reported: unsupported_geometry_curve=18, unsupported_geometry_unresolved_host=138, unsupported_geometry_missing_level=29, unsupported_geometry_missing_dimensions=18, floor_boundary_annotation_only=64.", "Unmapped Revit unit identifiers were preserved in diagnostics: autodesk.unit.unit:amperes-1.0.0, autodesk.unit.unit:britishThermalUnits-1.0.1, autodesk.unit.unit:britishThermalUnitsPerDegreeFahrenheit-1.0.1, autodesk.unit.unit:britishThermalUnitsPerHour-1.0.1, autodesk.unit.unit:britishThermalUnitsPerHourCubicFoot-1.0.1, autodesk.unit.unit:britishThermalUnitsPerHourFootDegreeFahrenheit-1.0.1, autodesk.unit.unit:britishThermalUnitsPerHourSquareFoot-1.0.1, autodesk.unit.unit:britishThermalUnitsPerHourSquareFootDegreeFahrenheit-1.0.1", "11 building storey(s) lack a confident partition Level name and keep elevation fallback labels.", - "11 building storey elevation(s) were measured from partition element-record bounding boxes and 256 building element(s) bound to them by base elevation (#213); the 12 recovered Level name string(s) could not be paired with those elevations and are not asserted as storey names.", + "11 building storey elevation(s) were measured from partition element-record bounding boxes and 743 building element(s) bound to them by base elevation (#213); the 12 recovered Level name string(s) could not be paired with those elevations and are not asserted as storey names.", "Suppressed 18 low-confidence schema scan candidates from default export.", "Formats/Latest multipage integrity uncertain (checksum-page strip disabled; RVT_FORMATS_MULTIPAGE_UNVERIFIED)." ], diff --git a/corpus/artifacts/g-2026-0001/verdict.json b/corpus/artifacts/g-2026-0001/verdict.json index 1a79486..c3b0e67 100644 --- a/corpus/artifacts/g-2026-0001/verdict.json +++ b/corpus/artifacts/g-2026-0001/verdict.json @@ -2,6 +2,13 @@ "artifact_id": "magnetar-2024-core-interior", "diffs": [], "excluded": [ + { + "category": "walls", + "field": "entity_counts.IFCWALL", + "reason": "decoder_baseline", + "tracking_issue": 211, + "unsupported_feature": null + }, { "category": "floors", "field": "entity_counts.IFCSHADINGDEVICE", @@ -9,12 +16,26 @@ "tracking_issue": 31, "unsupported_feature": "floor_slab_extrusion_thickness" }, + { + "category": "doors", + "field": "entity_counts.IFCDOOR", + "reason": "decoder_baseline", + "tracking_issue": 211, + "unsupported_feature": null + }, + { + "category": "windows", + "field": "entity_counts.IFCWINDOW", + "reason": "decoder_baseline", + "tracking_issue": 211, + "unsupported_feature": null + }, { "category": "rooms_spaces", "field": "entity_counts.IFCSPACE", "reason": "known_gap", "tracking_issue": 33, - "unsupported_feature": "typed_door_window_discrimination_and_host_binding" + "unsupported_feature": "partial_element_geometry" }, { "category": "columns", @@ -35,7 +56,7 @@ "field": "entity_counts.IFCPROPERTYSET", "reason": "known_gap", "tracking_issue": 35, - "unsupported_feature": "typed_door_window_discrimination_and_host_binding" + "unsupported_feature": "revit_element_parameters_to_ifc_property_sets" } ], "independence": { @@ -72,16 +93,13 @@ "insufficient_witnesses": false, "schema_version": "1.0.0", "semantic_surface": [ - "entity_counts.IFCWALL", "entity_counts.IFCROOF", - "entity_counts.IFCDOOR", - "entity_counts.IFCWINDOW", "entity_counts.IFCBEAM", "entity_counts.IFCFLOWTERMINAL", "entity_counts.IFCUNITASSIGNMENT" ], "status": "PASS", - "verdict_hash_sha256": "dd2c30d0393e6772e67f3146c41d492229f470f1be6cb3784c9715f6223c3d88", + "verdict_hash_sha256": "ae4679f6044a4c3caa0b2f3a6030648bc633b1d878957a759120f011f71ded5e", "witnesses_compared": [ "ifc-lite", "ifcopenshell", diff --git a/corpus/artifacts/g-2026-0002/manifest.json b/corpus/artifacts/g-2026-0002/manifest.json index ed40b46..0195b1e 100644 --- a/corpus/artifacts/g-2026-0002/manifest.json +++ b/corpus/artifacts/g-2026-0002/manifest.json @@ -69,14 +69,13 @@ "notes": "Changed 2026-08-30 (#213): storey elevations now come from the partition element-record bbox base-z distribution instead of from Level name strings, so the count moved 12 -> 11 and the elevations became real. The 256 recovered OST_Columns records stand on exactly 11 distinct base elevations - 0, 31, 46, 61, 76, 91, 106, 121, 136, 151, 166 ft - and every one of the 11 equals an IfcBuildingStorey.Elevation in this export, with no false positives; the export's remaining four (-40, -20, 15, 185.5 ft) carry no column record and are not recovered. The previous 12 came from Level-like name strings that all defaulted to elevation 0.0, so only one of them matched by accident. Names are not paired with the measured elevations: there were 12 name candidates against 11 elevations, and a rank join puts Level 6 at 91 ft where this export puts Level 7, so every storey keeps an elevation-derived name. ElementId <-> Level binding is still open (#86)." }, "walls": { - "status": "known_gap", + "status": "known", "expected": 360, "source": "full Revit IFC export", "source_ifc_type": "IFCWALL", "tolerance": 0, - "tracking_issue": 30, - "unsupported_feature": "schema_field_wall_instances", - "notes": "The 20 KB element fixture expects 0 walls; this full export expects 360, so this manifest is where wall recovery is actually measured. Instance recovery is evidence-only today (#81)." + "tracking_issue": 211, + "notes": "Closed 2026-08-30 (#211): the partition element-record prologue carries a container reference at +0x32 (0xffffffffffffffff = none) and a placement-kind word at +0x42 (0xffffef7f placed instance / 0xffff8000 type-symbol envelope). Records that are standalone AND placed reproduce Revit's exported ElementId set exactly. Measured on this artifact: 360 of 360 IFCWALL recovered, exact id-set match against the export's Tag values — no false positives, no misses, tolerance 0. Bodies are the record's own bounding box (envelope, not a resolved profile or wall location curve); base/top Level binding and door/window host-wall binding stay open (#86, door_window_host_wall_binding)." }, "floors": { "status": "known_gap", @@ -96,22 +95,22 @@ "tolerance": 0 }, "doors": { - "status": "known_gap", + "status": "known", "expected": 132, "source": "full Revit IFC export", "source_ifc_type": "IFCDOOR", "tolerance": 0, - "tracking_issue": 32, - "unsupported_feature": "typed_door_window_discrimination_and_host_binding" + "tracking_issue": 211, + "notes": "Closed 2026-08-30 (#211): the partition element-record prologue carries a container reference at +0x32 (0xffffffffffffffff = none) and a placement-kind word at +0x42 (0xffffef7f placed instance / 0xffff8000 type-symbol envelope). Records that are standalone AND placed reproduce Revit's exported ElementId set exactly. Measured on this artifact: 132 of 132 IFCDOOR recovered, exact id-set match against the export's Tag values — no false positives, no misses, tolerance 0. Bodies are the record's own bounding box (envelope, not a resolved profile or wall location curve); base/top Level binding and door/window host-wall binding stay open (#86, door_window_host_wall_binding)." }, "windows": { - "status": "known_gap", + "status": "known", "expected": 6, "source": "full Revit IFC export", "source_ifc_type": "IFCWINDOW", "tolerance": 0, - "tracking_issue": 32, - "unsupported_feature": "typed_door_window_discrimination_and_host_binding" + "tracking_issue": 211, + "notes": "Closed 2026-08-30 (#211): the partition element-record prologue carries a container reference at +0x32 (0xffffffffffffffff = none) and a placement-kind word at +0x42 (0xffffef7f placed instance / 0xffff8000 type-symbol envelope). Records that are standalone AND placed reproduce Revit's exported ElementId set exactly. Measured on this artifact: 6 of 6 IFCWINDOW recovered, exact id-set match against the export's Tag values — no false positives, no misses, tolerance 0. Bodies are the record's own bounding box (envelope, not a resolved profile or wall location curve); base/top Level binding and door/window host-wall binding stay open (#86, door_window_host_wall_binding)." }, "rooms_spaces": { "status": "known_gap", @@ -129,8 +128,8 @@ "source": "full Revit IFC export", "source_ifc_type": "IFCCOLUMN", "tolerance": 0, - "tracking_issue": 204, - "notes": "Closed 2026-08-30 (#204): `partition_element_records` decodes the Revit 2024 partition element-record header (`u64` ElementId, `i64` BuiltInCategory at +0x12, bbox marker at +0x50, six `f64` feet at +0x58), keeps OST_Columns (-2000100) records whose ElementId is declared in Global/ElemTable, drops family-local bboxes (type definitions), and collapses co-located superseded generations by highest ElementId. 256 of 256, no false positives, no misses — the first category on this artifact where rvt-rs and both bridge witnesses agree exactly on a real project count." + "tracking_issue": 211, + "notes": "Closed 2026-08-30 (#204), instance rule replaced 2026-08-30 (#211): `partition_element_records` decodes the Revit 2024 partition element-record header (`u64` ElementId, `i64` BuiltInCategory at +0x12, container reference at +0x32, placement kind at +0x42, bbox marker at +0x50, six `f64` feet at +0x58) and keeps OST_Columns (-2000100) records whose ElementId is declared in Global/ElemTable and which are standalone placed instances. The #204 family-local bbox proxy and highest-id-per-footprint collapse are gone — the direct test reproduces the same 256 of 256 and additionally the exact wall / door / window id sets." }, "beams": { "status": "known", @@ -170,12 +169,15 @@ "source_ifc_type": "IFCPROPERTYSET", "tolerance": 0, "tracking_issue": 35, - "unsupported_feature": "typed_door_window_discrimination_and_host_binding", - "notes": "The ReferenceView_V1.2 export carries no IfcPropertySet at all (0, confirmed by both bridge readers); rvt-rs emits 64 RvtFloorGeometry sets for its plan-loop slab annotations plus 256 RvtColumnGeometry sets after #204. Neither side is a subset of the other." + "unsupported_feature": "revit_element_parameters_to_ifc_property_sets", + "notes": "The ReferenceView_V1.2 export carries no IfcPropertySet at all (0, confirmed by both bridge readers); rvt-rs emits 64 RvtFloorGeometry sets for its plan-loop slab annotations plus 754 RvtElementRecordGeometry sets for the 256 columns, 360 walls, 132 doors and 6 windows recovered from partition element records (#204/#211). Neither side is a subset of the other, and no set carries a Revit element parameter yet (#35)." } }, "semantic_surface": [ + "entity_counts.IFCWALL", "entity_counts.IFCROOF", + "entity_counts.IFCDOOR", + "entity_counts.IFCWINDOW", "entity_counts.IFCCOLUMN", "entity_counts.IFCBEAM", "entity_counts.IFCFLOWTERMINAL", @@ -189,13 +191,6 @@ "tracking_issue": 33, "unsupported_feature": null }, - { - "category": "walls", - "field": "entity_counts.IFCWALL", - "reason": "known_gap", - "tracking_issue": 30, - "unsupported_feature": "schema_field_wall_instances" - }, { "category": "floors", "field": "entity_counts.IFCSLAB", @@ -203,20 +198,6 @@ "tracking_issue": 31, "unsupported_feature": "floor_slab_extrusion_thickness" }, - { - "category": "doors", - "field": "entity_counts.IFCDOOR", - "reason": "known_gap", - "tracking_issue": 32, - "unsupported_feature": "typed_door_window_discrimination_and_host_binding" - }, - { - "category": "windows", - "field": "entity_counts.IFCWINDOW", - "reason": "known_gap", - "tracking_issue": 32, - "unsupported_feature": "typed_door_window_discrimination_and_host_binding" - }, { "category": "rooms_spaces", "field": "entity_counts.IFCSPACE", @@ -236,7 +217,7 @@ "field": "entity_counts.IFCPROPERTYSET", "reason": "known_gap", "tracking_issue": 35, - "unsupported_feature": "typed_door_window_discrimination_and_host_binding" + "unsupported_feature": "revit_element_parameters_to_ifc_property_sets" } ], "notes": "The full-project export of the same .rvt as g-2026-0001: 19,879 entity instances against a 20 KB element fixture. `counts` is the normative SPEC.md §6.1 block and is what the gate reads; `semantic_surface` and `excluded` are the declared result, and tools/verdict.py fails with MANIFEST_ERROR if they disagree with what `counts` implies. Only four categories are `known` — the surface is narrow by design, because a wider one would be a false claim while 360 walls, 132 doors, 256 columns and 116 spaces are unrecovered. The nine excluded categories are the deliverable here: they are the measured gap between rvt-rs and Revit's own exporter on a real project schedule, each carrying its rvt-rs tracking issue (30/31/32/33/34/35/204). Departing from the upstream rvt-rs manifest exactly as corpus/README.md documents, the `decoder_*` fields are dropped; `levels` is retained, unlike in g-2026-0001, because here it carries a `source_ifc_type` and is genuinely cross-witness visible (15 exported storeys against 12 recovered). See PROVENANCE.md." diff --git a/corpus/artifacts/g-2026-0002/observations/rvt-rs.json b/corpus/artifacts/g-2026-0002/observations/rvt-rs.json index 5c760cf..6d673bb 100644 --- a/corpus/artifacts/g-2026-0002/observations/rvt-rs.json +++ b/corpus/artifacts/g-2026-0002/observations/rvt-rs.json @@ -5,51 +5,57 @@ "input_hash_sha256": "c805df445d613b408e37337765572021265e3f5dfdc7d1fa53b22ba1600b8014", "input_role": "source", "observation": { - "building_elements_with_geometry": 256, + "building_elements_with_geometry": 754, "entity_counts": { "IFCAPPLICATION": 1, - "IFCAXIS2PLACEMENT2D": 256, - "IFCAXIS2PLACEMENT3D": 257, + "IFCAXIS2PLACEMENT2D": 754, + "IFCAXIS2PLACEMENT3D": 755, "IFCBUILDING": 1, "IFCBUILDINGSTOREY": 11, - "IFCCARTESIANPOINT": 513, + "IFCCARTESIANPOINT": 1509, "IFCCOLUMN": 256, "IFCCONVERSIONBASEDUNIT": 4, "IFCDIMENSIONALEXPONENTS": 4, - "IFCDIRECTION": 258, - "IFCEXTRUDEDAREASOLID": 256, + "IFCDIRECTION": 756, + "IFCDOOR": 132, + "IFCEXTRUDEDAREASOLID": 754, "IFCGEOMETRICREPRESENTATIONCONTEXT": 1, - "IFCLOCALPLACEMENT": 351, + "IFCLOCALPLACEMENT": 849, "IFCMATERIAL": 102, "IFCMEASUREWITHUNIT": 4, "IFCORGANIZATION": 1, "IFCOWNERHISTORY": 1, "IFCPERSON": 1, "IFCPERSONANDORGANIZATION": 1, - "IFCPRODUCTDEFINITIONSHAPE": 256, + "IFCPRODUCTDEFINITIONSHAPE": 754, "IFCPROJECT": 1, - "IFCPROPERTYSET": 320, - "IFCPROPERTYSINGLEVALUE": 1792, - "IFCRECTANGLEPROFILEDEF": 256, + "IFCPROPERTYSET": 818, + "IFCPROPERTYSINGLEVALUE": 4769, + "IFCRECTANGLEPROFILEDEF": 754, "IFCRELAGGREGATES": 3, "IFCRELCONTAINEDINSPATIALSTRUCTURE": 11, - "IFCRELDEFINESBYPROPERTIES": 320, - "IFCSHAPEREPRESENTATION": 256, + "IFCRELDEFINESBYPROPERTIES": 818, + "IFCSHAPEREPRESENTATION": 754, "IFCSITE": 1, "IFCSIUNIT": 6, "IFCSLAB": 64, "IFCSPACE": 18, - "IFCUNITASSIGNMENT": 1 + "IFCUNITASSIGNMENT": 1, + "IFCWALL": 360, + "IFCWINDOW": 6 }, "exported_building_elements": { "IFCCOLUMN": 256, + "IFCDOOR": 132, "IFCSLAB": 64, - "IFCSPACE": 18 + "IFCSPACE": 18, + "IFCWALL": 360, + "IFCWINDOW": 6 }, "material_count": 102, "storey_count": 11 }, - "observation_hash_sha256": "b1ae3c34ebf7b6261c11d65b67af240e1c398ac046f4e8838ca3a356080181d8", + "observation_hash_sha256": "d88897c6d9b8223350a831f4caf48d76d469a4d4f47815da56da6d34e9364fb7", "schema_version": "1.0.0", "semantic_surface_covered": [ "entity_counts" @@ -58,15 +64,16 @@ "partial_element_geometry", "revit_compound_assemblies_and_walltype_widths", "floor_slab_extrusion_thickness", - "typed_door_window_discrimination_and_host_binding", + "door_window_host_wall_binding", "opening_index_to_ifc_openingelement_host_join", - "schema_field_wall_instances" + "schema_field_wall_instances", + "revit_element_parameters_to_ifc_property_sets" ], "warnings": [ - "Unsupported or incomplete geometry was reported: unsupported_geometry_curve=18, unsupported_geometry_missing_level=18, unsupported_geometry_missing_dimensions=18, floor_boundary_annotation_only=64.", + "Unsupported or incomplete geometry was reported: unsupported_geometry_curve=18, unsupported_geometry_unresolved_host=138, unsupported_geometry_missing_level=29, unsupported_geometry_missing_dimensions=18, floor_boundary_annotation_only=64.", "Unmapped Revit unit identifiers were preserved in diagnostics: autodesk.unit.unit:amperes-1.0.0, autodesk.unit.unit:britishThermalUnits-1.0.1, autodesk.unit.unit:britishThermalUnitsPerDegreeFahrenheit-1.0.1, autodesk.unit.unit:britishThermalUnitsPerHour-1.0.1, autodesk.unit.unit:britishThermalUnitsPerHourCubicFoot-1.0.1, autodesk.unit.unit:britishThermalUnitsPerHourFootDegreeFahrenheit-1.0.1, autodesk.unit.unit:britishThermalUnitsPerHourSquareFoot-1.0.1, autodesk.unit.unit:britishThermalUnitsPerHourSquareFootDegreeFahrenheit-1.0.1", "11 building storey(s) lack a confident partition Level name and keep elevation fallback labels.", - "11 building storey elevation(s) were measured from partition element-record bounding boxes and 256 building element(s) bound to them by base elevation (#213); the 12 recovered Level name string(s) could not be paired with those elevations and are not asserted as storey names.", + "11 building storey elevation(s) were measured from partition element-record bounding boxes and 743 building element(s) bound to them by base elevation (#213); the 12 recovered Level name string(s) could not be paired with those elevations and are not asserted as storey names.", "Suppressed 18 low-confidence schema scan candidates from default export.", "Formats/Latest multipage integrity uncertain (checksum-page strip disabled; RVT_FORMATS_MULTIPAGE_UNVERIFIED)." ], diff --git a/corpus/artifacts/g-2026-0002/verdict.json b/corpus/artifacts/g-2026-0002/verdict.json index 0839ccd..c459b85 100644 --- a/corpus/artifacts/g-2026-0002/verdict.json +++ b/corpus/artifacts/g-2026-0002/verdict.json @@ -9,13 +9,6 @@ "tracking_issue": 33, "unsupported_feature": null }, - { - "category": "walls", - "field": "entity_counts.IFCWALL", - "reason": "known_gap", - "tracking_issue": 30, - "unsupported_feature": "schema_field_wall_instances" - }, { "category": "floors", "field": "entity_counts.IFCSLAB", @@ -23,20 +16,6 @@ "tracking_issue": 31, "unsupported_feature": "floor_slab_extrusion_thickness" }, - { - "category": "doors", - "field": "entity_counts.IFCDOOR", - "reason": "known_gap", - "tracking_issue": 32, - "unsupported_feature": "typed_door_window_discrimination_and_host_binding" - }, - { - "category": "windows", - "field": "entity_counts.IFCWINDOW", - "reason": "known_gap", - "tracking_issue": 32, - "unsupported_feature": "typed_door_window_discrimination_and_host_binding" - }, { "category": "rooms_spaces", "field": "entity_counts.IFCSPACE", @@ -56,7 +35,7 @@ "field": "entity_counts.IFCPROPERTYSET", "reason": "known_gap", "tracking_issue": 35, - "unsupported_feature": "typed_door_window_discrimination_and_host_binding" + "unsupported_feature": "revit_element_parameters_to_ifc_property_sets" } ], "independence": { @@ -93,14 +72,17 @@ "insufficient_witnesses": false, "schema_version": "1.0.0", "semantic_surface": [ + "entity_counts.IFCWALL", "entity_counts.IFCROOF", + "entity_counts.IFCDOOR", + "entity_counts.IFCWINDOW", "entity_counts.IFCCOLUMN", "entity_counts.IFCBEAM", "entity_counts.IFCFLOWTERMINAL", "entity_counts.IFCUNITASSIGNMENT" ], "status": "PASS", - "verdict_hash_sha256": "e535c522deb0e53def892f31914767f40c1b329f4ce0ae4e325d7a941b15828d", + "verdict_hash_sha256": "afa87bb0a4e35ea8e5fa9a1adb21b29f8a0ba532571c88fd00c14dabcd4c7145", "witnesses_compared": [ "ifc-lite", "ifcopenshell",