Resources can be constrained to fit your unique project conditions. Constraints are defined as user-created rules impacting how ALICE simulates resource application via recipes; effectively guiding ALICE to comply with specific project restrictions when running schedules. Labor, materials, equipment, and workweek calendars can be modeled to reflect:
- maximum or minimum resource availability
- limited work times
- dictate how ALICE allocates specific resources throughout a project’s duration
Understanding how resources behave in ALICE and how they can be utilized to incorporate project constraints is critical toward creatively modeling realistic conditions unique to a project.
Example Scenario - Concrete Crew Constraints:
A project has a total of three (3) available concrete crews. Each of the concrete crews can work on any task related to concrete scope:
- installing/stripping formwork
- tying rebar
- pouring concrete
Strict project conditions dictate that concrete pours are only allowed to occur between 4:00 AM and 4:00 PM on Saturdays, thus concrete pour tasks are constrained and impact how the concrete scope can progress.
Considering this scenario in ALICE requires addressing two (2) primary constraints:
- Constraining Crew Type (i.e. pour tasks defined separately from other concrete scope)
- Constraining Unique Workweeks (i.e. pour tasks occur within a specific timeframe)
Constraining Crew Type:
1. Scenario Baseline Labor Resource: three (3) available Concrete Crew labor resources
Figure 1 - Concrete Crew Labor Resource Parameters
We know that we have three (3) concrete crews available for the project, thus we define them as such under the labor resources tab on the ALICE plan page.
2. Baseline Labor Created for a Specific Task: secondary Concrete Pour Crew labor resource created to conform to the time constraint
Figure 2 - Concrete Pour Crew created as a ‘clone’ of the concrete crew.
Since we are concerned about the timing of concrete pours, a second crew type is created called Concrete Pour Crew; mirroring the parameters of the baseline Concrete Crew. The Concrete Pour Crew is created to provide a placeholder role for a typical Concrete Crew when it’s working only during a concrete pour activity.
Remember, all three (3) baseline Concrete Crews on this project can perform any task related to the concrete scope, however, we create a dedicated pour crew so that ALICE understands the time constraints on the pour activities separate from the other concrete tasks within a recipe.
3. Constrain Concrete Crew Allocation by ALICE: use a placeholder equipment resource to constrain ALICE in allocating no more crews than are realistically available
In step 2, we modeled a total of six (6) concrete crews for our project yet reality dictates that we have only three (3) crews available for concrete scope. When creating recipes for our concrete scope, how do we ensure that ALICE does not misinterpret our labor resources and assign more than three (3) crews at any time during the project duration?
The solution is to tie all concrete scope activities requiring concrete crews with a placeholder equipment resource with a defined quantity of the maximum number of crews that can work at any given time; in this project’s case: three (3).
Figure 3 - Concrete Crew Cap placeholder equipment
In Figure 3, a placeholder equipment resource called ‘Concrete Crew Cap’ has been created. Any task operation that is assigned a quantity of this equipment resource effectively ‘borrows’ that quantity of the placeholder equipment from the resource pool and ‘returns’ it once the task is complete; thus the placeholder equipment quantity defined in the resource pool caps the amount of concurrently occurring concrete tasks.
When assigning this placeholder equipment to a task, a parametric value of ‘num_crews’ is used for the quantity (see Figure 7). This will preserve the labor allocation constraint regardless of the minimum or maximum values for crews assigned to the task.
Creating a second placeholder crew is the halfway point when setting up this constraint. We've identified that concrete pour tasks require special attention by creating a specific crew. The next step is to establish a unique working time for this crew so ALICE knows to respect the time limitations associated with concrete pour tasks.
Constrain Unique Workweeks:
Each newly created labor crew in ALICE is assigned a default workweek calendar of 40 working hours, 8:00 AM to 4:00 PM, Monday through Friday as shown in Figure 4:
Figure 4 - Default Concrete Crew workweek calendar
All crews are automatically assigned the default workweek calendar, but remember that our concrete pour tasks cannot conform to the default calendar since they are only allowed to occur on Saturdays between 4:00 AM and 4:00 PM. We must create a separate working calendar dedicated for concrete pours and assign it to the placeholder Concrete Pour Crew as shown in Figure 5:
Figure 5 - Dedicated Concrete Pour Crew working calendar. Calendar assigns one (1) working day: Saturday; with a range of working hours between 4:00 AM and 4:00 PM.
Example Recipe and Task Card:
Figure 6 - Sample Concrete Column Recipe. Note: the ‘Pour Concrete’ task has a different crew than the rest. It uses the dedicated ‘Concrete Pour Crew’ we created in Step 2.
Figure 7 - Placeholder equipment assigned to a concrete pour task card. Note: the quantity as ‘num_crews’ is parametric.
With the placeholder crew and specific concrete pour calendar assigned correctly in concrete recipes, ALICE will yield schedules that have no more than three (3) concrete crews working concurrently, and no concrete pours will occur outside Saturdays between 4:00 AM and 4:00 PM.