使用 Xbim 获取 IfcSpace 的 FinishFloorHeight

Get FinishFloorHeight of IfcSpace using Xbim

我正在尝试使用 Xbim 获取 IfcSpace 的 FinishFloorHeight。

知道怎么做吗?

如果您查看 xbim docs 中的示例,您将了解如何获取 space 的数据。要获得 link 中定义的完成楼层高度,您可以使用此代码:

private static double? GetFinishFloorHeight(IIfcSpace space)
{
    return space.IsDefinedBy
        .SelectMany(r => r.RelatingPropertyDefinition.PropertySetDefinitions)
        .OfType<IIfcElementQuantity>()
        .Where(qs => qs.Name == "Qto_SpaceBaseQuantities")
        .SelectMany(qset => qset.Quantities)
        .OfType<IIfcQuantityLength>()
        .Where(q => q.Name == "FinishFloorHeight")
        .FirstOrDefault()?.LengthValue;
}