如果没有自己的 ShapeRepresentation,IfcRoof 将无法工作

问题描述

我尝试用 Ifcslab 创建一个平面屋顶。 IfcRoof 应该被 Ifcslab 分解。我用 ShapeRepresentation 创建了平板并给了它坐标。 BuidlingSMART 说我的屋顶不需要 ShapeRespresentation 当楼板已经有一个时。但是显然当我运行我的应用程序并尝试在 Xplorer 中查看我的模型时它不起作用。屋顶不存在,但是当我为屋顶创建自己的 ShapeRepresentation 时,它可以工作。

这就是我想用板创建屋顶的方式:

var aggregation = model.Instances.New<IfcRelAggregates>();
                aggregation.RelatingObject = slabroof;
                aggregation.Relatedobjects.Add(roof);

有没有办法像在 buildingSMART 中编写的那样,在没有额外的屋顶 ShapeRepresentation 的情况下创建这种平屋顶?

解决方法

您可能颠倒了聚合关系。对于IfcRelAggregatesRelatingObject边应该是指整体(即IfcRoof),RelatedObjects边应该是指部分(即IfcSlab) .如果你反过来做,观看者将找不到任何带有几何图形的屋顶部分,也不会显示任何内容。