Design rule purpose

One of the most important aspects of good design of linear assets is to make sure that they avoid all obstacles and follow an optimal path. Optioneer can facilitate this process by taking into account various constraints and scoring of how severe going through various constraints is. The goal is to find a path that goes through as few constraints as possible. In case constraints can't be avoided, the length of the path crossing through a constraint should be minimised.

How to configure

This design rule requires the following fundamental parameters:

  • list of constraints

    • general list, summarising all data layers that should be taken into account

  • list of soft constraints and their weighting

    • soft constraints are areas that should be avoided if possible. Soft constraints can be crossed but there is a penalty or a cost associated with doing so. The objective of Optioneer is to minimize the total penalty or cost of the path.

  • list of hard constraints (no-go zones)

    • hard constraints are areas which should be avoided at all cost. Hard constraints can't be crossed and if the route goes through a hard constraint, it is considered infeasible. In situations where no route avoiding all hard constraints can be found, Optioneer will try and minimize the length through the hard constraints in the first instance.

In the example below, residential and functional buildings were set as hard constraints (i.e. should be avoided at all costs). Other layers were set as soft constraints.

The four alignments can be compared on the basis of constraints only (i.e. no other aspect taken into account).

The routes are mostly going through constraint-free areas, but there are a couple of sections which do go through constraint areas (see explanation below).

All routes share the first section and as such, there is no difference between the routes there. The only differences appear in the second section. Looking at the second section, we can see that:

  • purple route is an alternative which cuts through a long distance of woodland and with a small section going through water - least 'good' of all routes due to this.

  • red and cyan routes diverge in the middle section but neither of them goes through any constraints there - both are equally 'good'.

  • blue route is longer and doesn't look as intuitive to designers' eye but it does actually cut through less woodland area towards the end and is considered the 'best' of all four routes.

In practice, Optioneer will evaluate a lot of other parameters as well so the judgement on what route is the most optimal might be different than just from the 'path' perspective.

Important notes

  • It is important to ensure that only absolutely critical hard constraints are designated as such. Too many hard constraints mean that Optioneer will struggle to find a feasible solution as everything would look 'bad'.

  • All soft constraint scores / weights for a given config should be relative to one another. It is good to come up with a scoring system. Examples include:

    • Red-Amber-Green converted into points, like Red = 5 points, Amber = 2 points and Green = 0 points (green constraint is not really a constraint!)

    • 0-4 point scoring scale - which is a five-step scale, with 0 indicating a 'neutral' area to go through and 4 indicating a highly unfavourable constraint

    • 0-10 point scoring scale, similar to 0-4 point

    • real cost of land acquisition expressed in GBP or USD - here 0 would often indicate a public right-of-way and then costs of land might be sourced from a database or a survey.

  • Optioneer will only consider preference based on the point / scoring system which means that if two layers carry the same penalty, they would be treated the same. It is important to come up with a coherent methodology for assigning values to constraints.

  • Optioneer will only report going through areas that do carry a penalty or cost. If the value is set to 0, Optioneer will ignore it and not report this value on the Vertical Profile chart.

Input / output summary

Input parameters

This design rule requires the 'constraints' dataset.


Default value


Penalty / cost values for soft constraints



List of hard constraints



Configuration of penalty layers (under Model -> Path Penalty Design Rule):

Output parameters


Example value


Total path cost due to constraints



Total path length through [layer]



Layers crossed at every point of the route

plot on the vertical chart


Summary of layers crossed on the Vertical Profile Chart (under Composition -> Penalty):

Did this answer your question?