用途:处理 100MB 以上 IFC 文件,或优化运行缓慢的 IfcOpenShell 脚本,重点解决批量几何处理与内存占用问题。
主要能力:给出几何处理与文件规模决策树;强调批量几何必须用 ifcopenshell.geom.iterator 而非循环调用 create_shape(),并传入 multiprocessing.cpu_count() 启用多线程;支持 include 过滤只处理指定类型;提供属性提取、批量 API 调用、内存释放与按类型顺序处理等模式;附文件规模与资源占用、迭代器与 create_shape 对比、几何设置影响、查询复杂度等参考表。
必要用法:批量几何用 iterator(settings, model, cpu_count()),循环中 get() 后立即处理并 next();仅需数据时跳过几何,用 by_type() 与 get_psets();大文件提取为普通 dict 后 del model 并 gc.collect();避免 get_info(recursive=True)、避免重复打开同一文件、避免同时保存全部几何。
适用场景:IFC 数据提取、几何导出、按类型分批处理超大模型。
限制:性能数字为资料给出的参考值,实际取决于硬件与模型;disable-opening-subtractions 会降低几何精度;超大文件需 32GB 以上内存或子进程隔离;该技能对 IFC2X3、IFC4、IFC4X3 模式敏感度低。