不同Ifc版本的相同代码的不同结果

问题描述

当我运行下面的代码以使用 Ifc4 文件和 Xbim.Ifc4 接口获取 ifcWindow 区域数量时,它运行良好。

code

但是,当我尝试在与 Ifc2x3 文件相同的架构上运行并使用 Xbim.Ifc2x3 接口时,它无法识别 RelatingPropertyDeFinition 属性并执行以下错误error

谢谢

解决方法

xbim Toolkit 中的 IFC 2x3 模式实现实现了 IFC4 接口,以保持代码向后兼容并能够为两种模式编写一个代码库。但是 IFC4 没有实现 IFC2x3 接口。 public Progression(Digit digit) { this.digit = digit; int n = digit.getNumber(); this.numbers = LongStream.iterate(n,current -> current * 10 + n) .limit(digit.getTimes()).boxed() .collect(Collectors.toList()); } 是 IFC4 中的新增功能,因此您必须重新构建代码。但我想,如果您使用 IFC2x3 接口,它将适用于 IFC2x3 文件。如果您使用 IFC4 接口,它将适用于两种模式版本。事实上,我们计划将来永远只有一套接口,以避免混淆。