Files
FreeCADWasmDev/docs/current/bim-executable-url-unblock-20260913.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

3.1 KiB

BIM Executable URL Unblock

Two commands implemented and published: BIM_Help and BIM_Examples. Formal receipt: bim-external-url-pipeline.json. No tests, browser checks, acceptance or benchmarks ran. This is not complete BIM or project parity.

Fixed Causes

  1. The existing BIMDesktopCommandRegistry.h is an executable dispatch table, but capability discovery only recognized older marked command branches. It repeatedly queued these completed source URL implementations as native gaps. Discovery now recognizes just the two audited ExternalUrl entries, checks the registry consumer, parses their embedded Python scripts with AST, and requires calls to the supplied desktop getUrl methods plus mounted UI. Document/geometry rows are not promoted by table membership.
  2. Help and Examples both emitted a shared freecad-bim-help event. Help retained the last event URL even when it came from Examples. Both mounted links now use the matching current command response: canonical ID, name, exposed status, result command and destination are checked. No stale event state is retained.
  3. BIMDesktopCommands.h still defined EmptyTrash, Extrude and Fuse scripts also defined by the newer BIMSolidCommands.h. Removed the superseded definitions; the executable registry continues to use the newer implementation. Existing files and native business implementations were retained, not rewritten.
  4. Implementation packets followed only the first level of local includes, so they contained the registry but omitted its actual script helpers. The same source collector now follows the reachable local-header closure with a seen set. It never leaves FreeCADCoreProbe or follows system includes; excerpt budgets remain unchanged. The packet includes all six relevant BIM headers.

Measured Steps

Step Seconds
Initial capability generation 8.266
Initial implementation packet 0.656
Pipeline module registry 0.102
Pipeline capability registry, cached 0.082
Pipeline link preflight 0.043
BIM incremental compile/link 37.735
Artifact synchronization 6.816
Deferred business metadata 0.961
Pipeline total 45.739
Packet refresh with transitive headers 0.731
Frontend build 8.591
Public asset sync inside frontend build 7.120

Both native and frontend builds exited 0. Existing OCCT/FreeCAD libraries were reused. No new kernel, Worker or modeling algorithm was introduced. Frontend asset sync remains most of this build's elapsed time; these are build timings, not application performance benchmarks.

Continuation

Reuse the URL table, compiled BIM artifact and current response links. Do not send these two commands back through speculative native-marker repair. Read the newly included script headers directly for remaining document commands.

At route generation the inventory was 1282/1451 routed, 169 requiring implementation. These are route counts, not acceptance or verified parity. Provider backoff observed at the start is independent of these local defects; this change does not establish restored model service or global throughput.