gpt4 book ai didi

c# - 如何获取具体IfcElement的 Material 数据

转载 作者:行者123 更新时间:2023-12-05 05:02:04 31 4
gpt4 key购买 nike

在xbim例子中的基本操作https://docs.xbim.net/examples/basic-model-operations.html ,它展示了如何检索特定 IfcElement 的单值属性。基于此,我尝试获取 Material 数据。

我写了以下内容:

var id = "3NBPkknun6EuV9fpeE6rFh";

var theWall = model.Instances.FirstOrDefault<IIfcElement>(d => d.GlobalId == id);

var materials = theWall.HasAssociations
.Where(r => r.RelatingMaterial is IIfcMaterialProfileSet)
.SelectMany(r=> ((IIfcMaterialProfileSet)r.RelatingMaterial).MaterialProfiles)
.OfType<IIfcMaterialProfile>();

它给我这个错误:

'IIfcRelAssociates' does not contain a definition for 'RelatingMaterial' and no accessible extension method 'RelatingMaterial' accepting a first argument of type 'IIfcRelAssociates' could be found (are you missing a using directive or an assembly reference?)

我知道我必须使用 IfcRelAssociatesMaterial,但我不知道如何使用。如何检索 Material 信息?

最佳答案

IIfcObjectDefinition 的 HasAssociations返回一组 IIfcRelAssociates但您只需要派生类型 IIfcRelAssociatesMaterial其中有 RelatingMaterial属性(property)。参见 https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2/HTML/schema/ifcproductextension/lexical/ifcrelassociatesmaterial.htm

因此,只需添加 .OfType<IIfcRelAssociatesMaterial> 即可将查询限制为 Material 关联。即

var materials = theWall.HasAssociations.OfType<IIfcRelAssociatesMaterial>() 
// rest of the query

关于c# - 如何获取具体IfcElement的 Material 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62406787/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com