bonsai-impl-bcf
BCF Workflows in Bonsai
Version: Bonsai v0.8.x | Blender 4.2.0+ | Python 3.11 Module path:
bonsai.bim.module.bcf— NEVERblenderbim.bim.module.bcfBCF versions: v2.1 and v3.0 (viabcf.bcfxmllibrary bundled with IfcOpenShell) Dependencies: bonsai-core-architecture, bonsai-syntax-elements
Critical Warnings
- ALWAYS set
scene.BCFProperties.authorto a valid email BEFORE creating topics or comments. Default"john@doe.com"is a placeholder — replace it. - ALWAYS use
BcfStore.get_bcfxml()to access BCF data. NEVER accessBcfStore.bcfxmldirectly —get_bcfxml()handles lazy initialization and path resolution. - ALWAYS call
bpy.ops.bim.save_bcf_project()to persist changes. BCF modifications are in-memory only until saved. - NEVER mix BCF v2.1 and v3.0 operations on the same project. The version is set at creation/load time and MUST remain consistent.
- ALWAYS ensure an active camera exists before calling
bpy.ops.bim.add_bcf_viewpoint(). The operator polls for an active scene camera. - NEVER assume viewpoint coordinates match the loaded IFC model coordinates. Viewpoint activation applies georeference offset corrections.
- ALWAYS use
bonsai.*imports. NEVER useblenderbim.*— renamed in 2024 (v0.8.0+). - BCF v3.0 REQUIRES non-empty
statusandtypefields on topics. These are optional in v2.1 but mandatory in v3.0.
More from openaec-foundation/computational-design-day-delft-march-2026
blender-core-api
Guides Blender Python API usage including bpy module structure, RNA data access, context system, dependency graph, and operator invocation. Activates when writing bpy scripts, creating Blender addons, or accessing Blender data blocks programmatically.
1blender-syntax-panels
Defines Blender UI panel creation including bpy.types.Panel, draw() method, UILayout API (row/column/box/split), bl_space_type, bl_region_type, bl_category, sub-panels, draw_header, menus, and UIList. Activates when creating custom Blender panels, building addon interfaces, or working with UILayout elements.
1ifcos-syntax-api
Documents the ifcopenshell.api module system with all 30+ API modules, invocation patterns via api.run() and direct module calls, parameter conventions, and module categorization. Activates when creating IFC entities, modifying properties, managing spatial structure, or using any ifcopenshell.api function.
1ifcos-impl-mep
Guides MEP (Mechanical, Electrical, Plumbing) modeling in IFC using ifcopenshell.api.system including IfcSystem, IfcDistributionElement, ports, connections, flow segments, fittings, and MEP-specific property sets. Activates when creating HVAC systems, piping networks, electrical circuits, or MEP elements in IFC models.
1ifcos-impl-cost
Guides IFC cost management using ifcopenshell.api.cost including cost schedules, cost items, cost values, cost quantities, and 5D BIM workflows. Activates when implementing cost estimation in IFC models, creating cost schedules, or linking quantities to cost items.
1bonsai-impl-qto
Implements Bonsai quantity takeoff (QTO) workflows including calculating quantities from IFC element geometry, using QtoCalculator for automated base quantity computation, managing IfcElementQuantity sets (area, length, volume, weight), custom quantity set definitions, and bulk quantity operations across building elements. Covers the complete QTO pipeline from geometry analysis to quantity export.
1