From 32724dc31a15da6aa7f0f4a5061106c130ec2510 Mon Sep 17 00:00:00 2001 From: Bruno Postle Date: Thu, 12 Mar 2026 07:16:41 +0000 Subject: [PATCH] Fix window openings and door alignment in service extension Closes #24 --- _test_simple.ifc | 162 +++++++++++++++++++++++------------------------ 1 file changed, 81 insertions(+), 81 deletions(-) diff --git a/_test_simple.ifc b/_test_simple.ifc index 5e06c3a..b857e63 100644 --- a/_test_simple.ifc +++ b/_test_simple.ifc @@ -4638,32 +4638,10 @@ DATA; #6210=IFCSPACE('0JOHKkJrL8OOCGA1QzJYIb',$,'service-lobby/0',$,$,#8236,$,$,$,.INTERNAL.,$); #6211=IFCSPACE('2Qtzhe5mX7wxr_2ssG$Ce3',$,'wc/0',$,$,#8246,$,$,$,.INTERNAL.,$); #6212=IFCSPACE('27$oFMxMb3mxS5A94OLnI_',$,'kitchenette/0',$,$,#8151,$,$,$,.INTERNAL.,$); -#6228=IFCOPENINGELEMENT('2u4F3q7w169eyJ3M975MG0',$,'wc door opening',$,$,#7124,#6398,$,$); -#6229=IFCOPENINGELEMENT('0ehxJvCx11IPAfp8RdmEya',$,'kitchenette door opening',$,$,#7139,#6399,$,$); -#6230=IFCDOOR('3OgS0iC1f6sQYVDnwAtKs3',$,'wc door',$,$,#8481,#6453,$,2.08,0.91,$,$,$); -#6231=IFCDOOR('3Lfsh275P5p9upb17NZ8ty',$,'kitchenette door',$,$,#8486,#6461,$,2.08,0.91,$,$,$); -#6232=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.,0.3),(0.8,0.3),(0.8,0.),(0.,0.))); -#6233=IFCINDEXEDPOLYCURVE(#6232,$,.F.); -#6234=IFCDIRECTION((0.,0.,1.)); -#6235=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#6233); -#6236=IFCCARTESIANPOINT((0.,0.,0.)); -#6237=IFCDIRECTION((0.,0.,1.)); -#6238=IFCDIRECTION((1.,0.,0.)); -#6239=IFCAXIS2PLACEMENT3D(#6236,#6237,#6238); -#6240=IFCEXTRUDEDAREASOLID(#6235,#6239,#6234,2.05); -#6241=IFCSHAPEREPRESENTATION(#11,'Body','SweptSolid',(#6240)); -#6242=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.,0.3),(0.8,0.3),(0.8,0.),(0.,0.))); -#6243=IFCINDEXEDPOLYCURVE(#6242,$,.F.); -#6244=IFCDIRECTION((0.,0.,1.)); -#6245=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#6243); -#6246=IFCCARTESIANPOINT((0.,0.,0.)); -#6247=IFCDIRECTION((0.,0.,1.)); -#6248=IFCDIRECTION((1.,0.,0.)); -#6249=IFCAXIS2PLACEMENT3D(#6246,#6247,#6248); -#6250=IFCEXTRUDEDAREASOLID(#6245,#6249,#6244,2.05); -#6251=IFCSHAPEREPRESENTATION(#11,'Body','SweptSolid',(#6250)); -#6398=IFCPRODUCTDEFINITIONSHAPE($,$,(#6241)); -#6399=IFCPRODUCTDEFINITIONSHAPE($,$,(#6251)); +#6228=IFCOPENINGELEMENT('2u4F3q7w169eyJ3M975MG0',$,'wc door opening',$,$,#8564,#8558,$,$); +#6229=IFCOPENINGELEMENT('0ehxJvCx11IPAfp8RdmEya',$,'kitchenette door opening',$,$,#8579,#8559,$,$); +#6230=IFCDOOR('3OgS0iC1f6sQYVDnwAtKs3',$,'wc door',$,$,#8574,#6453,$,2.08,0.91,$,$,$); +#6231=IFCDOOR('3Lfsh275P5p9upb17NZ8ty',$,'kitchenette door',$,$,#8589,#6461,$,2.08,0.91,$,$,$); #6422=IFCRELVOIDSELEMENT('28UyL50ZL76gHei1hMIpZr',$,$,$,#5966,#6228); #6428=IFCRELVOIDSELEMENT('3zOHQfdH93zAkf39kcNzTL',$,$,$,#5966,#6229); #6434=IFCRELFILLSELEMENT('0CuGDM5KP8nPRjv1J9HqCC',$,$,$,#6228,#6230); @@ -4718,20 +4696,10 @@ DATA; #6532=IFCHALFSPACESOLID(#6531,.F.); #6533=IFCBOOLEANCLIPPINGRESULT(.DIFFERENCE.,#6526,#6532); #6534=IFCSHAPEREPRESENTATION(#11,'Body','Clipping',(#6533)); -#6535=IFCOPENINGELEMENT('3XCVGMKkLCDBw_cj6UfBkX',$,'wc west window opening',$,$,#8491,#6579,$,.OPENING.); +#6535=IFCOPENINGELEMENT('3XCVGMKkLCDBw_cj6UfBkX',$,'wc west window opening',$,$,#8522,#8517,$,.OPENING.); #6536=IFCOPENINGELEMENT('3Um_AZAh19VwS2QVi$vxVC',$,'wc south window opening',$,$,#8351,#6580,$,.OPENING.); -#6537=IFCOPENINGELEMENT('0eEGfmac97Pw2r_1OHXmAZ',$,'kitchenette east window opening',$,$,#6620,#6581,$,.OPENING.); +#6537=IFCOPENINGELEMENT('0eEGfmac97Pw2r_1OHXmAZ',$,'kitchenette east window opening',$,$,#8532,#6581,$,.OPENING.); #6538=IFCOPENINGELEMENT('3ptm7A8Yb0K8zWa9TWO1JY',$,'kitchenette south window opening',$,$,#8366,#6582,$,.OPENING.); -#6539=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.,0.5),(0.625,0.5),(0.625,0.),(0.,0.))); -#6540=IFCINDEXEDPOLYCURVE(#6539,$,.F.); -#6541=IFCDIRECTION((0.,0.,1.)); -#6542=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#6540); -#6543=IFCCARTESIANPOINT((0.,0.,0.)); -#6544=IFCDIRECTION((0.,0.,1.)); -#6545=IFCDIRECTION((1.,0.,0.)); -#6546=IFCAXIS2PLACEMENT3D(#6543,#6544,#6545); -#6547=IFCEXTRUDEDAREASOLID(#6542,#6546,#6541,0.995); -#6548=IFCSHAPEREPRESENTATION(#11,'Body','SweptSolid',(#6547)); #6549=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.,0.5),(0.625,0.5),(0.625,0.),(0.,0.))); #6550=IFCINDEXEDPOLYCURVE(#6549,$,.F.); #6551=IFCDIRECTION((0.,0.,1.)); @@ -4762,22 +4730,16 @@ DATA; #6576=IFCAXIS2PLACEMENT3D(#6573,#6574,#6575); #6577=IFCEXTRUDEDAREASOLID(#6572,#6576,#6571,0.995); #6578=IFCSHAPEREPRESENTATION(#11,'Body','SweptSolid',(#6577)); -#6579=IFCPRODUCTDEFINITIONSHAPE($,$,(#6548)); #6580=IFCPRODUCTDEFINITIONSHAPE($,$,(#6558)); #6581=IFCPRODUCTDEFINITIONSHAPE($,$,(#6568)); #6582=IFCPRODUCTDEFINITIONSHAPE($,$,(#6578)); #6603=IFCRELVOIDSELEMENT('1$iDGNNuP7IwBE_aguxF3v',$,$,$,#5964,#6535); #6609=IFCRELVOIDSELEMENT('0tBIGSIBzEcAP4isHqsqX0',$,$,$,#5963,#6536); #6615=IFCRELVOIDSELEMENT('0DOLtLxWL7f9ddu5Lyvx78',$,$,$,#5965,#6537); -#6616=IFCCARTESIANPOINT((3.3125,0.,0.9)); -#6617=IFCDIRECTION((0.,0.,1.)); -#6618=IFCDIRECTION((-1.,0.,0.)); -#6619=IFCAXIS2PLACEMENT3D(#6616,#6617,#6618); -#6620=IFCLOCALPLACEMENT(#8336,#6619); #6621=IFCRELVOIDSELEMENT('1CRb_RTTD7gQHKyE6v3jiG',$,$,$,#5963,#6538); -#6627=IFCWINDOW('2NBW01IIrFpfL9S45NhAO2',$,'wc west window',$,$,#8501,#6684,$,$,$,$,$,$); +#6627=IFCWINDOW('2NBW01IIrFpfL9S45NhAO2',$,'wc west window',$,$,#8527,#6684,$,$,$,$,$,$); #6628=IFCWINDOW('2bn9sUKCf3qfl2ZMPB3w2N',$,'wc south window',$,$,#8361,#6692,$,$,$,$,$,$); -#6629=IFCWINDOW('14ThWkSln9MwS3k9dCmXhA',$,'kitchenette east window',$,$,#8341,#6700,$,$,$,$,$,$); +#6629=IFCWINDOW('14ThWkSln9MwS3k9dCmXhA',$,'kitchenette east window',$,$,#8537,#6700,$,$,$,$,$,$); #6630=IFCWINDOW('08qEBaJOv60QsZlHGnKpBY',$,'kitchenette south window',$,$,#8376,#6708,$,$,$,$,$,$); #6651=IFCRELCONTAINEDINSPATIALSTRUCTURE('3ggp2Tvq93tOVwbmrsMkNo',$,$,$,(#6627,#6628,#6957,#6958),#6211); #6662=IFCRELCONTAINEDINSPATIALSTRUCTURE('26eQDqCyLBdeUTM0szQZ4X',$,$,$,(#6630,#6959,#6960,#6629),#6212); @@ -5069,16 +5031,6 @@ DATA; #7112=IFCDIRECTION((0.,-1.,0.)); #7113=IFCAXIS2PLACEMENT3D(#7110,#7111,#7112); #7114=IFCLOCALPLACEMENT(#92,#7113); -#7120=IFCCARTESIANPOINT((0.6,-0.0499999999999998,0.)); -#7121=IFCDIRECTION((0.,0.,1.)); -#7122=IFCDIRECTION((1.,0.,0.)); -#7123=IFCAXIS2PLACEMENT3D(#7120,#7121,#7122); -#7124=IFCLOCALPLACEMENT(#8476,#7123); -#7135=IFCCARTESIANPOINT((2.6,-0.0499999999999998,0.)); -#7136=IFCDIRECTION((0.,0.,1.)); -#7137=IFCDIRECTION((1.,0.,0.)); -#7138=IFCAXIS2PLACEMENT3D(#7135,#7136,#7137); -#7139=IFCLOCALPLACEMENT(#8476,#7138); #7166=IFCCARTESIANPOINT((0.,0.,0.)); #7167=IFCDIRECTION((0.,0.,1.)); #7168=IFCDIRECTION((1.,0.,0.)); @@ -5931,11 +5883,6 @@ DATA; #8334=IFCDIRECTION((0.,1.,0.)); #8335=IFCAXIS2PLACEMENT3D(#8332,#8333,#8334); #8336=IFCLOCALPLACEMENT(#92,#8335); -#8337=IFCCARTESIANPOINT((2.486,0.,0.)); -#8338=IFCDIRECTION((0.,0.,1.)); -#8339=IFCDIRECTION((-1.,0.,0.)); -#8340=IFCAXIS2PLACEMENT3D(#8337,#8338,#8339); -#8341=IFCLOCALPLACEMENT(#6620,#8340); #8342=IFCCARTESIANPOINT((-1.261,-7.139,2.5)); #8343=IFCDIRECTION((0.,0.,1.)); #8344=IFCDIRECTION((1.,0.,0.)); @@ -6060,30 +6007,83 @@ DATA; #8474=IFCDIRECTION((1.,0.,0.)); #8475=IFCAXIS2PLACEMENT3D(#8472,#8473,#8474); #8476=IFCLOCALPLACEMENT(#92,#8475); -#8477=IFCCARTESIANPOINT((-0.402,0.,0.)); -#8478=IFCDIRECTION((0.,0.,1.)); -#8479=IFCDIRECTION((1.,0.,0.)); -#8480=IFCAXIS2PLACEMENT3D(#8477,#8478,#8479); -#8481=IFCLOCALPLACEMENT(#7124,#8480); -#8482=IFCCARTESIANPOINT((-0.402,0.,0.)); -#8483=IFCDIRECTION((0.,0.,1.)); -#8484=IFCDIRECTION((1.,0.,0.)); -#8485=IFCAXIS2PLACEMENT3D(#8482,#8483,#8484); -#8486=IFCLOCALPLACEMENT(#7139,#8485); -#8487=IFCCARTESIANPOINT((2.49942168021052,0.000341821130295905,0.9)); -#8488=IFCDIRECTION((0.,0.,1.)); -#8489=IFCDIRECTION((0.999999989899728,0.000142128615919339,0.)); -#8490=IFCAXIS2PLACEMENT3D(#8487,#8488,#8489); -#8491=IFCLOCALPLACEMENT(#8266,#8490); -#8497=IFCCARTESIANPOINT((0.,8.88178419700125E-16,0.)); -#8498=IFCDIRECTION((0.,0.,1.)); -#8499=IFCDIRECTION((1.,-2.01525358654416E-17,0.)); -#8500=IFCAXIS2PLACEMENT3D(#8497,#8498,#8499); -#8501=IFCLOCALPLACEMENT(#8491,#8500); #8502=IFCCARTESIANPOINT((-0.75,-6.67,0.)); #8503=IFCDIRECTION((0.,0.,1.)); #8504=IFCDIRECTION((-1.,0.,0.)); #8505=IFCAXIS2PLACEMENT3D(#8502,#8503,#8504); #8506=IFCLOCALPLACEMENT(#8246,#8505); +#8507=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.,0.43),(0.625,0.43),(0.625,0.),(0.,0.))); +#8508=IFCINDEXEDPOLYCURVE(#8507,$,.F.); +#8509=IFCDIRECTION((0.,0.,1.)); +#8510=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#8508); +#8511=IFCCARTESIANPOINT((0.,0.,0.)); +#8512=IFCDIRECTION((0.,0.,1.)); +#8513=IFCDIRECTION((1.,0.,0.)); +#8514=IFCAXIS2PLACEMENT3D(#8511,#8512,#8513); +#8515=IFCEXTRUDEDAREASOLID(#8510,#8514,#8509,0.995); +#8516=IFCSHAPEREPRESENTATION(#11,'Body','SweptSolid',(#8515)); +#8517=IFCPRODUCTDEFINITIONSHAPE($,$,(#8516)); +#8518=IFCCARTESIANPOINT((2.49962689581241,-0.0501057544958603,0.9)); +#8519=IFCDIRECTION((0.,0.,1.)); +#8520=IFCDIRECTION((0.999999989899728,0.000142128615919339,0.)); +#8521=IFCAXIS2PLACEMENT3D(#8518,#8519,#8520); +#8522=IFCLOCALPLACEMENT(#8266,#8521); +#8523=IFCCARTESIANPOINT((-0.000198045555719339,0.0504476042836322,0.)); +#8524=IFCDIRECTION((0.,0.,1.)); +#8525=IFCDIRECTION((1.,-1.83821563086014E-17,0.)); +#8526=IFCAXIS2PLACEMENT3D(#8523,#8524,#8525); +#8527=IFCLOCALPLACEMENT(#8522,#8526); +#8528=IFCCARTESIANPOINT((0.8265,0.,0.9)); +#8529=IFCDIRECTION((0.,0.,1.)); +#8530=IFCDIRECTION((1.,0.,0.)); +#8531=IFCAXIS2PLACEMENT3D(#8528,#8529,#8530); +#8532=IFCLOCALPLACEMENT(#8336,#8531); +#8533=IFCCARTESIANPOINT((0.,0.,0.)); +#8534=IFCDIRECTION((0.,0.,1.)); +#8535=IFCDIRECTION((1.,0.,0.)); +#8536=IFCAXIS2PLACEMENT3D(#8533,#8534,#8535); +#8537=IFCLOCALPLACEMENT(#8532,#8536); +#8538=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.,0.3),(0.91,0.3),(0.91,0.),(0.,0.))); +#8539=IFCINDEXEDPOLYCURVE(#8538,$,.F.); +#8540=IFCDIRECTION((0.,0.,1.)); +#8541=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#8539); +#8542=IFCCARTESIANPOINT((0.,0.,0.)); +#8543=IFCDIRECTION((0.,0.,1.)); +#8544=IFCDIRECTION((1.,0.,0.)); +#8545=IFCAXIS2PLACEMENT3D(#8542,#8543,#8544); +#8546=IFCEXTRUDEDAREASOLID(#8541,#8545,#8540,2.08); +#8547=IFCSHAPEREPRESENTATION(#11,'Body','SweptSolid',(#8546)); +#8548=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.,0.3),(0.91,0.3),(0.91,0.),(0.,0.))); +#8549=IFCINDEXEDPOLYCURVE(#8548,$,.F.); +#8550=IFCDIRECTION((0.,0.,1.)); +#8551=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#8549); +#8552=IFCCARTESIANPOINT((0.,0.,0.)); +#8553=IFCDIRECTION((0.,0.,1.)); +#8554=IFCDIRECTION((1.,0.,0.)); +#8555=IFCAXIS2PLACEMENT3D(#8552,#8553,#8554); +#8556=IFCEXTRUDEDAREASOLID(#8551,#8555,#8550,2.08); +#8557=IFCSHAPEREPRESENTATION(#11,'Body','SweptSolid',(#8556)); +#8558=IFCPRODUCTDEFINITIONSHAPE($,$,(#8547)); +#8559=IFCPRODUCTDEFINITIONSHAPE($,$,(#8557)); +#8560=IFCCARTESIANPOINT((0.344,-0.0499999999999998,0.)); +#8561=IFCDIRECTION((0.,0.,1.)); +#8562=IFCDIRECTION((1.,0.,0.)); +#8563=IFCAXIS2PLACEMENT3D(#8560,#8561,#8562); +#8564=IFCLOCALPLACEMENT(#8476,#8563); +#8570=IFCCARTESIANPOINT((0.,0.,0.)); +#8571=IFCDIRECTION((0.,0.,1.)); +#8572=IFCDIRECTION((1.,0.,0.)); +#8573=IFCAXIS2PLACEMENT3D(#8570,#8571,#8572); +#8574=IFCLOCALPLACEMENT(#8564,#8573); +#8575=IFCCARTESIANPOINT((2.028,-0.0499999999999998,0.)); +#8576=IFCDIRECTION((0.,0.,1.)); +#8577=IFCDIRECTION((1.,0.,0.)); +#8578=IFCAXIS2PLACEMENT3D(#8575,#8576,#8577); +#8579=IFCLOCALPLACEMENT(#8476,#8578); +#8585=IFCCARTESIANPOINT((5.55111512312578E-17,0.,0.)); +#8586=IFCDIRECTION((0.,0.,1.)); +#8587=IFCDIRECTION((1.,0.,0.)); +#8588=IFCAXIS2PLACEMENT3D(#8585,#8586,#8587); +#8589=IFCLOCALPLACEMENT(#8579,#8588); ENDSEC; END-ISO-10303-21;