Missing Boolean-Operation IfcPolygonalFaceSet
Hi xBim-Team,
I've got a project, which has trouble generating correct geometry from boolean operations. Mainly walls have trouble cutting out windows.
I've tried your xBim Xplorer (version 4 & 5) and both versions throw errors (see screenshots). The current version seems to be able to render it correctly but still misses supporting "IfcPolygonalFaceSet".


By further comparing the geometry of a wall with another viewer (bimvision), further geometry details of the complex wall are completely missing.

The combination of two walls also generates overlaps, which would not occur.

By further investigating the material definitions, where some have an impact on the shape parameters, we found out that the previously depicted wall is based on "IfcMaterialProfileSet". The profile (#188=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,'Component 2',#181) uses an outer curve (#181=IFCINDEXEDPOLYCURVE(#179,(IFCLINEINDEX((1,2,3,4,1))),$)) to describe extrusion area.
The following part of the IFC-file should be interessting:
#168= IFCDIRECTION((1.,0.,0.));
#170= IFCDIRECTION((0.,0.,1.));
#172= IFCCARTESIANPOINT((0.,0.,-0.35));
#174= IFCAXIS2PLACEMENT3D(#172,#170,#168);
#175= IFCLOCALPLACEMENT(#151,#174);
#177= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#66,$,.MODEL_VIEW.,$);
#179= IFCCARTESIANPOINTLIST2D(((0.,0.24),(8.49,0.24),(8.49,0.49),(0.,0.49)));
#181= IFCINDEXEDPOLYCURVE(#179,(IFCLINEINDEX((1,2,3,4,1))),$);
#188= IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,'Component 2',#181);
#191= IFCCARTESIANPOINTLIST2D(((0.,0.),(8.49,0.),(8.49,0.24),(0.,0.24)));
#193= IFCINDEXEDPOLYCURVE(#191,(IFCLINEINDEX((1,2,3,4,1))),$);
#200= IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,'Component 1',#193);
#201= IFCCOMPOSITEPROFILEDEF(.AREA.,'AW 25 STB + 24 WDVS-oP-Kopie (490 x 8490)',(#188,#200),$);
#203= IFCDIRECTION((1.,0.,0.));
#205= IFCDIRECTION((0.,0.,1.));
#207= IFCCARTESIANPOINT((0.,0.,0.));
#209= IFCAXIS2PLACEMENT3D(#207,#205,#203);
#210= IFCDIRECTION((0.,0.,1.));
#212= IFCEXTRUDEDAREASOLID(#201,#209,#210,3.95);
#213= IFCCARTESIANPOINTLIST3D(((0.,0.24,3.95),(0.,0.24,0.),(8.49,0.24,0.),(8.49,0.24,3.95),(0.24,0.24,0.3),(0.24,0.24,3.7),(8.25,0.24,3.7),(8.25,0.24,0.3),(0.,0.49,3.95),(0.,0.49,0.),(8.49,0.49,0.),(8.49,0.49,3.95),(0.24,0.49,0.3),(0.24,0.49,3.7),(8.25,0.49,3.7),(8.25,0.49,0.3)));
#231= IFCPOLYGONALFACESET(#213,.T.,(#235,#241,#244,#247,#250,#253,#256,#259,#262,#265),$);
#235= IFCINDEXEDPOLYGONALFACEWITHVOIDS((1,2,3,4),((5,6,7,8)));
#241= IFCINDEXEDPOLYGONALFACE((9,10,2,1));
#244= IFCINDEXEDPOLYGONALFACE((3,2,10,11));
#247= IFCINDEXEDPOLYGONALFACE((4,3,11,12));
#250= IFCINDEXEDPOLYGONALFACE((9,1,4,12));
#253= IFCINDEXEDPOLYGONALFACE((13,14,6,5));
#256= IFCINDEXEDPOLYGONALFACE((14,15,7,6));
#259= IFCINDEXEDPOLYGONALFACE((15,16,8,7));
#262= IFCINDEXEDPOLYGONALFACE((16,13,5,8));
#265= IFCINDEXEDPOLYGONALFACEWITHVOIDS((12,11,10,9),((13,16,15,14)));
#270= IFCBOOLEANRESULT(.DIFFERENCE.,#212,#231);
#271= IFCSHAPEREPRESENTATION(#177,'Body','CSG',(#270));
Test-File
Attached is the project file causing these problems. and maybe useful to test the missing operand for PolygonalFaceSet.
Thanks!
Hi @WalchAndreas, can you tell me which software you use on the 3rd and 4th screenshots on the right side?
Thanks!
Hi @ankofl, it's BIMvision.
Thanks @WalchAndreas !