Files
FreeCADWasmDev/docs/current/bim-ifc-command-boundaries.md
wangdequan 9a7c4f0335 Save FreeCAD Web workspace sources and user validation evidence
IFC native binding remains incomplete; preserve accurate test results.
2026-09-15 22:01:58 +08:00

2.4 KiB

IFC command batch 53f6f622702e4f2e8331fb3e

The four selected commands use the existing BIM native document handler and mounted BimPanelIfcTask. Command-specific native success branches now follow successful execution and FCStd serialization. Errors still follow the native failure branch.

  • IFC_ConvertDocument calls nativeifc.ifc_tools.convert_document and requires a resulting native IFC file.
  • IFC_Diff resolves the selected object's project or active document and returns nativeifc.ifc_diff.get_diff text to the mounted task.
  • IFC_Expand retains the local desktop implementation's selected-provider expansion followed by document structural expansion and returns native selection and display data.
  • IFC_MakeProject exports the selected objects, opens the resulting IFC with real IfcOpenShell, imports the project using strategy 2, and only then removes the source tree. A stale destination is removed before export. The imported project becomes the returned selection. IFC bytes use the existing OPFS and download path; FCStd uses the existing document persistence path.

The adapter requires native diff/file output on apply and accepts cancellation without those outputs.

Removed duplicate registration markers beside the shared command list; the four markers now occur only beside their command-specific native success branches. Route receipt generation remains with the outer pipeline. Moved the four commands' action metadata from the unrelated axis/material script into the panel/IFC handler, so cancellation reaches the adapter without being mistaken for an apply result missing diff or IFC file output.

Remaining boundaries: the real IfcOpenShell bindings and native IFC providers must be present in the staged runtime; the existing guard rejects import stubs. Selected-object expansion depends on native ViewObject proxies. FCStd persistence across runtime restart also depends on native IFC proxy restoration and its associated IFC data; this batch does not establish that restoration behavior. Failures after IFC export can leave an exported file or partially imported native objects, although the source tree is retained when project import returns without a native IFC project.

No builds, tests, business acceptance, browser validation, benchmarks, or historical reconciliation were run. The outer pipeline owns incremental build, sync, and route receipts; these edits do not claim business acceptance.