如何使用C#创建IFC文件及IFC对象(无需依赖Revit等软件API)
C# 生态可用的无依赖IFC创建成熟方案
首先纠正一个认知偏差:你提到的xbim并非仅支持几何内容创建,它是C#生态里应用最广的开源IFC处理库之一,核心能力就是全量覆盖IFC 2x3、IFC4、IFC4x3标准定义的所有对象类型,完全可以满足脱离Revit等建模软件、从自定义类实例生成IFC对象的需求。
除了xbim之外,C#端还有三个生产环境可用的成熟方案:
- xbim Toolkit:基于IFC官方EXPRESS模式编译生成强类型C#类,所有IFC标准对象(建筑构件、属性集、关系对象、材料对象等)都可直接实例化,几何创建只是它的附属功能模块。
核心使用逻辑非常简单,基础对象创建的参考代码如下:
如果不需要几何表达,完全可以只创建非几何的IFC对象、挂载计算得到的属性值,生成的文件符合IFC标准规范,可以被所有主流IFC查看器读取。// 初始化内存IFC模型,指定使用IFC4版本 using (var model = IfcStore.Create(IfcSchemaVersion.Ifc4, XbimStoreType.InMemoryModel)) { // 开启事务,xbim所有模型修改操作必须在事务内执行 using (var txn = model.BeginTransaction("CreateWallInstance")) { // 初始化IFC强制要求的项目根节点 var project = model.Instances.New<IfcProject>(p => { p.Name = "CalculationOutputProject"; p.UnitsInContext = model.Instances.New<IfcUnitAssignment>(); }); // 实例化IFC墙对象,直接映射计算程序输出的属性 var loadBearingWall = model.Instances.New<IfcWall>(wall => { wall.GlobalId = Guid.NewGuid().ToIfcGuid(); wall.Name = "Wall-001"; wall.ObjectType = "200mm厚混凝土承重墙"; wall.LoadBearing = true; }); // 建立IFC要求的层级关联,将构件挂载到项目结构下 project.AddBuildingElement(loadBearingWall); txn.Commit(); } // 输出为标准IFC文件 model.SaveAs("calc_output.ifc"); } - GeometryGymIFC:纯C#实现的IFC处理库,对IFC新版本标准的跟进速度更快,内置了大量工程领域常用的构件、属性集模板辅助方法,适合结构计算、能耗计算这类工程计算程序直接对接输出,同样不需要依赖任何外部建模软件。
- IfcOpenShell C# 绑定:基于成熟的跨平台IFC处理库IfcOpenShell封装,底层为C++实现,大文件处理性能优于纯C#库,缺点是部署时需要附带对应运行平台的原生依赖文件。
通用实现思路
不管选用哪个库,脱离建模软件生成标准IFC文件的核心逻辑都是三层映射,不需要调用Revit等软件的API:
- 业务映射层:建立自有计算程序的类实例和IFC标准类型的映射规则,比如自定义的梁类对应
IfcBeam,计算得到的配筋率、挠度值对应挂载到IfcPropertySet的单值属性中。 - 结构补全层:IFC格式有强制的结构校验规则,必须包含从
IfcProject到IfcSite、IfcBuilding、IfcBuildingStorey的层级结构,以及对象之间的关联关系(比如构件和属性集的关联、构件和材料的关联),生成时需要自动补全这些必填节点,避免输出的文件无法被识别。 - 几何关联层(可选):如果需要输出几何表达,可以将计算得到的截面、坐标、拉伸高度等参数转换为IFC支持的几何实体(如拉伸体、边界表示),关联到对应构件即可;如果只需要输出非几何的计算结果、台账信息,完全可以跳过这一步。
其他语言的参考方案
如果后续有跨语言开发需求,这几个生态的方案也经过了大量生产环境验证:
- Python生态:优先选用IfcOpenShell的Python绑定,社区案例丰富,文档完善,是目前开源BIM领域应用最广的IFC处理工具
- Java生态:可选用BIMserver配套的IFC Java工具库,支持全量IFC对象的读写创建
- JS/TS生态:可选用web-ifc,支持在浏览器或Node.js环境下直接生成IFC对象,适合Web端计算程序直接输出结果
内容的提问来源于stack exchange,提问作者alcerrimo
相关产品推荐
相关产品推荐

