SuperAPI AI 工具集

ifcos-impl-geometry

编程与开发

查看项目

更新于 10-15 22:17

技能介绍

用途:面向 IFC 文件的几何处理,既包括从已有构件提取几何用于可视化或导出,也包括为构件创建新的几何表示。适合建筑模型转换、网格导出、CAD 布尔运算和参数化构件生成等场景。

主要能力:读取方面,单个构件用 ifcopenshell.geom.create_shape(settings, element),批量(100+ 构件)用 ifcopenshell.geom.iterator(settings, model, cpu_count) 并支持 include/exclude 过滤。输出可选三角网格(USE_BREP_DATA=False)或精确 BRep(USE_BREP_DATA=True)。坐标空间通过 USE_WORLD_COORDS 控制,跨构件比较位置时应设为 True。创建方面,先调用 context.add_context 建立 Model 根上下文与 Body/MODEL_VIEW 子上下文,再用 geometry.add_wall_representation、add_profile_representation、add_mesh_representation 等生成表示,并配合 assign_representation 与 edit_object_placement;开洞用 void.add_opening 完成布尔减。可从 shape.geometry 读取 verts、faces、edges,并经 serializers 导出 glTF。

限制与注意:create_shape 需包在 try/except RuntimeError 中,因为 IfcProject、IfcBuildingStorey 等不一定有几何;不要假设坐标单位为米,应先用 ifcopenshell.util.unit.calculate_unit_scale 换算;有几何的构件需调用 edit_object_placement,否则定位在全局原点;避免直接使用 model.create_entity("IfcExtrudedAreaSolid") 替代现成 API。几何 API 与 schema 无关,IFC2X3、IFC4、IFC4X3 通用,但 IFC4X3 的 alignment 几何不在标准 API 覆盖内,BRep 序列化也受 schema 能力影响。高级 BRep 操作需 pythonOCC。具体价格、平台与安装步骤资料未提供。