我正在从事一个需要使用xBim解析IFC文件的项目,我需要同时支持Ifc2x3和Ifc4。大多数Ifc类名及其属性在Ifc2x3和Ifc4中是相同的,但是在xBim的对象模型中,Ifc2x3和Ifc4名称空间中的相同类并不共享一个公共基类或接口,因此我必须编写两次相同的代码。我的意思是,如果我正在编写一个函数,使空间体积缩小,或者类似于类似的简单内容,我将不得不为Ifc2x3版本的IfcSpace编写一次,而为Ifc4版本的IfcSpace编写另一次。
我考虑过使用编译时指令来决定加载哪个名称空间,但我不确定这是否是个好主意。我知道这是一个奇怪的请求,但还有其他方法可以避免编写相同的代码两次吗?
发布于 2018-04-14 11:14:05
您应该能够使用Xbim.Ifc4.Interfaces命名空间中的接口。对于这个场景,这些接口在Ifc2x3和Ifc4实现中是常见的。
Xbim底部的示例演示了使用单个代码库跨Ifc模式工作的场景。http://docs.xbim.net/quick-start.html
https://stackoverflow.com/questions/49765173
复制相似问题