Missing Doors Opening [0.15.162.jar / 0.15.181.jar]
BIMserver [0.15.162.jar on Win7] render attached IFC model with some missing doors.
IFC++ render the openings correctly.
Steps to reproduce the behaviour:
- Checkin the attached IFC
- Check the doors
- Found a few of them does not have openings at wall
Expected behavior Should have door opening as in IFC++ / original model in FreeCAD
Screenshots

Other missing Windows / Doors

Similar result latest 0.15.181.jar on Win 7.
Same IFC file.

Thanks for testing the latest release! I think this is related to the following issue: https://github.com/opensourceBIM/BIMserver/issues/1063
I have extracted the wall for debugging purposes [1].
This is the message IfcConvert (0.6.0b0 (OCC 7.3.0)) has about the specific wall:
[Error] {0D09gOgWH95BCTVau1lLiY} Opening subtraction failed for 21 openings
#67=IfcWall('0D09gOgWH95BCTVau1lLiY',#68,'Wall__1F_3.1mH','',$,#69,#1,$,.MOVABLE.)
@aothms Could you have a look at this?
Thanks checking!
The issue is a non-manifold situation within the same shell as a result of the openings, see image. This pretty rare and caused perhaps also by that what we see here is one single wall element (which is not recommended by the standard, wall elements should not have discontinuities).
A workaround would be to break up your wall at that location (left side of the glass pane) into multiple elements or do a union with the part above so that the non-manifoldness does not occur anymore.
In the meantime I'll keep the issue open, but I can't promise to invest time into this soon.

Thanks! Do not understand the technicality :( but I just lower the triangular window to avoid it coincident to the top edge of the wall. It works :) Do not know if it should just works like IFC++ ?
And a new problem shows.
There is a subtraction element but it is (was) not subtracted in BIMserver (it shows correctly in IFC++)




Your last issue is due to some adventurous modelling construction:
#348=IFCWALL('0D09gOgWH95BCTVau1lLiY',#5,'Wall__1F_3.1mH','',$,#63,#347,$,.MOVABLE.);
#379=IFCBUILDINGELEMENTPROXY('1gCQMP6fzAAg6EH6G$m$Bl',#5,'Wall__2F_Slab_Upstand',$,$,#63,#378,$,.ELEMENT.);
#380=IFCRELAGGREGATES('0L7LOXdVj37e7Bd$BIWYx_',#5,'Addition','',#348,(#379));
#443=IFCOPENINGELEMENT('0cK1npQyz6HOK0rVRwZpuu',#5,'Extru__1F_RampParapet02_Outline',$,$,#63,#442,$,$);
#444=IFCRELVOIDSELEMENT('3$3mYNHbf0lxlTIVtSy550',#5,'Subtraction','',#348,#443);
So your wall consists of two products. The main bulk of representation items is in the representation of the wall #348 and a little piece is in the building element proxy #379. These two parts are then connected via an aggregation relationship with the wall being the whole and the proxy being the part. Now you expect the feature subtraction on the wall to also have an effect on the proxy. IfcQuery seems to interpret the situation like that, but many other applications don't. I might have missed something in the specification, but I think you have created an ambiguous model. How should an application know whether to first carry out the aggregation or the subtraction? I don't think these implicit boolean operators have any precedence specified.
Semantically, it might be more appropriate to replace IfcRelAggregates with IfcRelProjectsElement and IfcBuildingElementProxy with IfcProjectionElement. This is feature addition and the additive equivalent to feature substraction with IfcRelVoidsElement and IfcOpeningElement. This would not solve the precedence issue though.
#379=IFCPROJECTIONELEMENT('1gCQMP6fzAAg6EH6G$m$Bl',#5,'Wall__2F_Slab_Upstand',$,$,#63,#378,$,$);
#380=IFCRELPROJECTSELEMENT('0L7LOXdVj37e7Bd$BIWYx_',#5,'Addition','',#348,#379);
To solve the precedence in Boolean operations, you could just include the representation items of the proxy into the wall representation and remove the proxy and aggregation. The fixed file displays properly in BIMserver.

With the latter solution, you lose the treatment of "Wall__2F_Slab_Upstand" as an independent product, but I think you don't need it: There are no properties attached to it and you have squashed all other internal walls into one single product anyway. Though as @aothms said, it would be cleaner to model wall segments as separate products with one or few representation items each instead of one giant product with many representation items.
Another hint to improve your IFC: Do not abuse feature subtraction, i.e. IfcRelVoidsElement/IfcOpeningElement for Boolean operations that don't really establish a feature/opening, for example #443. Better model these as CSG on the representation level (with IfcBooleanResult). This implies that subtraction is carried out on single items (and not an aggregation), but you can reuse the second CSG operand to subtract from multiple items.
Thanks :D Probably ping @yorikvanhavre to have a look when there is a gap.
Any update regarding this issue?
