Shadow Attributes

Auxiliary tasks generally represent activities related to the same mining block as their parent tasks. For example, each auxiliary task operates on the same ore volume with the same grade as the parent task. Rather than repeat all of the attributes that are shared between each auxiliary task and its parent task, an auxiliary task will "inherit" the attributes of its parent task. We refer to these as the "shadow attributes" of an auxiliary task.

You can use shadow attributes in task attribute expressions, for example, in an expression defining an auxiliary task attribute, or in a task filter. That is, you can refer to [Tonnes], for example, even if you do not have [Tonnes] checked for inclusion on the task type attribute expression grid. The Tonnes value from the parent primary task is used in this case. You do need to give Tonnes a schedule-level default value to do this, otherwise the editor grid complains that you are using an undefined attribute.

In the Gantt attributes table, a task that does not have a particular attribute defined normally shows a blank cell. For an auxiliary task that does not have an attribute but does have a shadow attribute, the parent task attribute value appears in brackets “[]”.

Inheriting parent attribute values is normally the desired behaviour, but is unwanted in the Scheduling Optimiser because this inheritance results, for example, in the same ore being counted multiple times in the objective: once for the parent task and once for each auxiliary task.

The Scheduling Optimiser ignores shadow attributes. For a task attribute value to be used in the Scheduling Optimiser (for the objective, constraints, or reporting), the task must include the attribute directly. Auxiliary tasks that do not include the attribute do not contribute to the objective / constraints / report even if their parent primary task does include the attribute.

In particular, grade constraints should be treated correctly. A task that does not include the grade attribute will not contribute to the grade for constraint or reporting. This is true even if the task does include the denominator (weighting) attribute, i.e. grades don't get diluted if the task doesn't have the grade attribute but does have the tonnes attribute.