From 2276628a1f97b9bcb5a40a9df3d3d68501cb503f Mon Sep 17 00:00:00 2001 From: Griffin Long <151978260+DrunkOnJava@users.noreply.github.com> Date: Sun, 30 Aug 2026 11:12:20 -0400 Subject: [PATCH] =?UTF-8?q?corpus:=20mirror=20rvt-rs=20#217=20=E2=80=94=20?= =?UTF-8?q?IFC4=20attribute=20arity=20and=20storey=20binding?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit rvt-rs #217 makes every emitted entity carry its full IFC4 attribute list and binds storeys from element-record base elevations (11/11 elevations match Revit's export; 256/338 elements contained). Both rvt-rs observations change (storey_count 12 -> 11, arity-complete entities); verdicts stay PASS with the same surfaces because IFCBUILDINGSTOREY is decoder_baseline. Index re-chained; validators pass. --- corpus/MANIFEST_INDEX.json | 4 ++-- .../g-2026-0001/observations/rvt-rs.json | 17 +++++++++-------- corpus/artifacts/g-2026-0002/manifest.json | 2 +- .../g-2026-0002/observations/rvt-rs.json | 17 +++++++++-------- 4 files changed, 21 insertions(+), 19 deletions(-) diff --git a/corpus/MANIFEST_INDEX.json b/corpus/MANIFEST_INDEX.json index ad8cb53..cfd753f 100644 --- a/corpus/MANIFEST_INDEX.json +++ b/corpus/MANIFEST_INDEX.json @@ -16,7 +16,7 @@ "artifact_id": "g-2026-0002", "bridge_sha256": "bfdf36ffb0bb768f3409d818403990e64d4c262c6780603be87f8077387ad86d", "manifest_path": "corpus/artifacts/g-2026-0002/manifest.json", - "manifest_sha256": "4001f362217eaaebcbd220b9c195dbc515a27e97ea6aec3df05fb33ad71121d0", + "manifest_sha256": "365c02c11080003a7dc6872e6ed6e20e2c7d2cf971dc405dc88135a8e7e8f557", "prev_hash": "0944bbea9b0f994469ba53db17ff78dc346464004a50e51af560844a1c6db827", "source_sha256": "c805df445d613b408e37337765572021265e3f5dfdc7d1fa53b22ba1600b8014", "verdict_hash_sha256": "e535c522deb0e53def892f31914767f40c1b329f4ce0ae4e325d7a941b15828d", @@ -24,7 +24,7 @@ } ], "chain_algorithm": "sha256 over JCS-lite canonical entries (sorted keys, no whitespace, UTF-8)", - "chain_head": "5a0e33f2a438b4319199cc7781e400b6627b82307d859e85a1a593f6f988d5e5", + "chain_head": "79e22fd9c252bca9c3d87500e1418e63e27fcce001f0dc2eca84ebed48477989", "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/observations/rvt-rs.json b/corpus/artifacts/g-2026-0001/observations/rvt-rs.json index aa92a13..f876b97 100644 --- a/corpus/artifacts/g-2026-0001/observations/rvt-rs.json +++ b/corpus/artifacts/g-2026-0001/observations/rvt-rs.json @@ -11,7 +11,7 @@ "IFCAXIS2PLACEMENT2D": 256, "IFCAXIS2PLACEMENT3D": 257, "IFCBUILDING": 1, - "IFCBUILDINGSTOREY": 12, + "IFCBUILDINGSTOREY": 11, "IFCCARTESIANPOINT": 513, "IFCCOLUMN": 256, "IFCCONVERSIONBASEDUNIT": 4, @@ -19,7 +19,7 @@ "IFCDIRECTION": 258, "IFCEXTRUDEDAREASOLID": 256, "IFCGEOMETRICREPRESENTATIONCONTEXT": 1, - "IFCLOCALPLACEMENT": 352, + "IFCLOCALPLACEMENT": 351, "IFCMATERIAL": 102, "IFCMEASUREWITHUNIT": 4, "IFCORGANIZATION": 1, @@ -29,10 +29,10 @@ "IFCPRODUCTDEFINITIONSHAPE": 256, "IFCPROJECT": 1, "IFCPROPERTYSET": 320, - "IFCPROPERTYSINGLEVALUE": 1536, + "IFCPROPERTYSINGLEVALUE": 1792, "IFCRECTANGLEPROFILEDEF": 256, "IFCRELAGGREGATES": 3, - "IFCRELCONTAINEDINSPATIALSTRUCTURE": 1, + "IFCRELCONTAINEDINSPATIALSTRUCTURE": 11, "IFCRELDEFINESBYPROPERTIES": 320, "IFCSHAPEREPRESENTATION": 256, "IFCSITE": 1, @@ -47,9 +47,9 @@ "IFCSPACE": 18 }, "material_count": 102, - "storey_count": 12 + "storey_count": 11 }, - "observation_hash_sha256": "8f2282bc280c2c103dd54fa7fe6e20dae71811598064871b790e033676ae62be", + "observation_hash_sha256": "b1ae3c34ebf7b6261c11d65b67af240e1c398ac046f4e8838ca3a356080181d8", "schema_version": "1.0.0", "semantic_surface_covered": [ "entity_counts" @@ -63,9 +63,10 @@ "schema_field_wall_instances" ], "warnings": [ - "Unsupported or incomplete geometry was reported: unsupported_geometry_curve=18, unsupported_geometry_missing_level=274, unsupported_geometry_missing_dimensions=18, floor_boundary_annotation_only=64.", + "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.", "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", - "12 building storey name(s) came from partition Level-like strings (RE-15/#86 via PR #117); ElementId↔Level binding is still pending.", + "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.", "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/manifest.json b/corpus/artifacts/g-2026-0002/manifest.json index fc9683a..ed40b46 100644 --- a/corpus/artifacts/g-2026-0002/manifest.json +++ b/corpus/artifacts/g-2026-0002/manifest.json @@ -66,7 +66,7 @@ "source_ifc_type": "IFCBUILDINGSTOREY", "tolerance": 0, "tracking_issue": 33, - "notes": "rvt-rs recovers 12 storeys from partition Level-like strings (elevation often 0.0 without ArcWall trailers); the export carries 15. ElementId <-> Level binding is still open (#86)." + "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", diff --git a/corpus/artifacts/g-2026-0002/observations/rvt-rs.json b/corpus/artifacts/g-2026-0002/observations/rvt-rs.json index 5993211..5c760cf 100644 --- a/corpus/artifacts/g-2026-0002/observations/rvt-rs.json +++ b/corpus/artifacts/g-2026-0002/observations/rvt-rs.json @@ -11,7 +11,7 @@ "IFCAXIS2PLACEMENT2D": 256, "IFCAXIS2PLACEMENT3D": 257, "IFCBUILDING": 1, - "IFCBUILDINGSTOREY": 12, + "IFCBUILDINGSTOREY": 11, "IFCCARTESIANPOINT": 513, "IFCCOLUMN": 256, "IFCCONVERSIONBASEDUNIT": 4, @@ -19,7 +19,7 @@ "IFCDIRECTION": 258, "IFCEXTRUDEDAREASOLID": 256, "IFCGEOMETRICREPRESENTATIONCONTEXT": 1, - "IFCLOCALPLACEMENT": 352, + "IFCLOCALPLACEMENT": 351, "IFCMATERIAL": 102, "IFCMEASUREWITHUNIT": 4, "IFCORGANIZATION": 1, @@ -29,10 +29,10 @@ "IFCPRODUCTDEFINITIONSHAPE": 256, "IFCPROJECT": 1, "IFCPROPERTYSET": 320, - "IFCPROPERTYSINGLEVALUE": 1536, + "IFCPROPERTYSINGLEVALUE": 1792, "IFCRECTANGLEPROFILEDEF": 256, "IFCRELAGGREGATES": 3, - "IFCRELCONTAINEDINSPATIALSTRUCTURE": 1, + "IFCRELCONTAINEDINSPATIALSTRUCTURE": 11, "IFCRELDEFINESBYPROPERTIES": 320, "IFCSHAPEREPRESENTATION": 256, "IFCSITE": 1, @@ -47,9 +47,9 @@ "IFCSPACE": 18 }, "material_count": 102, - "storey_count": 12 + "storey_count": 11 }, - "observation_hash_sha256": "8f2282bc280c2c103dd54fa7fe6e20dae71811598064871b790e033676ae62be", + "observation_hash_sha256": "b1ae3c34ebf7b6261c11d65b67af240e1c398ac046f4e8838ca3a356080181d8", "schema_version": "1.0.0", "semantic_surface_covered": [ "entity_counts" @@ -63,9 +63,10 @@ "schema_field_wall_instances" ], "warnings": [ - "Unsupported or incomplete geometry was reported: unsupported_geometry_curve=18, unsupported_geometry_missing_level=274, unsupported_geometry_missing_dimensions=18, floor_boundary_annotation_only=64.", + "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.", "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", - "12 building storey name(s) came from partition Level-like strings (RE-15/#86 via PR #117); ElementId↔Level binding is still pending.", + "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.", "Suppressed 18 low-confidence schema scan candidates from default export.", "Formats/Latest multipage integrity uncertain (checksum-page strip disabled; RVT_FORMATS_MULTIPAGE_UNVERIFIED)." ],