mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-09 09:21:46 +00:00
fix: cascade_schedule correctly handles timelag with IfcRatioMeasure
This commit is contained in:
@@ -153,7 +153,8 @@ class Usecase:
|
||||
days = 0 if predecessor_duration.days == 0 else 1
|
||||
duration_type = "WORKTIME"
|
||||
if rel.TimeLag:
|
||||
days += self.get_lag_time_days(rel.TimeLag)
|
||||
# updated to handle IfcRatioMeasure as a TimeLag value
|
||||
days += self.get_lag_time_days(rel.TimeLag) if rel.TimeLag.is_a("IfcDuration") else predecessor_duration.days * rel.TimeLag.LagValue.wrappedValue
|
||||
duration_type = rel.TimeLag.DurationType
|
||||
if days:
|
||||
starts.append(
|
||||
@@ -182,7 +183,7 @@ class Usecase:
|
||||
if not start:
|
||||
continue
|
||||
if rel.TimeLag:
|
||||
days = self.get_lag_time_days(rel.TimeLag)
|
||||
days = self.get_lag_time_days(rel.TimeLag) if rel.TimeLag.is_a("IfcDuration") else predecessor_duration.days * rel.TimeLag.LagValue.wrappedValue
|
||||
duration_type = rel.TimeLag.DurationType
|
||||
starts.append(
|
||||
self.offset_date(
|
||||
@@ -201,7 +202,7 @@ class Usecase:
|
||||
if not finish:
|
||||
continue
|
||||
if rel.TimeLag:
|
||||
days = self.get_lag_time_days(rel.TimeLag)
|
||||
days = self.get_lag_time_days(rel.TimeLag) if rel.TimeLag.is_a("IfcDuration") else predecessor_duration.days * rel.TimeLag.LagValue.wrappedValue
|
||||
duration_type = rel.TimeLag.DurationType
|
||||
finishes.append(
|
||||
self.offset_date(
|
||||
@@ -222,7 +223,7 @@ class Usecase:
|
||||
days = -1
|
||||
duration_type = "WORKTIME"
|
||||
if rel.TimeLag:
|
||||
days += self.get_lag_time_days(rel.TimeLag)
|
||||
days += self.get_lag_time_days(rel.TimeLag) if rel.TimeLag.is_a("IfcDuration") else predecessor_duration.days * rel.TimeLag.LagValue.wrappedValue
|
||||
duration_type = rel.TimeLag.DurationType
|
||||
if days or rel.TimeLag:
|
||||
finishes.append(
|
||||
|
||||
Reference in New Issue
Block a user