XbimGeometry icon indicating copy to clipboard operation
XbimGeometry copied to clipboard

Missing Boolean-Operation IfcPolygonalFaceSet

Open WalchAndreas opened this issue 3 years ago • 3 comments

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".

error_boolean_result_v4

error_boolean_result_v5

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

missing_details

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

overlapping_geometry

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!

WalchAndreas avatar Feb 25 '22 14:02 WalchAndreas

Hi @WalchAndreas, can you tell me which software you use on the 3rd and 4th screenshots on the right side?

Thanks!

ankofl avatar Apr 25 '24 06:04 ankofl

Hi @ankofl, it's BIMvision.

WalchAndreas avatar May 06 '24 08:05 WalchAndreas

Thanks @WalchAndreas !

ankofl avatar May 06 '24 09:05 ankofl