Work with constraints

Work with constraints - Exercise

What are constraints

A constraint is a time-based limitation used to describe when work can or should occur.

An activity in Flow Generative Scheduling is a task, milestone, or summary, such as a shot, asset, or sequence.

All activities in Flow Generative Scheduling can have constraints.

How to apply constraints

To easily apply a constraint:

  1. Open the Schedule tab.
  2. Select an activity.
  3. Open the Controls tab.
  4. Select + Add a constraint and choose a constraint from the list.

When the Generate button is selected, the newly set constraints will be taken into consideration in the newly output schedule.

Types of constraints

Constraints can be used to enforce that work must:

  • Start as soon or as late as possible
  • Start or finish on a specific date
  • Start no earlier or later than a specific date
  • Finish no earlier or later than a specific date

The types of available constraints depend on the type of activity, and what other constraints have been applied to the same activity.

Let's take a look at an example.

Lowlands is a film project with sequences and shots. DRV is a sequence, and DRV_0002 is a shot.

To complete the shot DRV_0002, 10 different tasks need to be accomplished, including matchmove, layout, animation, and lighting.

So far, no constraints have been applied to this schedule. Any one of the tasks within DRV_0002 can have any constraint applied.

Going up one level, constraints can also be applied to the shot. Constraints applied to this shot will be applied to everything in the shot’s hierarchy, which in this case is the 10 displayed tasks.

While the individual tasks have 8 available constraints that can be applied, the shot only has 4.

Going up two more levels through the sequence to the project-level, only 2 possible constraints are available for the project as whole.

While tasks, milestones, and summaries can all have constraints, not all types of constraints are relevant to each type of activity. Some constraints can contradict others. Constraints may not be available if an activity already has contradictory constraints applied.

For example, we can set a constraint on the DRV sequence.

We can choose to add a constraint to start no earlier than November 4. If we want to add an additional constraint, the only option will be to finish no later than a certain date.

Select the garbage can icon to the right of the constraint to remove it from the activity.

The + Add a constraint button will be greyed out when no further constraints can be applied to the activity.

Instead of setting the start and finish constraints, I can choose As soon as possible.

Once this constraint is applied, no further constraints will be available.

The As soon as possible constraint is an example of an exclusive constraint. Exclusive constraints cannot be combined with other constraints. See the chart below for more details on which constraints are exclusive.

View applied constraints

When a constraint has been applied to an activity, it will be visible in the activity list in the Schedule tab under Constraints.

Infeasible constraints

It's possible to apply infeasible constraints. An infeasible constraint means that the constraint applied to that activity is not possible to do.

When you try to apply an infeasible constraint, the constraint will appear red.

In the example below, I have a matchmove task selected and want to set it to finish no later than November 15.

  • This constraint is not possible, since in this playground, the schedule data was imported to have a start date of November 18.
  • There are two tasks on which the matchmove task is dependent, with a duration of 3 days each, occurring simultaneously.
  • With a project start date of Monday, November 18, and 3 working days required to complete the upstream dependencies, the earliest start date for the matchmove task is Thursday, November 21.
  • The matchmove task will take 3 days to complete. Assuming Saturday and Sunday are non-working days, the earliest finish date for this task is Monday, November 25. All finish dates prior to November 25 appear red, as they are infeasible.

As you add more constraints to a schedule, some can become infeasible to enforce. The Filter menu makes it easy to locate activities with this type of constraints.

To find activities with infeasible constraints:

  • In the Schedule tab, open the Filter menu.



  • From the Constraints section, select Has infeasible constraints.

The Gantt chart will update to display only the activities with infeasible constraints. Infeasible constraints will appear red. The activity list will display a warning next to the activity with infeasible constraints.

Locked activities

Locked activities happen when a schedule is imported with activities that start in the past. Any activities that are done will be locked and won't be editable. An example of this is an asset containing tasks that were already completed in the past.

A locked activity will display with diagonal lines on the Gantt chart.

Partially locked activities occur when a schedule is imported with activities that start in the past, and some of the activities in the same hierarchy are completed, while others are not.

An example of this is an asset containing some tasks that are already completed, and other tasks that have not been started and still need to be scheduled.

In the example above, one art and one modeling task have been completed on the PROP_IceCreamCone asset, while one modeling, and two texturing tasks still need to be scheduled.

A lock icon appears in the activity list next to the completed tasks.

An activity can be partially locked and have infeasible constraints applied. In these scenarios, the Gantt chart will display in red and with diagonal lines.