ifcos-impl-mep
MEP System Implementation Guide
Quick Reference
Critical Warnings
- ALWAYS create ports on distribution elements BEFORE attempting to connect them. Elements without ports cannot participate in flow networks.
- ALWAYS create at least two ports per segment element (one inlet, one outlet). Segments are flow-through elements.
- NEVER connect two ports with the same flow direction. A
SOURCEport MUST connect to aSINKport. - NEVER use
IfcDistributionSystemin IFC2X3 models. Useifc_class="IfcSystem"for IFC2X3 compatibility. - ALWAYS use
ifcopenshell.api.run("system.add_system", ...)to create systems. NEVER usemodel.create_entity("IfcDistributionSystem")directly — it skips required relationship setup. - ALWAYS assign elements to a system AFTER creating port connections. The system is a logical grouping; ports define the physical topology.
- NEVER assume
system.remove_systemdeletes contained elements. It ONLY removes the system grouping; elements and their ports remain in the model. - ALWAYS use
ifcopenshell.api.run("root.create_entity", ...)for MEP elements, notmodel.create_entity(). The API sets GlobalId, ownership, and validates predefined types. - ALWAYS pass
productsas a list tosystem.assign_system(v0.8+ convention).
Decision Tree: MEP Workflow
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.
1bonsai-impl-bcf
Guides implementation of BIM Collaboration Format (BCF) workflows in Bonsai including creating BCF topics, adding viewpoints with camera snapshots, managing comments, importing/exporting BCF files (v2.1 and v3.0), and integrating BCF issue tracking with IFC element references. Activates when working with BCF files, BIM issue tracking, clash report management, or collaboration workflows in Bonsai.
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