massive refactor of the sequence module

This commit is contained in:
Sigma Dimensions
2022-08-29 21:55:37 +01:00
parent ac3eb6fbda
commit 37dec500fd
19 changed files with 2208 additions and 1184 deletions
+2 -2
View File
@@ -57,7 +57,7 @@ Scenario: Enable pset editing - work schedule
Given an empty IFC project
And I press "bim.add_work_schedule"
And the variable "work_schedule" is "{ifc}.by_type('IfcWorkSchedule')[0].id()"
And I press "bim.enable_editing_tasks(work_schedule={work_schedule})"
And I press "bim.enable_editing_work_schedule_tasks(work_schedule={work_schedule})"
And I set "scene.WorkSchedulePsetProperties.pset_name" to "Pset_WorkControlCommon"
And I press "bim.add_pset(obj_type='WorkSchedule')"
And the variable "pset" is "{ifc}.by_type('IfcPropertySet')[-1].id()"
@@ -90,7 +90,7 @@ Scenario: Enable pset editing - task
Given an empty IFC project
And I press "bim.add_work_schedule"
And the variable "work_schedule" is "IfcStore.get_file().by_type('IfcWorkSchedule')[0].id()"
And I press "bim.enable_editing_tasks(work_schedule={work_schedule})"
And I press "bim.enable_editing_work_schedule_tasks(work_schedule={work_schedule})"
And I press "bim.add_summary_task(work_schedule={work_schedule})"
And I set "scene.TaskPsetProperties.qto_name" to "Qto_TaskBaseQuantities"
And I press "bim.add_qto(obj_type='Task')"
+433 -14
View File
@@ -4,13 +4,225 @@ Feature: Sequence
Scenario: Add work plan
Given an empty IFC project
When I press "bim.add_work_plan"
And the variable "work_plan" is "IfcStore.get_file().by_type('IfcWorkPlan')[0].id()"
Then nothing happens
Scenario: Add Work schedule
Given an empty IFC project
When I press "bim.add_work_schedule"
And the variable "work_schedule" is "IfcStore.get_file().by_type('IfcWorkSchedule')[0].id()"
Then nothing happens
Scenario: Remove work plan
Given an empty IFC project
When I press "bim.add_work_plan"
And the variable "work_plan" is "IfcStore.get_file().by_type('IfcWorkPlan')[0].id()"
When I press "bim.remove_work_plan(work_plan={work_plan})"
Then nothing happens
Scenario: Remove work schedule
Given an empty IFC project
When I press "bim.add_work_schedule"
And the variable "work_schedule" is "IfcStore.get_file().by_type('IfcWorkSchedule')[0].id()"
When I press "bim.remove_work_schedule(work_schedule={work_schedule})"
Then nothing happens
Scenario: Enable Editing Work Plan
Given an empty IFC project
When I press "bim.add_work_plan"
And the variable "work_plan" is "IfcStore.get_file().by_type('IfcWorkPlan')[0].id()"
When I press "bim.enable_editing_work_plan(work_plan={work_plan})"
Then nothing happens
Scenario: Edit Work Plan
Given an empty IFC project
When I press "bim.add_work_plan"
And the variable "work_plan" is "IfcStore.get_file().by_type('IfcWorkPlan')[0].id()"
And I press "bim.enable_editing_work_plan(work_plan={work_plan})"
And I set "scene.BIMWorkPlanProperties.work_plan_attributes.get('Name').string_value" to "FooPlan"
When I press "bim.edit_work_plan()"
Then nothing happens
Scenario: Edit Work Schedule
Given an empty IFC project
When I press "bim.add_work_schedule"
And the variable "work_schedule" is "IfcStore.get_file().by_type('IfcWorkSchedule')[0].id()"
And I press "bim.enable_editing_work_schedule(work_schedule={work_schedule})"
And I set "scene.BIMWorkScheduleProperties.work_schedule_attributes.get('Name').string_value" to "FooSchedule"
When I press "bim.edit_work_schedule()"
Then nothing happens
Scenario: Disable Editing Work Plan
Given an empty IFC project
When I press "bim.add_work_plan"
And the variable "work_plan" is "IfcStore.get_file().by_type('IfcWorkPlan')[0].id()"
And I press "bim.enable_editing_work_plan_schedules(work_plan={work_plan})"
When I press "bim.disable_editing_work_plan"
Then nothing happens
Scenario: Assign work schedule
Given an empty IFC project
When I press "bim.add_work_schedule"
And the variable "work_schedule" is "IfcStore.get_file().by_type('IfcWorkSchedule')[0].id()"
When I press "bim.add_work_plan"
And the variable "work_plan" is "IfcStore.get_file().by_type('IfcWorkPlan')[0].id()"
And I press "bim.enable_editing_work_plan_schedules(work_plan={work_plan})"
And I press "bim.assign_work_schedule(work_plan={work_plan}, work_schedule={work_schedule})"
Then nothing happens
Scenario: Unassign work schedule
Given an empty IFC project
When I press "bim.add_work_schedule"
And the variable "work_schedule" is "IfcStore.get_file().by_type('IfcWorkSchedule')[0].id()"
When I press "bim.add_work_plan"
And the variable "work_plan" is "IfcStore.get_file().by_type('IfcWorkPlan')[0].id()"
And I press "bim.enable_editing_work_plan_schedules(work_plan={work_plan})"
And I press "bim.assign_work_schedule(work_plan={work_plan}, work_schedule={work_schedule})"
And I press "bim.unassign_work_schedule(work_plan={work_plan}, work_schedule={work_schedule})"
Then nothing happens
Scenario: Delete assigned work schedule
Given an empty IFC project
When I press "bim.add_work_schedule"
And the variable "work_schedule" is "IfcStore.get_file().by_type('IfcWorkSchedule')[0].id()"
When I press "bim.add_work_plan"
And the variable "work_plan" is "IfcStore.get_file().by_type('IfcWorkPlan')[0].id()"
And I press "bim.enable_editing_work_plan_schedules(work_plan={work_plan})"
And I press "bim.assign_work_schedule(work_plan={work_plan}, work_schedule={work_schedule})"
When I press "bim.remove_work_schedule(work_schedule={work_schedule})"
Then nothing happens
Scenario: Remove Assigned work schedule
Given an empty IFC project
When I press "bim.add_work_schedule"
And the variable "work_schedule" is "IfcStore.get_file().by_type('IfcWorkSchedule')[0].id()"
When I press "bim.add_work_plan"
And the variable "work_plan" is "IfcStore.get_file().by_type('IfcWorkPlan')[0].id()"
And I press "bim.enable_editing_work_plan_schedules(work_plan={work_plan})"
When I press "bim.assign_work_schedule(work_plan={work_plan}, work_schedule={work_schedule})"
Then nothing happens
Scenario: Add work calendar
Given an empty IFC project
When I press "bim.add_work_calendar"
And the variable "work_calendar" is "IfcStore.get_file().by_type('IfcWorkCalendar')[0].id()"
Then nothing happens
Scenario: Remove work calendar
Given an empty IFC project
When I press "bim.add_work_calendar"
And the variable "work_calendar" is "IfcStore.get_file().by_type('IfcWorkCalendar')[0].id()"
When I press "bim.remove_work_calendar(work_calendar={work_calendar})"
Then nothing happens
Scenario: Edit work calendar attributes
Given an empty IFC project
When I press "bim.add_work_calendar"
And the variable "work_calendar" is "IfcStore.get_file().by_type('IfcWorkCalendar')[0].id()"
When I press "bim.enable_editing_work_calendar(work_calendar={work_calendar})"
And I set "scene.BIMWorkCalendarProperties.work_calendar_attributes.get('Name').string_value" to "FooCalendar"
When I press "bim.edit_work_calendar()"
Then nothing happens
Scenario: Enable editing calendar times
Given an empty IFC project
When I press "bim.add_work_calendar"
And the variable "work_calendar" is "IfcStore.get_file().by_type('IfcWorkCalendar')[0].id()"
When I press "bim.enable_editing_work_calendar_times(work_calendar={work_calendar})"
Then nothing happens
Scenario: Add calendar Working Time
Given an empty IFC project
When I press "bim.add_work_calendar"
And the variable "work_calendar" is "IfcStore.get_file().by_type('IfcWorkCalendar')[0].id()"
When I press "bim.enable_editing_work_calendar_times(work_calendar={work_calendar})"
When I press "bim.add_work_time(work_calendar={work_calendar}, time_type="WorkingTimes")"
Then nothing happens
Scenario: Add calendar Exception Time
Given an empty IFC project
When I press "bim.add_work_calendar"
And the variable "work_calendar" is "IfcStore.get_file().by_type('IfcWorkCalendar')[0].id()"
And I press "bim.enable_editing_work_calendar_times(work_calendar={work_calendar})"
When I press "bim.add_work_time(work_calendar={work_calendar}, time_type="ExceptionTimes")"
Then nothing happens
Scenario: Enable editing Working Time Attributes
Given an empty IFC project
When I press "bim.add_work_calendar"
And the variable "work_calendar" is "IfcStore.get_file().by_type('IfcWorkCalendar')[0].id()"
When I press "bim.enable_editing_work_calendar_times(work_calendar={work_calendar})"
When I press "bim.add_work_time(work_calendar={work_calendar}, time_type="WorkingTimes")"
And the variable "work_time" is "IfcStore.get_file().by_type('IfcWorkTime')[0].id()"
When I press "bim.enable_editing_work_time(work_time={work_time})"
Scenario: Edit Working Time Start and End Period
Given an empty IFC project
When I press "bim.add_work_calendar"
And the variable "work_calendar" is "IfcStore.get_file().by_type('IfcWorkCalendar')[0].id()"
When I press "bim.enable_editing_work_calendar_times(work_calendar={work_calendar})"
When I press "bim.add_work_time(work_calendar={work_calendar}, time_type='WorkingTimes')"
And the variable "work_time" is "IfcStore.get_file().by_type('IfcWorkTime')[0].id()"
When I press "bim.enable_editing_work_time(work_time={work_time})"
And I set "scene.BIMWorkCalendarProperties.work_time_attributes.get('Start').string_value" to "2021-01-01"
And I set "scene.BIMWorkCalendarProperties.work_time_attributes.get('Finish').string_value" to "2022-01-01"
When I press "bim.edit_work_time()"
Then nothing happens
Scenario: Add Working Time Period
Given an empty IFC project
When I press "bim.add_work_calendar"
And the variable "work_calendar" is "IfcStore.get_file().by_type('IfcWorkCalendar')[0].id()"
When I press "bim.enable_editing_work_calendar_times(work_calendar={work_calendar})"
When I press "bim.add_work_time(work_calendar={work_calendar}, time_type='WorkingTimes')"
And the variable "work_time" is "IfcStore.get_file().by_type('IfcWorkTime')[0].id()"
When I press "bim.enable_editing_work_time(work_time={work_time})"
When I press "bim.assign_recurrence_pattern(work_time={work_time}, recurrence_type='DAILY')"
And the variable "recurrence_pattern" is "IfcStore.get_file().by_type('IfcRecurrencePattern')[0].id()"
And I set "scene.BIMWorkCalendarProperties.start_time" to "9AM"
And I set "scene.BIMWorkCalendarProperties.end_time" to "1PM"
When I press "bim.add_time_period(recurrence_pattern={recurrence_pattern})"
When I press "bim.edit_work_time()"
Then nothing happens
Scenario: Edit Working Time start finish and time period
Given an empty IFC project
When I press "bim.add_work_calendar"
And the variable "work_calendar" is "IfcStore.get_file().by_type('IfcWorkCalendar')[0].id()"
When I press "bim.enable_editing_work_calendar_times(work_calendar={work_calendar})"
When I press "bim.add_work_time(work_calendar={work_calendar}, time_type='WorkingTimes')"
And the variable "work_time" is "IfcStore.get_file().by_type('IfcWorkTime')[0].id()"
When I press "bim.enable_editing_work_time(work_time={work_time})"
And I set "scene.BIMWorkCalendarProperties.work_time_attributes.get('Start').string_value" to "2021-01-01"
And I set "scene.BIMWorkCalendarProperties.work_time_attributes.get('Finish').string_value" to "2022-01-01"
When I press "bim.assign_recurrence_pattern(work_time={work_time}, recurrence_type='DAILY')"
And the variable "recurrence_pattern" is "IfcStore.get_file().by_type('IfcRecurrencePattern')[0].id()"
And I set "scene.BIMWorkCalendarProperties.start_time" to "9AM"
And I set "scene.BIMWorkCalendarProperties.end_time" to "1PM"
When I press "bim.add_time_period(recurrence_pattern={recurrence_pattern})"
When I press "bim.edit_work_time()"
Then nothing happens
Scenario: Unassign Calendar to task
Given an empty IFC project
When I press "bim.add_work_calendar"
And the variable "work_calendar" is "IfcStore.get_file().by_type('IfcWorkCalendar')[0].id()"
When I press "bim.add_work_schedule"
And the variable "work_schedule" is "IfcStore.get_file().by_type('IfcWorkSchedule')[0].id()"
And I press "bim.enable_editing_work_schedule_tasks(work_schedule={work_schedule})"
And I press "bim.add_summary_task(work_schedule={work_schedule})"
And the variable "task" is "IfcStore.get_file().by_type('IfcTask')[0].id()"
And I press "bim.enable_editing_task_calendar(task={task})"
And I press "bim.edit_task_calendar(work_calendar={work_calendar}, task={task})"
When I press "bim.remove_task_calendar(work_calendar={work_calendar}, task={task})"
Then nothing happens
Scenario: Enable editing task
Given an empty IFC project
And I press "bim.add_work_schedule"
And the variable "work_schedule" is "IfcStore.get_file().by_type('IfcWorkSchedule')[0].id()"
And I press "bim.enable_editing_tasks(work_schedule={work_schedule})"
And I press "bim.enable_editing_work_schedule_tasks(work_schedule={work_schedule})"
And I press "bim.add_summary_task(work_schedule={work_schedule})"
And the variable "task" is "IfcStore.get_file().by_type('IfcTask')[0].id()"
When I press "bim.enable_editing_task(task={task})"
@@ -20,7 +232,7 @@ Scenario: Copy task attribute
Given an empty IFC project
And I press "bim.add_work_schedule"
And the variable "work_schedule" is "IfcStore.get_file().by_type('IfcWorkSchedule')[0].id()"
And I press "bim.enable_editing_tasks(work_schedule={work_schedule})"
And I press "bim.enable_editing_work_schedule_tasks(work_schedule={work_schedule})"
And I press "bim.add_summary_task(work_schedule={work_schedule})"
And I press "bim.add_summary_task(work_schedule={work_schedule})"
And the variable "task" is "IfcStore.get_file().by_type('IfcTask')[0].id()"
@@ -30,11 +242,86 @@ Scenario: Copy task attribute
And I press "bim.copy_task_attribute(name='Description')"
Then nothing happens
Scenario: Unassign task Successor
Given an empty IFC project
When I press "bim.add_work_schedule"
And the variable "work_schedule" is "IfcStore.get_file().by_type('IfcWorkSchedule')[0].id()"
And I press "bim.enable_editing_work_schedule_tasks(work_schedule={work_schedule})"
When I press "bim.add_summary_task(work_schedule={work_schedule})"
And the variable "task" is "IfcStore.get_file().by_type('IfcTask')[0].id()"
When I press "bim.add_task(task={task})"
And the variable "nested_task_one" is "IfcStore.get_file().by_type('IfcTask')[1].id()"
When I press "bim.add_task(task={task})"
And the variable "nested_task_two" is "IfcStore.get_file().by_type('IfcTask')[2].id()"
And I press "bim.enable_editing_task(task={nested_task_one})"
And I press "bim.assign_successor(task={nested_task_two})"
When I press "bim.unassign_successor(task={nested_task_two})"
Then nothing happens
Scenario: Edit time Lag
Given an empty IFC project
When I press "bim.add_work_schedule"
And the variable "work_schedule" is "IfcStore.get_file().by_type('IfcWorkSchedule')[0].id()"
And I press "bim.enable_editing_work_schedule_tasks(work_schedule={work_schedule})"
When I press "bim.add_summary_task(work_schedule={work_schedule})"
And the variable "task" is "IfcStore.get_file().by_type('IfcTask')[0].id()"
When I press "bim.add_task(task={task})"
And the variable "nested_task_one" is "IfcStore.get_file().by_type('IfcTask')[1].id()"
When I press "bim.add_task(task={task})"
And the variable "nested_task_two" is "IfcStore.get_file().by_type('IfcTask')[2].id()"
And I press "bim.enable_editing_task(task={nested_task_one})"
When I press "bim.assign_successor(task={nested_task_two})"
And the variable "rel_sequence" is "IfcStore.get_file().by_type('IfcRelSequence')[0].id()"
When I press "bim.assign_lag_time(sequence={rel_sequence})"
And the variable "lag_time" is "IfcStore.get_file().by_type('IfcLagTime')[0].id()"
And I press "bim.enable_editing_sequence_lag_time(sequence={rel_sequence}, lag_time={lag_time})"
And I set "scene.BIMWorkScheduleProperties.lag_time_attributes.get('LagValue').string_value" to "P5D"
When I press "bim.edit_sequence_lag_time(lag_time={lag_time})"
Then nothing happens
Scenario: Unassign time Lag
Given an empty IFC project
When I press "bim.add_work_schedule"
And the variable "work_schedule" is "IfcStore.get_file().by_type('IfcWorkSchedule')[0].id()"
And I press "bim.enable_editing_work_schedule_tasks(work_schedule={work_schedule})"
When I press "bim.add_summary_task(work_schedule={work_schedule})"
And the variable "task" is "IfcStore.get_file().by_type('IfcTask')[0].id()"
When I press "bim.add_task(task={task})"
And the variable "nested_task_one" is "IfcStore.get_file().by_type('IfcTask')[1].id()"
When I press "bim.add_task(task={task})"
And the variable "nested_task_two" is "IfcStore.get_file().by_type('IfcTask')[2].id()"
And I press "bim.enable_editing_task(task={nested_task_one})"
When I press "bim.assign_successor(task={nested_task_two})"
And the variable "rel_sequence" is "IfcStore.get_file().by_type('IfcRelSequence')[0].id()"
When I press "bim.assign_lag_time(sequence={rel_sequence})"
And the variable "lag_time" is "IfcStore.get_file().by_type('IfcLagTime')[0].id()"
When I press "bim.unassign_lag_time(sequence={rel_sequence})"
Then nothing happens
Scenario: Edit Sequence Relationship
Given an empty IFC project
When I press "bim.add_work_schedule"
And the variable "work_schedule" is "IfcStore.get_file().by_type('IfcWorkSchedule')[0].id()"
And I press "bim.enable_editing_work_schedule_tasks(work_schedule={work_schedule})"
When I press "bim.add_summary_task(work_schedule={work_schedule})"
And the variable "task" is "IfcStore.get_file().by_type('IfcTask')[0].id()"
When I press "bim.add_task(task={task})"
And the variable "nested_task_one" is "IfcStore.get_file().by_type('IfcTask')[1].id()"
When I press "bim.add_task(task={task})"
And the variable "nested_task_two" is "IfcStore.get_file().by_type('IfcTask')[2].id()"
And I press "bim.enable_editing_task(task={nested_task_one})"
When I press "bim.assign_successor(task={nested_task_two})"
And the variable "rel_sequence" is "IfcStore.get_file().by_type('IfcRelSequence')[0].id()"
And I press "bim.enable_editing_sequence_attributes(sequence={rel_sequence})"
And I set "scene.BIMWorkScheduleProperties.sequence_attributes.get('SequenceType').enum_value" to "START_START"
When I press "bim.edit_sequence_attributes()"
Then nothing happens
Scenario: See the current frame date as text
Given an empty IFC project
And I press "bim.add_work_schedule"
And the variable "work_schedule" is "IfcStore.get_file().by_type('IfcWorkSchedule')[0].id()"
And I press "bim.enable_editing_tasks(work_schedule={work_schedule})"
And I press "bim.enable_editing_work_schedule_tasks(work_schedule={work_schedule})"
And I set "scene.BIMWorkScheduleProperties.visualisation_start" to "01/01/21"
And I set "scene.BIMWorkScheduleProperties.visualisation_finish" to "01/02/21"
And I set "scene.BIMWorkScheduleProperties.speed_types" to "FRAME_SPEED"
@@ -50,7 +337,7 @@ Scenario: Animate the construction of a wall
Given an empty IFC project
And I press "bim.add_work_schedule"
And the variable "work_schedule" is "IfcStore.get_file().by_type('IfcWorkSchedule')[0].id()"
And I press "bim.enable_editing_tasks(work_schedule={work_schedule})"
And I press "bim.enable_editing_work_schedule_tasks(work_schedule={work_schedule})"
And I press "bim.add_summary_task(work_schedule={work_schedule})"
And the variable "task" is "IfcStore.get_file().by_type('IfcTask')[0].id()"
And I press "bim.enable_editing_task(task={task})"
@@ -65,7 +352,7 @@ Scenario: Animate the construction of a wall
And I set "scene.BIMRootProperties.ifc_class" to "IfcWall"
And I press "bim.assign_class"
And the object "IfcWall/Cube" is selected
And I press "bim.assign_product(task={task}, relating_product='')"
And I press "bim.assign_product(task={task})"
And I set "scene.BIMWorkScheduleProperties.visualisation_start" to "01/01/21"
And I set "scene.BIMWorkScheduleProperties.visualisation_finish" to "01/02/21"
And I set "scene.BIMWorkScheduleProperties.speed_types" to "FRAME_SPEED"
@@ -86,7 +373,7 @@ Scenario: Animate the demolition of a wall
Given an empty IFC project
And I press "bim.add_work_schedule"
And the variable "work_schedule" is "IfcStore.get_file().by_type('IfcWorkSchedule')[0].id()"
And I press "bim.enable_editing_tasks(work_schedule={work_schedule})"
And I press "bim.enable_editing_work_schedule_tasks(work_schedule={work_schedule})"
And I press "bim.add_summary_task(work_schedule={work_schedule})"
And the variable "task" is "IfcStore.get_file().by_type('IfcTask')[0].id()"
And I press "bim.enable_editing_task(task={task})"
@@ -101,7 +388,7 @@ Scenario: Animate the demolition of a wall
And I set "scene.BIMRootProperties.ifc_class" to "IfcWall"
And I press "bim.assign_class"
And the object "IfcWall/Cube" is selected
And I press "bim.assign_product(task={task}, relating_product='')"
And I press "bim.assign_product(task={task}, relating_product=0)"
And I set "scene.BIMWorkScheduleProperties.visualisation_start" to "01/01/21"
And I set "scene.BIMWorkScheduleProperties.visualisation_finish" to "01/02/21"
And I set "scene.BIMWorkScheduleProperties.speed_types" to "FRAME_SPEED"
@@ -125,7 +412,7 @@ Scenario: Animate the operation of a wall
Given an empty IFC project
And I press "bim.add_work_schedule"
And the variable "work_schedule" is "IfcStore.get_file().by_type('IfcWorkSchedule')[0].id()"
And I press "bim.enable_editing_tasks(work_schedule={work_schedule})"
And I press "bim.enable_editing_work_schedule_tasks(work_schedule={work_schedule})"
And I press "bim.add_summary_task(work_schedule={work_schedule})"
And the variable "task" is "IfcStore.get_file().by_type('IfcTask')[0].id()"
And I press "bim.enable_editing_task(task={task})"
@@ -140,7 +427,7 @@ Scenario: Animate the operation of a wall
And I set "scene.BIMRootProperties.ifc_class" to "IfcWall"
And I press "bim.assign_class"
And the object "IfcWall/Cube" is selected
And I press "bim.assign_product(task={task}, relating_product='')"
And I press "bim.assign_product(task={task}, relating_product=0)"
And I set "scene.BIMWorkScheduleProperties.visualisation_start" to "01/01/21"
And I set "scene.BIMWorkScheduleProperties.visualisation_finish" to "01/02/21"
And I set "scene.BIMWorkScheduleProperties.speed_types" to "FRAME_SPEED"
@@ -158,7 +445,7 @@ Scenario: Animate the movement of a wall
Given an empty IFC project
And I press "bim.add_work_schedule"
And the variable "work_schedule" is "IfcStore.get_file().by_type('IfcWorkSchedule')[0].id()"
And I press "bim.enable_editing_tasks(work_schedule={work_schedule})"
And I press "bim.enable_editing_work_schedule_tasks(work_schedule={work_schedule})"
And I press "bim.add_summary_task(work_schedule={work_schedule})"
And the variable "task" is "IfcStore.get_file().by_type('IfcTask')[0].id()"
And I press "bim.enable_editing_task(task={task})"
@@ -174,13 +461,13 @@ Scenario: Animate the movement of a wall
And I set "scene.BIMRootProperties.ifc_class" to "IfcWall"
And I press "bim.assign_class"
And the object "IfcWall/ToObject" is selected
And I press "bim.assign_product(task={task}, relating_product='')"
And I press "bim.assign_product(task={task}, relating_product=0)"
When I add a cube
And I rename the object "Cube" to "FromObject"
And the object "FromObject" is selected
And I press "bim.assign_class"
And the object "IfcWall/FromObject" is selected
And I press "bim.assign_process(task={task}, related_object_type='PRODUCT', related_object='')"
And I press "bim.assign_process(task={task}, related_object_type='PRODUCT', related_object=0)"
And I set "scene.BIMWorkScheduleProperties.visualisation_start" to "01/01/21"
And I set "scene.BIMWorkScheduleProperties.visualisation_finish" to "01/02/21"
And I set "scene.BIMWorkScheduleProperties.speed_types" to "FRAME_SPEED"
@@ -212,7 +499,7 @@ Scenario: Animate the consumption of a wall
Given an empty IFC project
And I press "bim.add_work_schedule"
And the variable "work_schedule" is "IfcStore.get_file().by_type('IfcWorkSchedule')[0].id()"
And I press "bim.enable_editing_tasks(work_schedule={work_schedule})"
And I press "bim.enable_editing_work_schedule_tasks(work_schedule={work_schedule})"
And I press "bim.add_summary_task(work_schedule={work_schedule})"
And the variable "task" is "IfcStore.get_file().by_type('IfcTask')[0].id()"
And I press "bim.enable_editing_task_time(task={task})"
@@ -224,7 +511,7 @@ Scenario: Animate the consumption of a wall
And I set "scene.BIMRootProperties.ifc_class" to "IfcWall"
And I press "bim.assign_class"
And the object "IfcWall/Cube" is selected
And I press "bim.assign_process(task={task}, related_object_type='PRODUCT', related_object='')"
And I press "bim.assign_process(task={task}, related_object_type='PRODUCT', related_object=0)"
And I set "scene.BIMWorkScheduleProperties.visualisation_start" to "01/01/21"
And I set "scene.BIMWorkScheduleProperties.visualisation_finish" to "01/02/21"
And I set "scene.BIMWorkScheduleProperties.speed_types" to "FRAME_SPEED"
@@ -243,3 +530,135 @@ Scenario: Animate the consumption of a wall
Then "scene.objects.get('IfcWall/Cube').color" is "[0.0, 0.0, 0.0, 1]"
Then "scene.objects.get('IfcWall/Cube').hide_viewport" is "True"
Then "scene.objects.get('IfcWall/Cube').hide_render" is "True"
Scenario: Generate Gantt Chart
Given an empty IFC project
And I press "bim.add_work_schedule"
And the variable "work_schedule" is "IfcStore.get_file().by_type('IfcWorkSchedule')[0].id()"
And I press "bim.enable_editing_work_schedule_tasks(work_schedule={work_schedule})"
And I press "bim.add_summary_task(work_schedule={work_schedule})"
And the variable "task" is "IfcStore.get_file().by_type('IfcTask')[0].id()"
And I press "bim.enable_editing_task(task={task})"
And I set "scene.BIMWorkScheduleProperties.task_attributes.get('PredefinedType').enum_value" to "CONSTRUCTION"
And I press "bim.edit_task"
And I press "bim.enable_editing_task_time(task={task})"
And I set "scene.BIMWorkScheduleProperties.task_time_attributes.get('ScheduleStart').string_value" to "2021-01-02"
And I set "scene.BIMWorkScheduleProperties.task_time_attributes.get('ScheduleFinish').string_value" to "2021-01-06"
And I press "bim.edit_task_time"
And I press "bim.generate_gantt_chart(work_schedule={work_schedule})"
Then nothing happens
Scenario: Edit task with calendar
Given an empty IFC project
When I press "bim.add_work_calendar"
And the variable "work_calendar" is "IfcStore.get_file().by_type('IfcWorkCalendar')[0].id()"
When I press "bim.add_work_schedule"
And the variable "work_schedule" is "IfcStore.get_file().by_type('IfcWorkSchedule')[0].id()"
And I press "bim.enable_editing_work_schedule_tasks(work_schedule={work_schedule})"
And I press "bim.add_summary_task(work_schedule={work_schedule})"
And the variable "task" is "IfcStore.get_file().by_type('IfcTask')[0].id()"
When I press "bim.add_task(task={task})"
And the variable "nested_task_one" is "IfcStore.get_file().by_type('IfcTask')[1].id()"
When I press "bim.add_task(task={task})"
And the variable "nested_task_two" is "IfcStore.get_file().by_type('IfcTask')[2].id()"
When I press "bim.add_task(task={task})"
And the variable "nested_task_three" is "IfcStore.get_file().by_type('IfcTask')[3].id()"
When I press "bim.enable_editing_work_calendar_times(work_calendar={work_calendar})"
When I press "bim.add_work_time(work_calendar={work_calendar}, time_type="WorkingTimes")"
When I press "bim.add_work_time(work_calendar={work_calendar}, time_type="ExceptionTimes")"
And I press "bim.disable_editing_work_calendar"
And I press "bim.enable_editing_task_sequence(task={nested_task_one})"
And I press "bim.assign_successor(task={nested_task_two})"
And I press "bim.disable_editing_task"
And I press "bim.enable_editing_task_sequence(task={nested_task_three})"
And I press "bim.assign_predecessor(task={nested_task_two})"
And I press "bim.disable_editing_task"
And I press "bim.enable_editing_task_time(task={nested_task_three})"
And I set "scene.BIMWorkScheduleProperties.task_time_attributes.get('ScheduleStart').string_value" to "2021-01-02"
And I set "scene.BIMWorkScheduleProperties.task_time_attributes.get('ScheduleFinish').string_value" to "2021-01-06"
And I press "bim.edit_task_time"
And I press "bim.enable_editing_task_calendar(task={task})"
And I press "bim.edit_task_calendar(work_calendar={work_calendar}, task={task})"
And I press "bim.enable_editing_task_sequence(task={nested_task_one})"
And I press "bim.disable_editing_task()"
Then nothing happens
Scenario: Assign task calendar with Working Time
Given an empty IFC project
When I press "bim.add_work_calendar"
And the variable "work_calendar" is "IfcStore.get_file().by_type('IfcWorkCalendar')[0].id()"
When I press "bim.add_work_schedule"
And the variable "work_schedule" is "IfcStore.get_file().by_type('IfcWorkSchedule')[0].id()"
And I press "bim.enable_editing_work_schedule_tasks(work_schedule={work_schedule})"
And I press "bim.add_summary_task(work_schedule={work_schedule})"
And the variable "task" is "IfcStore.get_file().by_type('IfcTask')[0].id()"
When I press "bim.add_task(task={task})"
And the variable "nested_task_one" is "IfcStore.get_file().by_type('IfcTask')[1].id()"
When I press "bim.add_task(task={task})"
And the variable "nested_task_two" is "IfcStore.get_file().by_type('IfcTask')[2].id()"
When I press "bim.add_task(task={task})"
And the variable "nested_task_three" is "IfcStore.get_file().by_type('IfcTask')[3].id()"
When I press "bim.enable_editing_work_calendar_times(work_calendar={work_calendar})"
When I press "bim.add_work_time(work_calendar={work_calendar}, time_type="WorkingTimes")"
When I press "bim.add_work_time(work_calendar={work_calendar}, time_type="ExceptionTimes")"
And I press "bim.disable_editing_work_calendar"
And I press "bim.enable_editing_task_sequence(task={nested_task_one})"
And I press "bim.assign_successor(task={nested_task_two})"
And I press "bim.disable_editing_task"
And I press "bim.enable_editing_task_sequence(task={nested_task_three})"
And I press "bim.assign_predecessor(task={nested_task_two})"
And I press "bim.disable_editing_task"
And I press "bim.enable_editing_task_calendar(task={task})"
And I press "bim.edit_task_calendar(work_calendar={work_calendar}, task={nested_task_three})"
And I press "bim.disable_editing_task()"
And I press "bim.enable_editing_task_time(task={nested_task_three})"
And I set "scene.BIMWorkScheduleProperties.task_time_attributes.get('ScheduleStart').string_value" to "2021-01-02"
And I set "scene.BIMWorkScheduleProperties.task_time_attributes.get('ScheduleFinish').string_value" to "2021-01-06"
# And I press "bim.edit_task_time"
Then nothing happens
Scenario: Assign task calendar with no working time
Given an empty IFC project
When I press "bim.add_work_calendar"
And the variable "work_calendar" is "IfcStore.get_file().by_type('IfcWorkCalendar')[0].id()"
When I press "bim.add_work_schedule"
And the variable "work_schedule" is "IfcStore.get_file().by_type('IfcWorkSchedule')[0].id()"
And I press "bim.enable_editing_work_schedule_tasks(work_schedule={work_schedule})"
And I press "bim.add_summary_task(work_schedule={work_schedule})"
And the variable "task" is "IfcStore.get_file().by_type('IfcTask')[0].id()"
When I press "bim.add_task(task={task})"
And the variable "nested_task_one" is "IfcStore.get_file().by_type('IfcTask')[1].id()"
When I press "bim.add_task(task={task})"
And the variable "nested_task_two" is "IfcStore.get_file().by_type('IfcTask')[2].id()"
When I press "bim.add_task(task={task})"
And the variable "nested_task_three" is "IfcStore.get_file().by_type('IfcTask')[3].id()"
And I press "bim.enable_editing_task_sequence(task={nested_task_one})"
And I press "bim.assign_successor(task={nested_task_two})"
And I press "bim.disable_editing_task"
And I press "bim.enable_editing_task_sequence(task={nested_task_three})"
And I press "bim.assign_predecessor(task={nested_task_two})"
And I press "bim.disable_editing_task"
And I press "bim.enable_editing_task_calendar(task={task})"
And I press "bim.edit_task_calendar(work_calendar={work_calendar}, task={nested_task_three})"
And I press "bim.disable_editing_task()"
When I press "bim.enable_editing_work_calendar_times(work_calendar={work_calendar})"
When I press "bim.add_work_time(work_calendar={work_calendar}, time_type="WorkingTimes")"
And the variable "work_time" is "IfcStore.get_file().by_type('IfcWorkTime')[0].id()"
When I press "bim.enable_editing_work_time(work_time={work_time})"
And I set "scene.BIMWorkCalendarProperties.work_time_attributes.get('Start').string_value" to "01-08-2021"
And I set "scene.BIMWorkCalendarProperties.work_time_attributes.get('Finish').string_value" to "01-08-2022"
When I press "bim.assign_recurrence_pattern(work_time={work_time}, recurrence_type='DAILY')"
And the variable "recurrence_pattern" is "IfcStore.get_file().by_type('IfcRecurrencePattern')[0].id()"
And I set "scene.BIMWorkCalendarProperties.start_time" to "9AM"
And I set "scene.BIMWorkCalendarProperties.end_time" to "1PM"
When I press "bim.add_time_period(recurrence_pattern={recurrence_pattern})"
And I press "bim.edit_work_time"
# When I press "bim.add_work_time(work_calendar={work_calendar}, time_type="ExceptionTimes")"
And I press "bim.disable_editing_work_calendar"
And I press "bim.enable_editing_task_time(task={nested_task_three})"
And I set "scene.BIMWorkScheduleProperties.task_time_attributes.get('ScheduleStart').string_value" to "2021-01-02"
And I set "scene.BIMWorkScheduleProperties.task_time_attributes.get('ScheduleFinish').string_value" to "2021-01-06"
And I press "bim.edit_task_time"
Then nothing happens