SuperAPI AI 工具集

ifcos-syntax-api

编程与开发

查看项目

更新于 10-15 22:17

技能介绍

用途:本技能用于指导编写 IfcOpenShell 的 Python 代码,涉及创建、修改或删除 IFC 实体时避免错误做法。核心是介绍 IfcOpenShell API 模块系统的调用规范。

主要能力与约束:必须用 ifcopenshell.api.run() 或直接模块调用进行 IFC 变更,不得直接改实体属性(如 wall.Name="X"),应改用 attribute.edit_attributes;调用前必须 import ifcopenshell.api(惰性加载);文件对象须作为函数名后的第一个位置参数;不得虚构 API 模块或函数名,共 35 个模块;model 之后一律用关键字参数;生产代码禁用 model.create_entity(),改用 root.create_entity;建元素前须先搭建完整项目(IfcProject → 单位 → 上下文 → 空间层级);v0.8+ 多数关系函数要求 products 传列表。

必要用法:提供两种等价调用风格(api.run 点号字符串与直接模块调用),须在项目内统一。给出项目 bootstrap 顺序:project.create_file(version=…) → root.create_entity(IfcProject) → unit.assign_unit → context.add_context(先 Model 后 Body 子上下文)→ 空间层级 aggregate.assign_object 逐级挂接。还给出创建墙体并分配类型、材质、几何、空间容器、属性集的完整模式,以及改属性、开洞填充、分类、样式、安全删除等常用操作。

参数约定:pset.edit_pset 的 Python 类型自动映射 IFC 类型;几何放置用 4x4 NumPy 矩阵,坐标以米为单位时保持 is_si=True;project.create_file 参数名为 version 而非 schema;v0.8+ spatial.assign_container、aggregate.assign_object、type.assign_type、material.assign_material 等以列表传参。

适用场景:用 Python 构建/编辑 IFC 建筑模型、生成墙体楼板构件、分配材质与属性、搭建空间结构与分类。限制:依赖 ifcos-syntax-fileio 处理文件打开、写出与事务;IFC4X3 专属实体(如 IfcFacility、IfcAlignment、IfcRoad)在 IFC2X3/IFC4 中不可用;其余细节以实际资料为准,暂未提供更多说明。