如何获取 HVAC 系统中的元素?我可以使用以下代码访问模型中的系统列表:
var systems = model.Instances.OfType<IfcSystem>();
这将返回模型中所有系统的列表。如何访问系统中的元素?
因此,这是通过查看标准来理解 IFC 数据模型的问题- 特别是组分配数据模型:https ://standards.buildingsmart.org/IFC/RELEASE/IFC4_1/FINAL/HTML/link/group-assignment .htm
在 IFC 中,一个IfcSystem
子类IfcGroup
. 要获取 Group 的成员,您需要访问IfcRelAssignsToGroup
通过 提供的关系IsGroupedBy
,从中可以获取RelatedObjects
包含实际元素的集合。
所以在 xbim 你最终会得到类似的东西:
var hvacSystem = model.Instances.OfType<IfcSystem>().First(s => s.GlobalId="<Your Hvac Identifier>");
var hvacElements = hvacSystem.IsGroupedBy?.RelatedObjects.OfType<IIfcProduct>();