用途:web-ifc 是 ThatOpen 组件栈底层的 WASM 版 IFC 解析引擎,可在浏览器与 Node.js 中以接近原生速度读写 IFC 文件,核心类为 IfcAPI。使用 @thatopen/components 时通常由 IfcLoader 封装,本技能面向需要底层 IFC 访问、自定义几何提取或批量属性查询的场景。
主要能力:模型生命周期管理(OpenModel、OpenModels、CreateModel、SaveModel、CloseModel);数据查询(GetAllLines、GetLineIDsWithType、GetLine、GetLines、GetRawLineData);几何提取(GetFlatMesh、GetGeometry、GetVertexArray、GetIndexArray,以及 StreamAllMeshes 等流式接口);属性查询(ifcApi.properties 下的 getItemProperties、getPropertySets、getSpatialStructure 等);GUID 转换与写入(WriteLine、DeleteLine、CreateIfcEntity)。
必要用法:先 SetWasmPath 再 await Init(),之后才能调用其他方法;用 .size() 和 .get(i) 访问 Vector,不可用数组下标;顶点为 6 个浮点数 [x,y,z,nx,ny,nz],矩阵为列主序 16 浮点数;用完调用 CloseModel(modelID),不再需要实例时调用 Dispose();不要创建多个 IfcAPI 实例。大模型建议用流式几何接口并设置 COORDINATE_TO_ORIGIN: true。
限制:许可证 MPL-2.0;WASM 路径需与安装的 npm 版本匹配;flatten 在大模型上性能开销大;LoadAllGeometry 不适合大模型。其余细节暂未提供。