From bf367bb4579397f1a96d16fa7c67d03768c29395 Mon Sep 17 00:00:00 2001 From: Bruno Postle Date: Fri, 20 Mar 2026 19:33:26 +0000 Subject: [PATCH] Fix construction schedule sequence ordering MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Foundations → Structure → Ground Floor (upper storey) → Roof → Openings → Finishes - Remove wrong sequence: Ground Floor → Foundations (was backwards, causing upper storey to start Feb 23 before foundations) - Remove Structure → Roof, Structure → Openings, Roof → Finishes - Add correct chain: Structure → Ground Floor → Roof → Openings → Finishes - Cascade dates forward: upper storey Mar 30–Apr 17, roof Apr 20–24, openings Apr 27–29, finishes Apr 30–May 5 - Extend Structure summary to P14D and Finishes summary to P4D to match subtask spans Closes #28 Co-Authored-By: Claude Sonnet 4.6 --- _test_simple.ifc | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/_test_simple.ifc b/_test_simple.ifc index 6bdab03..e825929 100644 --- a/_test_simple.ifc +++ b/_test_simple.ifc @@ -3299,21 +3299,18 @@ DATA; #3961=IFCTASK('2t8ODJP_TDbupmWFfWUiez',$,'Install Floor Covering',$,$,'P5.2',$,$,$,.F.,$,#3980,.CONSTRUCTION.); #3969=IFCRELSEQUENCE('1Eie02rhH3Ket6S3RWMgju',$,$,$,#3950,#3952,$,.FINISH_START.,$); #3970=IFCRELSEQUENCE('11GFsFvz1F1fjd2dYSy55R',$,$,$,#3944,#3946,$,.FINISH_START.,$); -#3971=IFCRELSEQUENCE('3xY4xKf1H8kuZJIwHffDko',$,$,$,#3946,#3947,$,.FINISH_START.,$); -#3972=IFCRELSEQUENCE('199GyALTD0wfMfKxNSoyWc',$,$,$,#3946,#3948,$,.FINISH_START.,$); -#3973=IFCRELSEQUENCE('0VBtoUmx50yPd01pKoFz98',$,$,$,#3947,#3949,$,.FINISH_START.,$); #3974=IFCTASKTIME($,$,$,$,'P5D','2026-03-02T09:00:00','2026-03-06T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); #3975=IFCTASKTIME($,$,$,$,'P3D','2026-03-07T09:00:00','2026-03-09T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); #3976=IFCTASKTIME($,$,$,$,'P7D','2026-03-12T09:00:00','2026-03-20T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); -#3977=IFCTASKTIME($,$,$,$,'P5D','2026-03-23T09:00:00','2026-03-27T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); -#3978=IFCTASKTIME($,$,$,$,'P3D','2026-03-23T09:00:00','2026-03-25T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); -#3979=IFCTASKTIME($,$,$,$,'P2D','2026-03-30T09:00:00','2026-03-31T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); -#3980=IFCTASKTIME($,$,$,$,'P2D','2026-03-30T09:00:00','2026-03-31T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); +#3977=IFCTASKTIME($,$,$,$,'P5D','2026-04-20T09:00:00','2026-04-24T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); +#3978=IFCTASKTIME($,$,$,$,'P3D','2026-04-27T09:00:00','2026-04-29T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); +#3979=IFCTASKTIME($,$,$,$,'P2D','2026-04-30T09:00:00','2026-05-01T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); +#3980=IFCTASKTIME($,$,$,$,'P2D','2026-04-30T09:00:00','2026-05-01T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); #3981=IFCTASKTIME($,$,$,$,'P8D','2026-03-02T09:00:00','2026-03-11T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); -#3982=IFCTASKTIME($,$,$,$,'P7D','2026-03-12T09:00:00','2026-03-20T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); -#3983=IFCTASKTIME($,$,$,$,'P5D','2026-03-23T09:00:00','2026-03-27T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); -#3984=IFCTASKTIME($,$,$,$,'P3D','2026-03-23T09:00:00','2026-03-25T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); -#3985=IFCTASKTIME($,$,$,$,'P2D','2026-03-30T09:00:00','2026-03-31T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); +#3982=IFCTASKTIME($,$,$,$,'P14D','2026-03-12T09:00:00','2026-03-27T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); +#3983=IFCTASKTIME($,$,$,$,'P5D','2026-04-20T09:00:00','2026-04-24T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); +#3984=IFCTASKTIME($,$,$,$,'P3D','2026-04-27T09:00:00','2026-04-29T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); +#3985=IFCTASKTIME($,$,$,$,'P4D','2026-04-30T09:00:00','2026-05-05T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); #3986=IFCWORKCALENDAR('0B4XYw5DvE1Qx0dtTrH7MU',$,'Mon-Fri Work Week',$,$,$,(#3987),$,.NOTDEFINED.); #3987=IFCWORKTIME($,$,$,#3988,$,$); #3988=IFCRECURRENCEPATTERN(.WEEKLY.,$,(1,2,3,4,5),$,$,$,$,$); @@ -3911,7 +3908,7 @@ DATA; #4924=IFCQUANTITYLENGTH('Length',$,$,4.,$); #4925=IFCCOSTITEM('164NUcU$b1XBbw7CzbvA3W',$,'Doors',$,$,'F',$,(#4934),$); #4926=IFCTASK('2h$8d8iXD1jOftF6jkh58c',$,'Install Entrance Door',$,$,'P4.2',$,$,$,.F.,$,#4927,.CONSTRUCTION.); -#4927=IFCTASKTIME($,$,$,$,'P1D','2026-03-23T09:00:00','2026-03-23T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); +#4927=IFCTASKTIME($,$,$,$,'P1D','2026-04-27T09:00:00','2026-04-27T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); #4928=IFCCOSTITEM('2$yTsuB79BIemTR0GvmhPk',$,'Entrance Door',$,$,'F.1',$,(#4933),(#4932)); #4929=IFCRELNESTS('0bpe3L2SrELhYdyWZ$lVJm',$,$,$,#4925,(#4928,#5452,#8829)); #4931=IFCRELASSIGNSTOCONTROL('0PmqIUQHjAQuu$WiGZPSKX',$,$,$,(#4811),$,#4928); @@ -3923,9 +3920,9 @@ DATA; #4937=IFCTASK('1L42ShaUPB0AlHecBlC$m4',$,'Install Front Door Bench and Plant Fruit Tree',$,$,'P5.5',$,$,$,.F.,$,#4942,.CONSTRUCTION.); #4938=IFCCOSTITEM('0PwIjvSCz3fedPsW1eLWka',$,'Fixtures and Fittings',$,$,'G',$,(#4968),$); #4939=IFCCOSTITEM('2q4bVzV656JQBYsqGIQhzh',$,'Landscaping',$,$,'H',$,(#4969),$); -#4940=IFCTASKTIME($,$,$,$,'P1D','2026-03-30T09:00:00','2026-03-30T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); -#4941=IFCTASKTIME($,$,$,$,'P1D','2026-03-30T09:00:00','2026-03-30T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); -#4942=IFCTASKTIME($,$,$,$,'P1D','2026-03-31T09:00:00','2026-03-31T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); +#4940=IFCTASKTIME($,$,$,$,'P1D','2026-04-30T09:00:00','2026-04-30T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); +#4941=IFCTASKTIME($,$,$,$,'P1D','2026-04-30T09:00:00','2026-04-30T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); +#4942=IFCTASKTIME($,$,$,$,'P1D','2026-05-01T09:00:00','2026-05-01T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); #4946=IFCCOSTITEM('0$wpOptrT8IwdC5zUOwxmb',$,'Wood Burning Stove',$,$,'G.1',$,(#4963),(#4954)); #4947=IFCRELNESTS('0p0c6splj42PF66irBh$OB',$,$,$,#4938,(#4946,#4948,#4949,#7796,#7797,#7798,#7799)); #4948=IFCCOSTITEM('1NMB6a6LL6AfLKX$5$OvJH',$,'Chimney',$,$,'G.2',$,(#4964),(#4956)); @@ -4079,7 +4076,7 @@ DATA; #5399=IFCTASK('1EoRBnl2DFygSfF1HirBhA',$,'Erect Porch Walls',$,$,'P2.2',$,$,$,.F.,$,#5401,.CONSTRUCTION.); #5400=IFCTASK('2AolDq9VX7zhj_$DpFQSeh',$,'Install Lobby Doors',$,$,'P4.3',$,$,$,.F.,$,#5402,.CONSTRUCTION.); #5401=IFCTASKTIME($,$,$,$,'P2D','2026-03-23T09:00:00','2026-03-24T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); -#5402=IFCTASKTIME($,$,$,$,'P1D','2026-03-25T09:00:00','2026-03-25T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); +#5402=IFCTASKTIME($,$,$,$,'P1D','2026-04-29T09:00:00','2026-04-29T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); #5412=IFCELEMENTQUANTITY('2zYi7FHyz9G8l4mCp6tsjb',$,'Qto_OpeningElementBaseQuantities',$,'BaseQuantities',(#5414,#5415,#5416,#5417,#5418)); #5413=IFCRELDEFINESBYPROPERTIES('29haGnY1b4MORVYwl6$Yd1',$,$,$,(#5243),#5412); #5414=IFCQUANTITYAREA('Area',$,$,2.49599990844726,$); @@ -5291,8 +5288,8 @@ DATA; #7786=IFCTASK('0i7JGI3KT868tnjCCFikwu',$,'Install Sanitary and Kitchenette Fixtures',$,$,'P5.6',$,$,$,.F.,$,#7789,.CONSTRUCTION.); #7787=IFCTASK('2JhcGlk599$9kXXAReLENh',$,'Build Garden Sitting Walls and Paving',$,$,'P5.7',$,$,$,.F.,$,#7790,.CONSTRUCTION.); #7788=IFCTASKTIME($,$,$,$,'P3D','2026-03-25T09:00:00','2026-03-27T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); -#7789=IFCTASKTIME($,$,$,$,'P1D','2026-04-01T09:00:00','2026-04-01T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); -#7790=IFCTASKTIME($,$,$,$,'P2D','2026-04-01T09:00:00','2026-04-02T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); +#7789=IFCTASKTIME($,$,$,$,'P1D','2026-05-04T09:00:00','2026-05-04T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); +#7790=IFCTASKTIME($,$,$,$,'P2D','2026-05-04T09:00:00','2026-05-05T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); #7794=IFCCOSTITEM('2JtBF2R719Sxe$pdj3T8t$',$,'Extension Internal Walls',$,$,'B.2',$,(#7820),(#7749,#7758)); #7795=IFCCOSTITEM('1i$1zb6$f9reU3DFiodxQ$',$,'Extension Flat Roof',$,$,'D.5',$,(#7821),(#7680)); #7796=IFCCOSTITEM('3la3OEi018ueAbZsqu5nmv',$,'WC Toilet',$,$,'F.4',$,(#7822),(#7807)); @@ -6039,11 +6036,10 @@ DATA; #9796=IFCRELNESTS('0ZYlDhfeT5qvgq3w4khdXt',$,$,$,#9794,(#9795,#9797,#9798)); #9797=IFCTASK('1nYXO5tJrC$wMbhWo5Vy7u',$,'Ground Floor Slab',$,$,'P0.2',$,$,$,.F.,$,#9804,.CONSTRUCTION.); #9798=IFCTASK('1GXuZQa3P1QBMmFNUKjWjh',$,'Ground Floor Windows and Door',$,$,'P0.3',$,$,$,.F.,$,#9805,.CONSTRUCTION.); -#9802=IFCTASKTIME($,$,$,$,'P15D','2026-02-23T09:00:00','2026-03-13T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); -#9803=IFCTASKTIME($,$,$,$,'P5D','2026-02-23T09:00:00','2026-02-27T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); -#9804=IFCTASKTIME($,$,$,$,'P5D','2026-02-27T09:00:00','2026-03-06T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); -#9805=IFCTASKTIME($,$,$,$,'P5D','2026-03-06T09:00:00','2026-03-13T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); -#9806=IFCRELSEQUENCE('3$qR87Ho16FukilSB987Iq',$,$,$,#9794,#3944,$,.FINISH_START.,$); +#9802=IFCTASKTIME($,$,$,$,'P15D','2026-03-30T09:00:00','2026-04-17T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); +#9803=IFCTASKTIME($,$,$,$,'P5D','2026-03-30T09:00:00','2026-04-03T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); +#9804=IFCTASKTIME($,$,$,$,'P5D','2026-04-06T09:00:00','2026-04-10T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); +#9805=IFCTASKTIME($,$,$,$,'P5D','2026-04-13T09:00:00','2026-04-17T17:00:00',$,$,$,$,$,$,$,$,$,$,$,$,$); #9807=IFCRELSEQUENCE('1nF5Mb4Yb9wvKwQp$76FO$',$,$,$,#9795,#9797,$,.FINISH_START.,$); #9808=IFCRELSEQUENCE('0vNbDyzs18PfMyGBjdPaOs',$,$,$,#9797,#9798,$,.FINISH_START.,$); #9809=IFCELEMENTQUANTITY('0UsdP5MnX9fRl4fMo2T6jh',$,'Qto_OpeningElementBaseQuantities',$,'BaseQuantities',(#9811,#9812,#9813,#9814,#9815)); @@ -6871,5 +6867,9 @@ DATA; #11019=IFCRELASSIGNSTOPRODUCT('3i4G8yPyj09wskGi8HbUP8',$,$,$,(#9798),$,#10472); #11020=IFCRELASSIGNSTOPRODUCT('0sGWDG9kb1ovYHn0KQPMxM',$,$,$,(#9798),$,#10522); #11021=IFCRELASSIGNSTOPRODUCT('3MckIOIHj3dwO2hIbhbrEB',$,$,$,(#9798),$,#10572); +#11022=IFCRELSEQUENCE('07G2G0ZiP789GFpFDKzaH4',$,$,$,#3946,#9794,$,.FINISH_START.,$); +#11023=IFCRELSEQUENCE('0C5vzT8JL6ZRMNhBkBXgu3',$,$,$,#9794,#3947,$,.FINISH_START.,$); +#11024=IFCRELSEQUENCE('0V8CZ0Kvb1ExKWWGP$sAg3',$,$,$,#3947,#3948,$,.FINISH_START.,$); +#11025=IFCRELSEQUENCE('131OzaZ$j7dvwJOkm2mkKM',$,$,$,#3948,#3949,$,.FINISH_START.,$); ENDSEC; END-ISO-10303-21;