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