用途:在 Bonsai 中按 IFC 原生方式创建与放置建筑构件(墙、楼板、板、柱、梁、门、窗、家具等),并为其分配 IFC 类型、材质与空间归属。
主要能力:提供基于类型的构件创建流水线(获取模型、确保表示上下文、创建/获取类型、配置类型材质、创建实例、分配类型、创建并分配几何表示、放入空间树、设置放置);类型与表示模板映射(如 IfcWallType 配 LAYERSET_AXIS2、IfcColumnType 配 PROFILESET);材质分配(墙/板用 IfcMaterialLayerSet,柱/梁用 IfcMaterialProfileSet,门窗用 IfcMaterialConstituentSet);几何创建(add_wall_representation、add_slab_representation、add_profile_representation 及矩形、I 形、圆形截面);放置与空间容器分配;开洞与填充(feature.add_feature、void.add_filling);Bonsai 参数化阵列(BBIM_Array)。
使用方式:所有 IFC 操作通过 ifcopenshell.api.run() 执行;脚本中优先使用该 API 而非 bpy.ops.bim.*。移动 Blender 对象后需调用 bpy.ops.bim.edit_object_placement() 同步 IFC 放置。相关对象/产品参数必须传列表。
限制与注意:必须使用 bonsai.* 而非 blenderbim.*;操作前检查 IfcStore.get_file() 是否为 None;创建几何前确认表示上下文存在;构件放入楼层用 spatial.assign_container 而非 aggregate.assign_object;开洞用 feature.add_feature,void.add_opening 在 v0.8.0+ 不存在;材质应分配给类型而非单个实例;Bonsai 不是导入/导出器,IFC 即原生文档。具体 API 签名、完整示例与反模式见其 references 目录,资料未提供更多细节。