Skip to content

Commit 2e973a4

Browse files
committed
Fixed bugs with furniture library toilets and basins IfcOpenShell#2976
Bug was introduced in cf6acd5 when `shape_builder.get_rectangle_coords` started returning coords in counter-clockwise order instead of clockwise.
1 parent f1bd82d commit 2e973a4

3 files changed

Lines changed: 24 additions & 20 deletions

File tree

src/blenderbim/blenderbim/bim/data/libraries/IFC4 AU Library.ifc

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
ISO-10303-21;
22
HEADER;
33
FILE_DESCRIPTION(('ViewDefinition[DesignTransferView]'),'2;1');
4-
FILE_NAME('/dev/null','2023-04-03T19:29:45+05:00',(),(),'IfcOpenShell v0.7.0-476ab506d','IfcOpenShell v0.7.0-476ab506d','Nobody');
4+
FILE_NAME('/dev/null','2023-04-14T19:01:34+05:00',(),(),'IfcOpenShell v0.7.0-476ab506d','IfcOpenShell v0.7.0-476ab506d','Nobody');
55
FILE_SCHEMA(('IFC4'));
66
ENDSEC;
77
DATA;
@@ -45,7 +45,7 @@ DATA;
4545
#38=IFCDIRECTION((0.,0.,1.));
4646
#39=IFCAXIS2PLACEMENT3D(#36,#38,#37);
4747
#40=IFCREPRESENTATIONMAP(#39,#29);
48-
#41=IFCRELDECLARES('0Dz4P9itjCTflpwPRPDUNo',$,$,$,#2,(#9354,#10932,#8663,#2058,#8742,#11460,#9235,#11964,#11196,#11724,#10956,#4758,#10628,#4362,#10256,#10016,#10392,#11052,#11028,#9516,#10328,#11556,#11796,#10088,#9465,#12060,#474,#450,#9980,#289,#10352,#10724,#9071,#11652,#8538,#10884,#1638,#11388,#12132,#4026,#161,#9942,#11148,#11892,#10052,#11916,#10490,#10208,#10184,#8916,#1338,#57,#11988,#9618,#11220,#6666,#9391,#10980,#10280,#10652,#11748,#9567,#255,#7542,#11484,#12228,#12252,#30,#9831,#11292,#11076,#11820,#10136,#10112,#8800,#12324,#10812,#11340,#11316,#498,#12084,#11844,#10748,#12180,#11412,#12156,#11940,#10778,#11172,#10232,#11676,#12204,#187,#3378,#3750,#8887,#11268,#11244,#12012,#10304,#9153,#10676,#83,#12276,#11508,#10700,#558,#362,#11604,#10836,#11580,#10530,#5910,#11364,#12108,#12348,#8998,#8771,#1158,#9317,#10908,#11436,#10441,#11700,#858,#3534,#9428,#10579,#213,#11772,#11004,#12300,#11532,#8858,#8829,#12036,#426,#109,#135,#11100,#2598,#10860,#9720,#11628,#9669,#8595,#11124,#5274,#11868,#10160));
48+
#41=IFCRELDECLARES('2HGKNieKzFiuYnoNmsU6yU',$,$,$,#2,(#9317,#10908,#11436,#12180,#11412,#11940,#10778,#10232,#11676,#12204,#3378,#3750,#8887,#3534,#9428,#10579,#11268,#213,#11772,#11004,#12300,#11532,#12276,#426,#109,#558,#135,#11604,#10836,#10530,#5910,#11364,#8595,#8771,#11868,#5274,#1158,#10160,#10932,#8663,#2058,#11460,#9235,#10441,#11196,#10956,#4362,#858,#10628,#11700,#10392,#11796,#11028,#9516,#10328,#11556,#8858,#10088,#9465,#8829,#12060,#12036,#450,#10724,#9071,#11100,#2598,#10860,#9720,#10884,#11628,#9669,#12132,#161,#11892,#11124,#10490,#10184,#8916,#9354,#8742,#57,#9618,#11220,#11964,#6666,#10980,#4758,#10652,#10256,#11724,#9567,#11748,#10016,#7542,#12228,#9831,#11292,#11820,#11052,#10112,#12084,#11316,#474,#11844,#10748,#10352,#9980,#289,#11652,#8538,#1638,#12156,#11388,#4026,#9942,#11148,#11172,#11916,#10052,#10208,#1338,#187,#12012,#11244,#11988,#9391,#10304,#10280,#9153,#10676,#255,#83,#11508,#11484,#12252,#30,#10700,#11076,#362,#10136,#8800,#12348,#11580,#10812,#12324,#12108,#11340,#498,#8998));
4949
#42=IFCCARTESIANPOINTLIST2D(((0.,0.),(920.,0.),(920.,1880.),(0.,1880.)));
5050
#43=IFCINDEXEDPOLYCURVE(#42,(IFCLINEINDEX((1,2)),IFCLINEINDEX((2,3)),IFCLINEINDEX((3,4)),IFCLINEINDEX((4,1))),$);
5151
#44=IFCCARTESIANPOINTLIST2D(((0.,1598.),(184.,1598.),(184.,1880.),(184.,1598.),(644.,1598.),(736.,1559.89235226168),(736.,1880.),(736.,1559.89235226168),(920.,1483.67705678503)));
@@ -8964,8 +8964,8 @@ DATA;
89648964
#8957=IFCCARTESIANPOINT((34.375,-452.));
89658965
#8958=IFCTRIMMEDCURVE(#8955,(#8956),(#8957),.T.,.CARTESIAN.);
89668966
#8959=IFCSHAPEREPRESENTATION(#16,'Body','Curve2D',(#8932,#8936,#8943,#8944,#8949,#8951,#8958));
8967-
#8960=IFCCARTESIANPOINTLIST2D(((-275.,-200.),(50.,-200.),(209.099029541016,-265.900970458984),(275.,-425.),(209.099029541016,-584.098999023438),(50.,-650.),(-275.,-650.)));
8968-
#8961=IFCINDEXEDPOLYCURVE(#8960,(IFCLINEINDEX((1,2)),IFCARCINDEX((2,3,4)),IFCARCINDEX((4,5,6)),IFCLINEINDEX((6,7)),IFCLINEINDEX((1,7))),$);
8967+
#8960=IFCCARTESIANPOINTLIST2D(((-275.,-200.),(275.,-200.),(275.,-425.),(209.099029541016,-584.098999023438),(50.,-650.),(-50.,-650.),(-209.099029541016,-584.098999023438),(-275.,-425.)));
8968+
#8961=IFCINDEXEDPOLYCURVE(#8960,(IFCLINEINDEX((1,2)),IFCLINEINDEX((2,3)),IFCARCINDEX((3,4,5)),IFCLINEINDEX((5,6)),IFCARCINDEX((6,7,8)),IFCLINEINDEX((1,8))),$);
89698969
#8962=IFCCARTESIANPOINT((0.,-425.));
89708970
#8963=IFCAXIS2PLACEMENT2D(#8962,$);
89718971
#8964=IFCCIRCLE(#8963,168.75);
@@ -8976,8 +8976,8 @@ DATA;
89768976
#8969=IFCAXIS2PLACEMENT3D(#8966,#8967,#8968);
89778977
#8970=IFCDIRECTION((0.,0.,1.));
89788978
#8971=IFCEXTRUDEDAREASOLID(#8965,#8969,#8970,150.);
8979-
#8972=IFCINDEXEDPOLYCURVE(#8973,(IFCLINEINDEX((1,2)),IFCARCINDEX((2,3,4)),IFCARCINDEX((4,5,6)),IFCLINEINDEX((6,7)),IFCLINEINDEX((1,7))),$);
8980-
#8973=IFCCARTESIANPOINTLIST2D(((-275.,-200.),(50.,-200.),(209.099029541016,-265.900970458984),(275.,-425.),(209.099029541016,-584.098999023438),(50.,-650.),(-275.,-650.)));
8979+
#8972=IFCINDEXEDPOLYCURVE(#8973,(IFCLINEINDEX((1,2)),IFCLINEINDEX((2,3)),IFCARCINDEX((3,4,5)),IFCLINEINDEX((5,6)),IFCARCINDEX((6,7,8)),IFCLINEINDEX((1,8))),$);
8980+
#8973=IFCCARTESIANPOINTLIST2D(((-275.,-200.),(275.,-200.),(275.,-425.),(209.099029541016,-584.098999023438),(50.,-650.),(-50.,-650.),(-209.099029541016,-584.098999023438),(-275.,-425.)));
89818981
#8974=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#8972);
89828982
#8975=IFCCARTESIANPOINT((0.,0.,200.));
89838983
#8976=IFCDIRECTION((0.,0.,1.));
@@ -9044,8 +9044,8 @@ DATA;
90449044
#9037=IFCCARTESIANPOINT((25.,-296.799987792969));
90459045
#9038=IFCTRIMMEDCURVE(#9035,(#9036),(#9037),.T.,.CARTESIAN.);
90469046
#9039=IFCSHAPEREPRESENTATION(#16,'Body','Curve2D',(#9014,#9016,#9023,#9024,#9029,#9031,#9038));
9047-
#9040=IFCCARTESIANPOINTLIST2D(((-200.,0.),(0.,0.),(141.421356201172,-58.5786437988281),(200.,-200.),(200.,-330.),(141.421356201172,-471.421356201172),(0.,-530.),(-200.,-530.)));
9048-
#9041=IFCINDEXEDPOLYCURVE(#9040,(IFCLINEINDEX((1,2)),IFCARCINDEX((2,3,4)),IFCLINEINDEX((4,5)),IFCARCINDEX((5,6,7)),IFCLINEINDEX((7,8)),IFCLINEINDEX((1,8))),$);
9047+
#9040=IFCCARTESIANPOINTLIST2D(((-200.,0.),(200.,0.),(200.,-330.),(141.421356201172,-471.421356201172),(0.,-530.),(-141.421356201172,-471.421356201172),(-200.,-330.)));
9048+
#9041=IFCINDEXEDPOLYCURVE(#9040,(IFCLINEINDEX((1,2)),IFCLINEINDEX((2,3)),IFCARCINDEX((3,4,5)),IFCARCINDEX((5,6,7)),IFCLINEINDEX((1,7))),$);
90499049
#9042=IFCCARTESIANPOINT((0.,-330.));
90509050
#9043=IFCAXIS2PLACEMENT2D(#9042,$);
90519051
#9044=IFCCIRCLE(#9043,150.);
@@ -9056,8 +9056,8 @@ DATA;
90569056
#9049=IFCAXIS2PLACEMENT3D(#9046,#9047,#9048);
90579057
#9050=IFCDIRECTION((0.,0.,1.));
90589058
#9051=IFCEXTRUDEDAREASOLID(#9045,#9049,#9050,150.);
9059-
#9052=IFCINDEXEDPOLYCURVE(#9053,(IFCLINEINDEX((1,2)),IFCARCINDEX((2,3,4)),IFCLINEINDEX((4,5)),IFCARCINDEX((5,6,7)),IFCLINEINDEX((7,8)),IFCLINEINDEX((1,8))),$);
9060-
#9053=IFCCARTESIANPOINTLIST2D(((-200.,0.),(0.,0.),(141.421356201172,-58.5786437988281),(200.,-200.),(200.,-330.),(141.421356201172,-471.421356201172),(0.,-530.),(-200.,-530.)));
9059+
#9052=IFCINDEXEDPOLYCURVE(#9053,(IFCLINEINDEX((1,2)),IFCLINEINDEX((2,3)),IFCARCINDEX((3,4,5)),IFCARCINDEX((5,6,7)),IFCLINEINDEX((1,7))),$);
9060+
#9053=IFCCARTESIANPOINTLIST2D(((-200.,0.),(200.,0.),(200.,-330.),(141.421356201172,-471.421356201172),(0.,-530.),(-141.421356201172,-471.421356201172),(-200.,-330.)));
90619061
#9054=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#9052);
90629062
#9055=IFCCARTESIANPOINT((0.,0.,200.));
90639063
#9056=IFCDIRECTION((0.,0.,1.));
@@ -9336,10 +9336,10 @@ DATA;
93369336
#9329=IFCINDEXEDPOLYCURVE(#9328,(IFCLINEINDEX((12,1)),IFCARCINDEX((1,2,3)),IFCLINEINDEX((3,4)),IFCARCINDEX((4,5,6)),IFCLINEINDEX((6,7)),IFCARCINDEX((7,8,9)),IFCLINEINDEX((9,10)),IFCARCINDEX((10,11,12)),IFCLINEINDEX((1,12))),$);
93379337
#9330=IFCINDEXEDPOLYCURVE(#9331,(IFCLINEINDEX((12,1)),IFCARCINDEX((1,2,3)),IFCLINEINDEX((3,4)),IFCARCINDEX((4,5,6)),IFCLINEINDEX((6,7)),IFCARCINDEX((7,8,9)),IFCLINEINDEX((9,10)),IFCARCINDEX((10,11,12)),IFCLINEINDEX((1,12))),$);
93389338
#9331=IFCCARTESIANPOINTLIST2D(((0.,50.),(14.6446609406726,14.6446609406726),(50.,0.),(400.,0.),(435.355339059327,14.6446609406726),(450.,50.),(450.,350.),(435.355339059327,385.355339059327),(400.,400.),(50.,400.),(14.6446609406726,385.355339059327),(0.,350.)));
9339-
#9332=IFCCARTESIANPOINTLIST2D(((-202.5,-314.),(-187.855346679688,-349.355346679688),(-152.5,-364.),(52.5,-364.),(158.566009521484,-320.066009521484),(202.5,-214.),(202.5,-234.),(158.566009521484,-127.933990478516),(52.5,-84.),(-152.5,-84.),(-187.855346679688,-98.6446533203125),(-202.5,-134.)));
9339+
#9332=IFCCARTESIANPOINTLIST2D(((-202.5,-214.),(-158.566009521484,-320.066009521484),(-52.5,-364.),(52.5,-364.),(158.566009521484,-320.066009521484),(202.5,-214.),(202.5,-134.),(187.855346679688,-98.6446533203125),(152.5,-84.),(-152.5,-84.),(-187.855346679688,-98.6446533203125),(-202.5,-134.)));
93409340
#9333=IFCINDEXEDPOLYCURVE(#9332,(IFCLINEINDEX((12,1)),IFCARCINDEX((1,2,3)),IFCLINEINDEX((3,4)),IFCARCINDEX((4,5,6)),IFCLINEINDEX((6,7)),IFCARCINDEX((7,8,9)),IFCLINEINDEX((9,10)),IFCARCINDEX((10,11,12)),IFCLINEINDEX((1,12))),$);
93419341
#9334=IFCINDEXEDPOLYCURVE(#9335,(IFCLINEINDEX((12,1)),IFCARCINDEX((1,2,3)),IFCLINEINDEX((3,4)),IFCARCINDEX((4,5,6)),IFCLINEINDEX((6,7)),IFCARCINDEX((7,8,9)),IFCLINEINDEX((9,10)),IFCARCINDEX((10,11,12)),IFCLINEINDEX((1,12))),$);
9342-
#9335=IFCCARTESIANPOINTLIST2D(((22.5,86.),(37.1446609406726,50.6446609406726),(72.5,36.),(277.5,36.),(383.566017177982,79.9339828220179),(427.5,186.),(427.5,166.),(383.566017177982,272.066017177982),(277.5,316.),(72.5,316.),(37.1446609406726,301.355339059327),(22.5,266.)));
9342+
#9335=IFCCARTESIANPOINTLIST2D(((22.5,186.),(66.4339828220179,79.9339828220179),(172.5,36.),(277.5,36.),(383.566017177982,79.9339828220179),(427.5,186.),(427.5,266.),(412.855339059327,301.355339059327),(377.5,316.),(72.5,316.),(37.1446609406726,301.355339059327),(22.5,266.)));
93439343
#9336=IFCCARTESIANPOINTLIST2D(((0.,-30.),(0.,-150.)));
93449344
#9337=IFCINDEXEDPOLYCURVE(#9336,(IFCLINEINDEX((1,2))),$);
93459345
#9338=IFCSHAPEREPRESENTATION(#16,'Body','Curve2D',(#9329,#9333,#9337));
@@ -9373,10 +9373,10 @@ DATA;
93739373
#9366=IFCINDEXEDPOLYCURVE(#9365,(IFCLINEINDEX((12,1)),IFCARCINDEX((1,2,3)),IFCLINEINDEX((3,4)),IFCARCINDEX((4,5,6)),IFCLINEINDEX((6,7)),IFCARCINDEX((7,8,9)),IFCLINEINDEX((9,10)),IFCARCINDEX((10,11,12)),IFCLINEINDEX((1,12))),$);
93749374
#9367=IFCINDEXEDPOLYCURVE(#9368,(IFCLINEINDEX((12,1)),IFCARCINDEX((1,2,3)),IFCLINEINDEX((3,4)),IFCARCINDEX((4,5,6)),IFCLINEINDEX((6,7)),IFCARCINDEX((7,8,9)),IFCLINEINDEX((9,10)),IFCARCINDEX((10,11,12)),IFCLINEINDEX((1,12))),$);
93759375
#9368=IFCCARTESIANPOINTLIST2D(((0.,50.),(14.6446609406726,14.6446609406726),(50.,0.),(450.,0.),(485.355339059327,14.6446609406726),(500.,50.),(500.,400.),(485.355339059327,435.355339059327),(450.,450.),(50.,450.),(14.6446609406726,435.355339059327),(0.,400.)));
9376-
#9369=IFCCARTESIANPOINTLIST2D(((-225.,-359.5),(-210.355346679688,-394.855346679688),(-175.,-409.5),(75.,-409.5),(181.066009521484,-365.566009521484),(225.,-259.5),(225.,-244.5),(181.066009521484,-138.433990478516),(75.,-94.5),(-175.,-94.5),(-210.355346679688,-109.144653320312),(-225.,-144.5)));
9376+
#9369=IFCCARTESIANPOINTLIST2D(((-225.,-259.5),(-181.066009521484,-365.566009521484),(-75.,-409.5),(75.,-409.5),(181.066009521484,-365.566009521484),(225.,-259.5),(225.,-144.5),(210.355346679688,-109.144653320312),(175.,-94.5),(-175.,-94.5),(-210.355346679688,-109.144653320312),(-225.,-144.5)));
93779377
#9370=IFCINDEXEDPOLYCURVE(#9369,(IFCLINEINDEX((12,1)),IFCARCINDEX((1,2,3)),IFCLINEINDEX((3,4)),IFCARCINDEX((4,5,6)),IFCLINEINDEX((6,7)),IFCARCINDEX((7,8,9)),IFCLINEINDEX((9,10)),IFCARCINDEX((10,11,12)),IFCLINEINDEX((1,12))),$);
93789378
#9371=IFCINDEXEDPOLYCURVE(#9372,(IFCLINEINDEX((12,1)),IFCARCINDEX((1,2,3)),IFCLINEINDEX((3,4)),IFCARCINDEX((4,5,6)),IFCLINEINDEX((6,7)),IFCARCINDEX((7,8,9)),IFCLINEINDEX((9,10)),IFCARCINDEX((10,11,12)),IFCLINEINDEX((1,12))),$);
9379-
#9372=IFCCARTESIANPOINTLIST2D(((25.,90.5),(39.6446609406726,55.1446609406726),(75.,40.5),(325.,40.5),(431.066017177982,84.4339828220179),(475.,190.5),(475.,205.5),(431.066017177982,311.566017177982),(325.,355.5),(75.,355.5),(39.6446609406726,340.855339059327),(25.,305.5)));
9379+
#9372=IFCCARTESIANPOINTLIST2D(((25.,190.5),(68.9339828220179,84.4339828220179),(175.,40.5),(325.,40.5),(431.066017177982,84.4339828220179),(475.,190.5),(475.,305.5),(460.355339059327,340.855339059327),(425.,355.5),(75.,355.5),(39.6446609406726,340.855339059327),(25.,305.5)));
93809380
#9373=IFCCARTESIANPOINTLIST2D(((0.,-33.75),(0.,-153.75)));
93819381
#9374=IFCINDEXEDPOLYCURVE(#9373,(IFCLINEINDEX((1,2))),$);
93829382
#9375=IFCSHAPEREPRESENTATION(#16,'Body','Curve2D',(#9366,#9370,#9374));
@@ -9410,10 +9410,10 @@ DATA;
94109410
#9403=IFCINDEXEDPOLYCURVE(#9402,(IFCLINEINDEX((12,1)),IFCARCINDEX((1,2,3)),IFCLINEINDEX((3,4)),IFCARCINDEX((4,5,6)),IFCLINEINDEX((6,7)),IFCARCINDEX((7,8,9)),IFCLINEINDEX((9,10)),IFCARCINDEX((10,11,12)),IFCLINEINDEX((1,12))),$);
94119411
#9404=IFCINDEXEDPOLYCURVE(#9405,(IFCLINEINDEX((12,1)),IFCARCINDEX((1,2,3)),IFCLINEINDEX((3,4)),IFCARCINDEX((4,5,6)),IFCLINEINDEX((6,7)),IFCARCINDEX((7,8,9)),IFCLINEINDEX((9,10)),IFCARCINDEX((10,11,12)),IFCLINEINDEX((1,12))),$);
94129412
#9405=IFCCARTESIANPOINTLIST2D(((0.,50.),(14.6446609406726,14.6446609406726),(50.,0.),(500.,0.),(535.355339059327,14.6446609406726),(550.,50.),(550.,450.),(535.355339059327,485.355339059327),(500.,500.),(50.,500.),(14.6446609406726,485.355339059327),(0.,450.)));
9413-
#9406=IFCCARTESIANPOINTLIST2D(((-247.5,-405.),(-232.855346679688,-440.355346679688),(-197.5,-455.),(97.5,-455.),(203.566009521484,-411.066009521484),(247.5,-305.),(247.5,-255.),(203.566009521484,-148.933990478516),(97.5,-105.),(-197.5,-105.),(-232.855346679688,-119.644653320312),(-247.5,-155.)));
9413+
#9406=IFCCARTESIANPOINTLIST2D(((-247.5,-305.),(-203.566009521484,-411.066009521484),(-97.5,-455.),(97.5,-455.),(203.566009521484,-411.066009521484),(247.5,-305.),(247.5,-155.),(232.855346679688,-119.644653320312),(197.5,-105.),(-197.5,-105.),(-232.855346679688,-119.644653320312),(-247.5,-155.)));
94149414
#9407=IFCINDEXEDPOLYCURVE(#9406,(IFCLINEINDEX((12,1)),IFCARCINDEX((1,2,3)),IFCLINEINDEX((3,4)),IFCARCINDEX((4,5,6)),IFCLINEINDEX((6,7)),IFCARCINDEX((7,8,9)),IFCLINEINDEX((9,10)),IFCARCINDEX((10,11,12)),IFCLINEINDEX((1,12))),$);
94159415
#9408=IFCINDEXEDPOLYCURVE(#9409,(IFCLINEINDEX((12,1)),IFCARCINDEX((1,2,3)),IFCLINEINDEX((3,4)),IFCARCINDEX((4,5,6)),IFCLINEINDEX((6,7)),IFCARCINDEX((7,8,9)),IFCLINEINDEX((9,10)),IFCARCINDEX((10,11,12)),IFCLINEINDEX((1,12))),$);
9416-
#9409=IFCCARTESIANPOINTLIST2D(((27.5,95.),(42.1446609406726,59.6446609406726),(77.5,45.),(372.5,45.),(478.566017177982,88.9339828220179),(522.5,195.),(522.5,245.),(478.566017177982,351.066017177982),(372.5,395.),(77.5,395.),(42.1446609406726,380.355339059327),(27.5,345.)));
9416+
#9409=IFCCARTESIANPOINTLIST2D(((27.5,195.),(71.4339828220179,88.9339828220179),(177.5,45.),(372.5,45.),(478.566017177982,88.9339828220179),(522.5,195.),(522.5,345.),(507.855339059327,380.355339059327),(472.5,395.),(77.5,395.),(42.1446609406726,380.355339059327),(27.5,345.)));
94179417
#9410=IFCCARTESIANPOINTLIST2D(((0.,-37.5),(0.,-157.5)));
94189418
#9411=IFCINDEXEDPOLYCURVE(#9410,(IFCLINEINDEX((1,2))),$);
94199419
#9412=IFCSHAPEREPRESENTATION(#16,'Body','Curve2D',(#9403,#9407,#9411));
@@ -9447,10 +9447,10 @@ DATA;
94479447
#9440=IFCINDEXEDPOLYCURVE(#9439,(IFCLINEINDEX((12,1)),IFCARCINDEX((1,2,3)),IFCLINEINDEX((3,4)),IFCARCINDEX((4,5,6)),IFCLINEINDEX((6,7)),IFCARCINDEX((7,8,9)),IFCLINEINDEX((9,10)),IFCARCINDEX((10,11,12)),IFCLINEINDEX((1,12))),$);
94489448
#9441=IFCINDEXEDPOLYCURVE(#9442,(IFCLINEINDEX((12,1)),IFCARCINDEX((1,2,3)),IFCLINEINDEX((3,4)),IFCARCINDEX((4,5,6)),IFCLINEINDEX((6,7)),IFCARCINDEX((7,8,9)),IFCLINEINDEX((9,10)),IFCARCINDEX((10,11,12)),IFCLINEINDEX((1,12))),$);
94499449
#9442=IFCCARTESIANPOINTLIST2D(((0.,50.),(14.6446609406726,14.6446609406726),(50.,0.),(550.,0.),(585.355339059327,14.6446609406726),(600.,50.),(600.,500.),(585.355339059327,535.355339059327),(550.,550.),(50.,550.),(14.6446609406726,535.355339059327),(0.,500.)));
9450-
#9443=IFCCARTESIANPOINTLIST2D(((-270.,-450.5),(-255.355346679688,-485.855346679688),(-220.,-500.5),(120.,-500.5),(226.066040039062,-456.566009521484),(270.,-350.5),(270.,-265.5),(226.066040039062,-159.433990478516),(120.,-115.5),(-220.,-115.5),(-255.355346679688,-130.144653320312),(-270.,-165.5)));
9450+
#9443=IFCCARTESIANPOINTLIST2D(((-270.,-350.5),(-226.066009521484,-456.566009521484),(-120.,-500.5),(120.,-500.5),(226.066040039062,-456.566009521484),(270.,-350.5),(270.,-165.5),(255.355346679688,-130.144653320312),(220.,-115.5),(-220.,-115.5),(-255.355346679688,-130.144653320312),(-270.,-165.5)));
94519451
#9444=IFCINDEXEDPOLYCURVE(#9443,(IFCLINEINDEX((12,1)),IFCARCINDEX((1,2,3)),IFCLINEINDEX((3,4)),IFCARCINDEX((4,5,6)),IFCLINEINDEX((6,7)),IFCARCINDEX((7,8,9)),IFCLINEINDEX((9,10)),IFCARCINDEX((10,11,12)),IFCLINEINDEX((1,12))),$);
94529452
#9445=IFCINDEXEDPOLYCURVE(#9446,(IFCLINEINDEX((12,1)),IFCARCINDEX((1,2,3)),IFCLINEINDEX((3,4)),IFCARCINDEX((4,5,6)),IFCLINEINDEX((6,7)),IFCARCINDEX((7,8,9)),IFCLINEINDEX((9,10)),IFCARCINDEX((10,11,12)),IFCLINEINDEX((1,12))),$);
9453-
#9446=IFCCARTESIANPOINTLIST2D(((30.,99.5),(44.6446609406726,64.1446609406726),(80.,49.5),(420.,49.5),(526.066017177982,93.4339828220179),(570.,199.5),(570.,284.5),(526.066017177982,390.566017177982),(420.,434.5),(80.,434.5),(44.6446609406726,419.855339059327),(30.,384.5)));
9453+
#9446=IFCCARTESIANPOINTLIST2D(((30.,199.5),(73.9339828220179,93.4339828220179),(180.,49.5),(420.,49.5),(526.066017177982,93.4339828220179),(570.,199.5),(570.,384.5),(555.355339059327,419.855339059327),(520.,434.5),(80.,434.5),(44.6446609406726,419.855339059327),(30.,384.5)));
94549454
#9447=IFCCARTESIANPOINTLIST2D(((0.,-41.25),(0.,-161.25)));
94559455
#9448=IFCINDEXEDPOLYCURVE(#9447,(IFCLINEINDEX((1,2))),$);
94569456
#9449=IFCSHAPEREPRESENTATION(#16,'Body','Curve2D',(#9440,#9444,#9448));

src/blenderbim/scripts/generate_furniture_library.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -282,6 +282,8 @@ def create_box_objects(width, depth, height, shift_to_center=False, return_repre
282282
return output
283283

284284
def create_fillet_rectangle(size=None, position=None, fillet_radius=50.0):
285+
"""`fillet_radius` is either float or list of floats for each corner
286+
in counter-clockwise order starting from bottom left"""
285287
kwargs = dict()
286288
if size:
287289
kwargs["size"] = size
@@ -1251,7 +1253,7 @@ def create_toilet(width, depth, height, seat_level=0):
12511253
)
12521254
fillet_radius = min(width / 2, (depth - cistern_depth) / 2)
12531255
_, _, seat_main_curve = get_simple_2dcurve_data(
1254-
seat_main_curve_points, fillets=(1, 2), fillet_radius=fillet_radius, closed=True, ifc_file=self.file
1256+
seat_main_curve_points, fillets=(2, 3), fillet_radius=fillet_radius, closed=True, ifc_file=self.file
12551257
)
12561258
seat_main_curve_mask = builder.circle(center=V(0, depth - fillet_radius), radius=fillet_radius * 0.75)
12571259
seat_main_curve_profile = builder.profile(seat_main_curve, inner_curves=seat_main_curve_mask)
@@ -1415,7 +1417,7 @@ def create_basin(width, depth, height):
14151417
rectangle_second = create_fillet_rectangle(
14161418
size=V(second_width, second_depth),
14171419
position=V((width - second_width) / 2, (depth - second_depth) * 0.3),
1418-
fillet_radius=(50.0, 150.0, 150.0, 50.0),
1420+
fillet_radius=(150.0, 150.0, 50.0, 50.0),
14191421
)
14201422
rectangle_second_3d = ifcopenshell.util.element.copy_deep(self.file, rectangle_second)
14211423

src/ifcopenshell-python/ifcopenshell/util/shape_builder.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ def polyline(self, points, closed=False, position_offset=None):
5555
return ifc_curve
5656

5757
def get_rectangle_coords(self, size: Vector = Vector((1.0, 1.0)).freeze(), position: Vector = None):
58+
"""get rectangle coords in counter-clockwise order
59+
starting from the bottom left corner"""
5860
dimensions = len(size)
5961

6062
if not position:

0 commit comments

Comments
 (0)