Files
FreeCADWasmDev/docs/current/IFC_QUANTITY_PROGRESS.md

3.4 KiB

IFC Quantity Editing And Duplicate Execution

Subsequent result: IFC_MEMBERSHIP_PROGRESS.md records passing material, classification and membership scenarios and the current semantic supplement acceptance. The remaining-area list below is historical.

2026-09-16. Full scope remains 1508; semantic export is still incomplete.

The previous continuations implemented boolean property edits and native wall/column/slab export. This continuation adds IFC4 existing simple-quantity editing through the cached upstream IfcOpenShell schema API. Supported types: length, area, volume, count, weight and time. Units, formulas, descriptions, quantity-set identity and related-object references remain unchanged. Shared quantities must have consistent values; nonnumeric, null, negative and nonfinite values reject before destination commit. Unsupported complex quantity edits, new quantity sets and unit/formula changes still reject explicitly.

The standalone tools/fixtures/semantic-quantities.ifc contains real extruded columns, explicit units and six shared quantities. It is a manually authored IFC4 fixture, separate from the existing independent Revit fixture. The new cases compare actual upstream reparsed values for both related products, native volume, edited values, FCStd persistence, failed destination/source preservation, transaction abort and subsequent recovery.

Only FreeCADWebBimRuntimeProbe was incrementally built; OCCT and other module targets were reused. Public artifacts and the BIM preview were synchronized. Only the selected semantic requirement was executed, not the full BIM group.

Evidence: business-evidence/266816da4ea763887c126a8a-20260916T021213009057.json. The semantic case has 18 scenarios and 31 passing assertions, including nine quantity scenarios. The unchanged independent verifier also passes. The outer runner correctly reports these remaining required proof areas:

  • added_deleted_objects
  • classifications
  • materials

This does not certify every IFC schema/class, authoring of arbitrary quantity sets, or a new browser quantity editor. Continue missing behavior using the native exporter, imported graph and local desktop BIM/IfcOpenShell sources. Do not relabel existing assertions to remove the remaining proof requirements.

Why IFC Was Repeated

Previously --reuse skipped only fully accepted requirements. A semantic requirement with passing existing assertions but missing other proof areas started the same WASM validation again. The runner now retains matching failed evidence and returns unchanged_failure_preserved, without executing a case or changing acceptance. It checks the source/contract/artifact fingerprint, case inputs, runner hash, evidence hash/files and relevant issue observations. Changed inputs permit execution; --retry-failed is an explicit diagnostic override. The unattended runner forwards that override when requested.

Measured on identical inputs: initial focused execution 20.240 seconds; second request 0.275 seconds with executedCount=0, the same evidence path and unchanged incomplete status. This is avoided duplicate execution, not an improvement in IFC geometry compute speed.

Verification: 43 business tests, 25 acceptance tests, 180 scheduler tests and three semantic snapshot tests passed. New tests cover failure preservation, dependency changes, explicit retry, altered evidence, new issues and changed runner code. No full sweep was rerun merely to refresh historical counts.