SuperAPI AI 工具集

bonsai-errors-common

测试与质量

查看项目

更新于 10-15 22:17

技能介绍

用途:面向 Bonsai v0.8.x(Blender 4.2.0+、Python 3.11)的排错参考,按错误决策树定位问题并给出修复方式。模块路径统一为 bonsai.,不再使用 blenderbim.。

主要能力:

  1. 导入与环境:blenderbim 报错需改为 bonsai.*;bpy 报错说明未用 Blender 自带 Python,应执行 blender --background --python my_script.py;升级后可用 find ~/.config/blender/4.2/scripts/addons/bonsai/ -name "pycache" -type d -exec rm -rf {} + 清理缓存。
  2. IFC 运行时:访问前判断 IfcStore.get_file() 是否为 None;实体引用不可跨操作缓存,需用 model.by_id(step_id) 重新查询;创建几何前确认存在 Model/Body/MODEL_VIEW 上下文;void.add_opening 已由 feature.add_feature 取代。
  3. Schema 校验:用 ifcopenshell.api.project.create_file 与 unit.assign_unit 建项目,不要直接用 ifcopenshell.file();物理构件用 spatial.assign_container,空间层级用 aggregate.assign_object;v0.8+ 的 products、related_objects 等参数须传列表。
  4. 几何与放置:Blender 变换不会自动同步 IFC,需调用 bpy.ops.bim.edit_object_placement();不要在 Blender 打开时外部改 .ifc。
  5. 属性集:用 pset.add_pset 与 pset.edit_pset 写入,UI 不刷新时调用 PsetData.purge();重量计算前需先赋材料密度。
  6. 操作符 poll:需有活动 IFC 文件、正确选择与模式,图纸操作还需活动相机。
  7. 图纸、BCF、碰撞检测:图纸需正交相机与 InkScape;BCF 用 BcfStore.get_bcfxml(),版本不可混用;碰撞检测读取磁盘文件,运行前先保存项目并定义 Group A/B。

限制:IfcStore 非线程安全,需主线程执行,延迟任务用 bpy.app.timers.register;撤销后引用失效须重新查询。具体版本兼容与依赖细节以官方资料为准。