Planning Dependencies

To access this panel:

  • Activate the Planning ribbon and select Schedule >> Dependencies.

What are Planning Dependencies?

Dependencies are strings created to indicate a scheduling link between activities. For example, a Fill event must succeed the actual mining of the same stope. Hence, it makes sense to create a dependency from the Stoping event to the Fill event.

Similarly, a cross-cut from a decline will succeed the mining of the decline up until the decline reaches the point where the cross-cut starts. A dependency exists, therefore, from the decline segment near to the cross cut.

Dependencies control the process of sequencing. Sequencing is the assignment of an order in which activities will be processed and, ultimately, what defines the schedule for your project and how activities take place at the right time, and in the right order.

Sequenced Activity Points and Dependencies - The purple line indicates the linear progression from left to right

How dependent activities are linked together can differ within a schedule. For example, you may want multiple activities starting at the same time (that is, they have a start-start relationship), or they can start when another ends (end-start) or some other dependency.

How Dependencies are Applied to Create a Sequence

Your application processes your data and defines activities based on the presence of automatic and/or manual dependency definitions. You control both of these dependency types, and a project can have a mixture of both.

These dependencies determine the reliance of one or more activities on other events. Where impossible dependencies give rise to an infinite cycle of events (the dreaded "dependency loop" - see below), each instance is listed and you can use the in-panel tools to correct these problems.

Dependency Repairs

A "Dependency Repair" cycle is performed - automatically - on completion of the dependency processing routine. This facility offers some flexibility in how absolute a search is performed for activity points, and is based on a specified search geometry.

You can set up dependency repair settings at any time using the Edit Dependency Repair Rules screen (say, to experiment with a more or less flexible approach to finding next-in-line activity points within a given distance):

Dependency "Layers"

You can also implement 'layers' of dependencies within the same project. A layer can be considered a category of dependency and can be used to apply the same dependency instructions for a collection of activity points.

This is particularly useful if you wish to create, and then apply, different dependency default settings without having to create projects or minor projects. Say, for example, you wanted to create a specific set of dependencies when progressing your development from one stope to another, which may differ from the dependencies implicit with the task to progress drive development away from a decline. In this case, layers can be used to independently define a distinct category of dependencies.

Layers can be configured to include a custom relationship between predecessor and successor activities (start-finish, finish-finish etc.). Activity delays can also be set independently for each layer.

More about dependency layers...

Dependency Relationships

Defining two points that have a relationship in the schedule is only one element of defining a sequence. Another is the way in which they are related. This is called the "Dependency Relationship". It is also referred to as a dependency 'Link Type'. In this help file, both terms are synonymous.

Dependency relationships can be set in multiple places:

  • They can be attributed to a Dependency Layer. This is where a default relationship is set, and will be applied in the absence of another instruction, such as that selected during manual dependency or as part of an automatic dependency rule.

  • A default layer-based relationship can be overriden by a relationship set when defining manual dependencies.

Using the Dependencies Panel

The Dependencies panel is used to define dependencies between activity points. These points are, in turn, determined by how your design solids have been segmented.

Dependencies are used to determine the sequence of activities within your schedule, and you can display an animation of your current sequence prior to exporting it to EPS for further refinement.

The Dependencies panel is split into three key areas, supported by other panels that can be accessed from other buttons. An accordion-style UI has been implemented, allowing some of the groups to be collapsed/expanded as required, saving valuable vertical screen space. The image below shows all collapsible forms in their shrunken state, and design data has been loaded:

  1. Load and Unload Design Data: Load or unload your attributed design data. Several functions on this panel are only available if data has been loaded.
  2. Edit Dependency Layers: Implement 'layers' of dependencies within the same project using the Dependency Layers panel.
  3. Dependency loop detection: Filter the view of dependencies using a combination of the drop-down list to select a data filter and the corresponding data type check boxes below. Where recursive dependencies are found, errors are listed in the Errors table.

    Tip: If the list of loops is forcing too much off screen, you can collapse this section of the screen to show a summary of loops detected only. Expand it again when you're ready.

  4. Rules based dependency creation: This is where you can trigger dependency calculation based on your automatic or manual rules.

    Rules are listed by Rule Set, with the number of rules within each set shown as the Count. You can choose to Process the rule (the default setting) meaning the rule will be applied during processing or you can choose to not process the rule, or automatically purge it without processing it.

    Process
    - Deletes existing dependencies from the rule set (if there are any), then processes the rule set

    Do Not Process
    - Skips the rule set. If there are existing dependencies for the rule set, they are kept.

    Purge
    - Deletes the existing dependencies from the rule set, without reprocessing the rule set
    - This option is only available for rule sets that have Count>0. If you select Purge and process the rule sets, the Action will automatically switch to Do Not Process after the dependencies have been deleted. 

    If you have made changes to your dependency settings since the last time dependencies were generated, you will be prompted to save these changes. Any errors, warnings and messages are shown here (see "Dependency Processing Messages", below.

    This section also provides access to a tool to let you Edit Dependency Rules: set up your automatic dependency logic using the Dependency Rules panel. This panel is also used to access and set up the required filters, layers and search geometries.

  5. Edit Dependency Repair Rules: Set up rules to allow misplaced manual dependency points to be reformed according to their proximity to a design string. This is done using the Dependency Repair Rules panel.
  6. Manual Dependency Editing: Manually craft your dependencies between activity points.
  7. Import Dependencies:  Select a project file to import its associated dependencies into the current project. This will interrogate all files in the selected project's Dependencies folder. It will only import a dependency if a corresponding layer exists in the current project.

You can choose to load your design files into the 3D window, or unload them if already loaded, using the controls in the top left corner of the panel:

  1. Load design files: all design files for the currently selected design type tab (FXS, OUT, CXS or WFM) will be loaded. This mode remains active and, depending on the commands that are subsequently run, may cause the loaded data to be updated automatically.
  2. Unload design files: this will unload any currently displayed objects from the 3D window. Whilst data on disk is unaffected, unsaved changes can be lost, so you will need to confirm your decision to unload data. This mode remains active - panel actions cannot not enforce the loading and display of design type data.

Using Templates to Persist Formatting

If dependency data is loaded into the 3D view, it can be useful to use 3D view formatting to make things easier to interpret. For example, increasing or decreasing the size of activity points, or changing the colours of other screen items.

If you want your current formatting to become the standard for subsequent dependency visualization (for the current project), use Save Templates to store 3D display template information for each loaded overlay. You can then load these templates in future project sessions to reinstate the formatting you set up beforehand.

  1. Store the current 3D window formatting as 3D view templates, for later reinstatement.

  2. Load the 3D view templates associated with the current project and update the dependency data in the 3D window.

Dependency Processing Messages

Clicking Go initiates sequencing: every activity point within your project data will be added to a sequence of events (if possible) based on how it relates to other activity points. In other words, the schedule is created and made ready for final processing in EPS.

During processing, information is created that can be optionally displayed (using the Show output check box, disabled by default). This information is in one of three categories:

  • Errors: one or more activity points cannot be scheduled without violating base constraints. A sensible schedule cannot be created due to one or more issues.
  • Warnings: things that, whilst they don't prevent a sequence from being generated, may need your attention.
  • Messages: progress messages. These appear throughout processing and generally indicate status of each phase of processing.

During the processing of dependency rules, if any alerts are raised (e.g. a rule gave rise to 0 dependencies), you will need to review the corresponding rule in the Edit Dependency Rules panel. The output message window will reference a rule index to make it easier to determine which item needs attention.

Dependency Loop Checking

A dependency can result in infinite scheduling. This can be as simple as activity 1 being linked to activity 2 and activity 2 being linked to activity 1, or it can be a more complex arrangement where an activity in the schedule links to another activity that will link through a chain of activities back to itself.

You cannot import your Studio UG schedule information to EPS if dependency loops exist. They must be resolved before data can be exported.

Dependency loops are rarely a good thing so they are described, per instance, at the bottom of the Dependencies panel.

Once your dependencies have been checked (as part of dependency calculation), any recursive dependencies are shown in the list, plus the number of activities they may effect. In the example above, a simple 1-2-1 recursive link, only one activity is affected. The example shown at the start of this section would report a higher activity count (actually 40).

You cannot create (or display an animation of) a schedule if dependency loops exist - they must be resolved beforehand.

Resolving loops can be achieved by either editing your dependency rules or using the manual editing tools to reverse or delete conflicting dependencies.

The list is interactive: click an entry to automatically zoom to the offending dependency - which makes it easier to resolve each of the issues before generating a final sequence.

  • When you select a dependency loop from the list the data is filtered accordingly to show the relevant data only
  • When you have resolved/removed the loop you can save the change and re-run the check. This will automatically clear any applied view filters.

You can also apply a global filter to the view of dependencies using the Filter drop down list at the top of the View group, selecting from any of the currently defined filters (User, Design Type, Design Definition or Group Position).

You can Save your task to remove any filters previously applied by loop detection routines.

Animate a Schedule

Studio UG will calculate your schedule (your sequence of activities) based on the currently defined activity points and dependencies.

If you have made any manual adjustments to your dependencies or dependency rules, you must recalculate your schedule to ensure the latest changes have been considered. This is done using the Calculate the Schedule button at the bottom of the form:

Providing there are no dependency loops (see above), you can do this at any time.

Once calculated, the EPS Sequence control bar can be used to play back your animation (or use the slider bar to move through the time periods interactively). The EPSSequence control bar allows you to define the animation frames to be displayed at any one time, the speed of playback, the direction of playback and other useful parameters. Make the relevant settings on the control bar and click the Play button:

Planning Screen Shortcuts

This panel features a useful toolbar, hidden by default, on the left edge.

  1. Click the expander bar on the left. For example, on the Settings pane:

  2. The Project Settings toolbar displays:


  3. Select a tool to display the appropriate screen.

    Each tool provides access to one of the settings panels relevant to the current project, or if you are using a master project, the sub-projects that are included. The following tools are available:

Related topics and activities