Files
FreeCADWasmDev/docs/p6/bim-pure-function-module-batch-3dd067dc34b79b376b1a6780-runtime.json
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

590 lines
20 KiB
JSON

{
"schema": "freecad-web-bim-python-family-module-batch-runtime/v1",
"taskId": "FW-P6-FPA-Y",
"batchId": "3dd067dc34b79b376b1a6780",
"module": "BIM",
"tier": "tier-2-pure",
"family": "pure-function",
"status": "pass_with_boundaries",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"dispatcher": "fc_web_dispatch_json",
"route": {
"command": "bim.pythonFamilyBatch",
"native": "freecad-source/src/WebAssembly/FreeCADCoreProbe/BimRuntimeProbe.cpp:fc_web_dispatch_json",
"facade": "web/src/bim-python-family-batch-facade.ts",
"worker": "web/src/bim.worker.ts"
},
"input": {
"cmd": "bim.pythonFamilyBatch",
"args": {
"tier": "tier-2-pure",
"records": [
{
"apiId": "py:BIM:function:getLengthOfRebar",
"name": "getLengthOfRebar",
"family": "pure-function",
"kind": "function",
"sourcePath": "src/Mod/BIM/ArchRebar.py",
"sourceLine": 730,
"disposition": "not_implemented"
},
{
"apiId": "py:BIM:function:adjust_list_len",
"name": "adjust_list_len",
"family": "pure-function",
"kind": "function",
"sourcePath": "src/Mod/BIM/ArchRoof.py",
"sourceLine": 64,
"disposition": "not_implemented"
},
{
"apiId": "py:BIM:function:find_inters",
"name": "find_inters",
"family": "pure-function",
"kind": "function",
"sourcePath": "src/Mod/BIM/ArchRoof.py",
"sourceLine": 73,
"disposition": "not_implemented"
},
{
"apiId": "py:BIM:function:getSectionData",
"name": "getSectionData",
"family": "pure-function",
"kind": "function",
"sourcePath": "src/Mod/BIM/ArchSectionPlane.py",
"sourceLine": 68,
"disposition": "not_implemented"
}
]
}
},
"inputSha256": "39dba4ecc2109f6ebd1d83cddbfbacef8618ec416f49acc1441d867abcf9eeaa",
"result": {
"ok": true,
"cmd": "bim.pythonFamilyBatch",
"schema": "freecad-web-bim/python-family-batch/v1",
"module": "BIM",
"tier": "tier-2-pure",
"source": "freecad-source",
"records": [
{
"apiId": "py:BIM:function:getLengthOfRebar",
"name": "getLengthOfRebar",
"family": "pure-function",
"status": "exposed",
"code": "native_fixture",
"message": "Official BIM native object/method fixture executed through the FreeCAD Python runtime",
"native": true,
"resourcesReleased": true,
"sourceEntry": "src/Mod/BIM/ArchRebar.py",
"sourceLine": 730,
"sourceVerified": true,
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"parameterSchema": "official FreeCAD source fixture inputs",
"returnSchema": "typed native result object",
"replay": "native-source-method",
"result": {
"length": 12.5
}
},
{
"apiId": "py:BIM:function:adjust_list_len",
"name": "adjust_list_len",
"family": "pure-function",
"status": "exposed",
"code": "native_fixture",
"message": "Official BIM native object/method fixture executed through the FreeCAD Python runtime",
"native": true,
"resourcesReleased": true,
"sourceEntry": "src/Mod/BIM/ArchRoof.py",
"sourceLine": 64,
"sourceVerified": true,
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"parameterSchema": "official FreeCAD source fixture inputs",
"returnSchema": "typed native result object",
"replay": "native-source-method",
"result": {
"values": [
1,
2,
9,
9
],
"count": 4
}
},
{
"apiId": "py:BIM:function:find_inters",
"name": "find_inters",
"family": "pure-function",
"status": "not_implemented",
"code": "method_evidence_pending",
"message": "BIM geometry-value source execution failed: 'Base.Vector' object has no attribute 'Vertexes'",
"native": true,
"resourcesReleased": true,
"sourceEntry": "src/Mod/BIM/ArchRoof.py",
"sourceLine": 73,
"sourceVerified": true,
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"replay": "native-source-disposition"
},
{
"apiId": "py:BIM:function:getSectionData",
"name": "getSectionData",
"family": "pure-function",
"status": "exposed",
"code": "native_fixture",
"message": "Official BIM native object/method fixture executed through the FreeCAD Python runtime",
"native": true,
"resourcesReleased": true,
"sourceEntry": "src/Mod/BIM/ArchSectionPlane.py",
"sourceLine": 68,
"sourceVerified": true,
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"parameterSchema": "official FreeCAD source fixture inputs",
"returnSchema": "typed native result object",
"replay": "native-source-method",
"result": {
"objectCount": 0,
"cutplanePresent": false,
"onlySolids": true,
"clip": false,
"direction": [
0,
0,
1
]
}
}
],
"count": 4,
"resourcesReleased": true
},
"resultSha256": "02b79a1509ecfc185aa38f9148e30ce4f77cef4e1fd630914eab61693afe0c9c",
"replay": {
"equal": true,
"resultSha256": "02b79a1509ecfc185aa38f9148e30ce4f77cef4e1fd630914eab61693afe0c9c"
},
"facadeWorker": {
"ready": {
"kind": "ready",
"action": "bim.pythonFamilyBatch"
},
"success": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "bim-python-family-batch-success",
"result": {
"ok": true,
"cmd": "bim.pythonFamilyBatch",
"schema": "freecad-web-bim/python-family-batch/v1",
"module": "BIM",
"tier": "tier-2-pure",
"source": "freecad-source",
"records": [
{
"apiId": "py:BIM:function:getLengthOfRebar",
"name": "getLengthOfRebar",
"family": "pure-function",
"status": "exposed",
"code": "native_fixture",
"message": "Official BIM native object/method fixture executed through the FreeCAD Python runtime",
"native": true,
"resourcesReleased": true,
"sourceEntry": "src/Mod/BIM/ArchRebar.py",
"sourceLine": 730,
"sourceVerified": true,
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"parameterSchema": "official FreeCAD source fixture inputs",
"returnSchema": "typed native result object",
"replay": "native-source-method",
"result": {
"length": 12.5
}
},
{
"apiId": "py:BIM:function:adjust_list_len",
"name": "adjust_list_len",
"family": "pure-function",
"status": "exposed",
"code": "native_fixture",
"message": "Official BIM native object/method fixture executed through the FreeCAD Python runtime",
"native": true,
"resourcesReleased": true,
"sourceEntry": "src/Mod/BIM/ArchRoof.py",
"sourceLine": 64,
"sourceVerified": true,
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"parameterSchema": "official FreeCAD source fixture inputs",
"returnSchema": "typed native result object",
"replay": "native-source-method",
"result": {
"values": [
1,
2,
9,
9
],
"count": 4
}
},
{
"apiId": "py:BIM:function:find_inters",
"name": "find_inters",
"family": "pure-function",
"status": "not_implemented",
"code": "method_evidence_pending",
"message": "BIM geometry-value source execution failed: 'Base.Vector' object has no attribute 'Vertexes'",
"native": true,
"resourcesReleased": true,
"sourceEntry": "src/Mod/BIM/ArchRoof.py",
"sourceLine": 73,
"sourceVerified": true,
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"replay": "native-source-disposition"
},
{
"apiId": "py:BIM:function:getSectionData",
"name": "getSectionData",
"family": "pure-function",
"status": "exposed",
"code": "native_fixture",
"message": "Official BIM native object/method fixture executed through the FreeCAD Python runtime",
"native": true,
"resourcesReleased": true,
"sourceEntry": "src/Mod/BIM/ArchSectionPlane.py",
"sourceLine": 68,
"sourceVerified": true,
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"parameterSchema": "official FreeCAD source fixture inputs",
"returnSchema": "typed native result object",
"replay": "native-source-method",
"result": {
"objectCount": 0,
"cutplanePresent": false,
"onlySolids": true,
"clip": false,
"direction": [
0,
0,
1
]
}
}
],
"count": 4,
"resourcesReleased": true
}
},
"repeat": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "bim-python-family-batch-repeat",
"result": {
"ok": true,
"cmd": "bim.pythonFamilyBatch",
"schema": "freecad-web-bim/python-family-batch/v1",
"module": "BIM",
"tier": "tier-2-pure",
"source": "freecad-source",
"records": [
{
"apiId": "py:BIM:function:getLengthOfRebar",
"name": "getLengthOfRebar",
"family": "pure-function",
"status": "exposed",
"code": "native_fixture",
"message": "Official BIM native object/method fixture executed through the FreeCAD Python runtime",
"native": true,
"resourcesReleased": true,
"sourceEntry": "src/Mod/BIM/ArchRebar.py",
"sourceLine": 730,
"sourceVerified": true,
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"parameterSchema": "official FreeCAD source fixture inputs",
"returnSchema": "typed native result object",
"replay": "native-source-method",
"result": {
"length": 12.5
}
},
{
"apiId": "py:BIM:function:adjust_list_len",
"name": "adjust_list_len",
"family": "pure-function",
"status": "exposed",
"code": "native_fixture",
"message": "Official BIM native object/method fixture executed through the FreeCAD Python runtime",
"native": true,
"resourcesReleased": true,
"sourceEntry": "src/Mod/BIM/ArchRoof.py",
"sourceLine": 64,
"sourceVerified": true,
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"parameterSchema": "official FreeCAD source fixture inputs",
"returnSchema": "typed native result object",
"replay": "native-source-method",
"result": {
"values": [
1,
2,
9,
9
],
"count": 4
}
},
{
"apiId": "py:BIM:function:find_inters",
"name": "find_inters",
"family": "pure-function",
"status": "not_implemented",
"code": "method_evidence_pending",
"message": "BIM geometry-value source execution failed: 'Base.Vector' object has no attribute 'Vertexes'",
"native": true,
"resourcesReleased": true,
"sourceEntry": "src/Mod/BIM/ArchRoof.py",
"sourceLine": 73,
"sourceVerified": true,
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"replay": "native-source-disposition"
},
{
"apiId": "py:BIM:function:getSectionData",
"name": "getSectionData",
"family": "pure-function",
"status": "exposed",
"code": "native_fixture",
"message": "Official BIM native object/method fixture executed through the FreeCAD Python runtime",
"native": true,
"resourcesReleased": true,
"sourceEntry": "src/Mod/BIM/ArchSectionPlane.py",
"sourceLine": 68,
"sourceVerified": true,
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"parameterSchema": "official FreeCAD source fixture inputs",
"returnSchema": "typed native result object",
"replay": "native-source-method",
"result": {
"objectCount": 0,
"cutplanePresent": false,
"onlySolids": true,
"clip": false,
"direction": [
0,
0,
1
]
}
}
],
"count": 4,
"resourcesReleased": true
}
},
"crossModule": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "bim-python-family-batch-cross",
"result": {
"ok": true,
"cmd": "bim.pythonFamilyBatch",
"schema": "freecad-web-bim/python-family-batch/v1",
"module": "BIM",
"tier": "tier-2-pure",
"source": "freecad-source",
"records": [
{
"apiId": "py:Part:method:BuildingPart.getShapes",
"name": "getLengthOfRebar",
"family": "pure-function",
"status": "not_implemented",
"code": "unmatched_source_record",
"message": "BIM API record is not part of this module-scoped adapter",
"native": true,
"resourcesReleased": true,
"sourceEntry": "src/Mod/BIM/ArchRebar.py",
"sourceLine": 730,
"sourceVerified": false,
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"parameterSchema": "source-declared",
"returnSchema": "source-declared"
}
],
"count": 1,
"resourcesReleased": true
}
},
"malformed": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "bim-python-family-batch-invalid",
"error": {
"code": "invalid_request",
"message": "BIM Python family batch envelope is invalid"
}
},
"cancelled": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "bim-python-family-batch-cancel",
"error": {
"code": "cancelled",
"message": "request was cancelled"
}
},
"reset": {
"kind": "reset",
"requestId": "bim-python-family-batch-reset"
},
"traceSha256": "67bdf62f6d1bf42955d2de3b64788a59a8932743a03c53c728be16e3649f4be2"
},
"dispositionCounts": {
"exposed": 3,
"restricted": 0,
"nonportable": 0,
"not_implemented": 1
},
"records": [
{
"apiId": "py:BIM:function:getLengthOfRebar",
"name": "getLengthOfRebar",
"family": "pure-function",
"status": "exposed",
"code": "native_fixture",
"message": "Official BIM native object/method fixture executed through the FreeCAD Python runtime",
"sourceEntry": "src/Mod/BIM/ArchRebar.py",
"sourceLine": 730,
"sourceVerified": true,
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"result": {
"length": 12.5
},
"evidenceSha256": "ad37170ea77eb6ae066477b449ad0dbb6710777a68051fb62ee2ad4cfd2d313e"
},
{
"apiId": "py:BIM:function:adjust_list_len",
"name": "adjust_list_len",
"family": "pure-function",
"status": "exposed",
"code": "native_fixture",
"message": "Official BIM native object/method fixture executed through the FreeCAD Python runtime",
"sourceEntry": "src/Mod/BIM/ArchRoof.py",
"sourceLine": 64,
"sourceVerified": true,
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"result": {
"values": [
1,
2,
9,
9
],
"count": 4
},
"evidenceSha256": "3af5ac2b7e678b7e53ce395415d342b92c0fbe4217267ca689896ec4454e06d0"
},
{
"apiId": "py:BIM:function:find_inters",
"name": "find_inters",
"family": "pure-function",
"status": "not_implemented",
"code": "method_evidence_pending",
"message": "BIM geometry-value source execution failed: 'Base.Vector' object has no attribute 'Vertexes'",
"sourceEntry": "src/Mod/BIM/ArchRoof.py",
"sourceLine": 73,
"sourceVerified": true,
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "86ee35b3061e743e69eb80350411afe49a5992bb06d0767493e6636bce64a674"
},
{
"apiId": "py:BIM:function:getSectionData",
"name": "getSectionData",
"family": "pure-function",
"status": "exposed",
"code": "native_fixture",
"message": "Official BIM native object/method fixture executed through the FreeCAD Python runtime",
"sourceEntry": "src/Mod/BIM/ArchSectionPlane.py",
"sourceLine": 68,
"sourceVerified": true,
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"result": {
"objectCount": 0,
"cutplanePresent": false,
"onlySolids": true,
"clip": false,
"direction": [
0,
0,
1
]
},
"evidenceSha256": "b04966de7644d58bad94f6c4c5f70de8b68688c3218ab1ba62e45b07ea457cd9"
}
],
"sourceEvidence": [
{
"apiId": "py:BIM:function:getLengthOfRebar",
"path": "src/Mod/BIM/ArchRebar.py",
"line": 730,
"declaration": "def getLengthOfRebar(rebar):",
"sha256": "e90d2e62da7337c83a931e7faaae1bb0fc29a09ddcd041c0b4fdecb9b46592c2"
},
{
"apiId": "py:BIM:function:adjust_list_len",
"path": "src/Mod/BIM/ArchRoof.py",
"line": 64,
"declaration": "def adjust_list_len(lst, newLn, val):",
"sha256": "29b094374797137a9fe0b67f77c0e564b437ff7c84c403d50181cf11c98a96ed"
},
{
"apiId": "py:BIM:function:find_inters",
"path": "src/Mod/BIM/ArchRoof.py",
"line": 73,
"declaration": "def find_inters(edge1, edge2, infinite1=True, infinite2=True):",
"sha256": "29b094374797137a9fe0b67f77c0e564b437ff7c84c403d50181cf11c98a96ed"
},
{
"apiId": "py:BIM:function:getSectionData",
"path": "src/Mod/BIM/ArchSectionPlane.py",
"line": 68,
"declaration": "def getSectionData(source):",
"sha256": "f9ebc8666544aaf09ab33176bef3bc29d45ab86e6c5e417642035fb972269c06"
}
],
"resources": {
"resourcesReleased": true,
"documentMutation": false
},
"artifacts": {
"wasm": {
"path": "web/public/kernel/FreeCADWebBimRuntimeProbe.wasm",
"sha256": "e75045dae5d11688f3dcdbff95a979691e1459b6eb742e2ff490c6fe9c1270d5"
},
"loader": {
"path": "web/public/kernel/FreeCADWebBimRuntimeProbe.js",
"sha256": "e473eff7ee205aaae713edbcfc097e1b50949f7984bcf4667045ae5094cabe80"
},
"data": {
"path": "web/public/kernel/FreeCADWebBimRuntimeProbe.data",
"sha256": "99a3d54021b0f172b0b29ee92b55a47c179afaa2ffe92f1c4222906bc72daf19"
}
},
"boundaries": [
"BIM records are exposed only where the native FreeCAD Python fixture returned typed values; GUI-only and unsupported records remain explicit boundaries.",
"The repeat response is served by the native dispatcher cache after the first source execution to preserve FreeCAD type-registration safety.",
"All statuses, values and hashes derive from compiled FreeCAD through fc_web_dispatch_json; JavaScript only validates and transports the batch envelope."
]
}