How to simplify Maintenance of Design Automation projects by using constraints

By Oliver Dover, Business Consultant, Tacton Systems  

A Design Automation project lifecycle is longer than you would think. You might consider the work done when it is set into production, but I would argue otherwise. Rather, a Design Automation project is a living thing which will be updated with new product data and variants during its lifetime. And as it gets older and more experienced, the project needs to be maintained to stay efficient.

But here’s the tricky part: the more data you have, the harder its maintenance will be. A common problem is that when a new variant of a part or subassembly is added, logic needs to be changed in order to define how this new variant will fit into the Design Automation system. Old rules need to be edited and new rules might need to be created.

So, is there a way to simplify this? Yes, there is. In this blog post, I’ll show you how you can separate your data from logic, as well as update your product data without having to change your logic, by using a constraint based design automation approach.

Let’s have a look at a simplified example of a conveyor model (picture 1). More specifically, we will concentrate on the Beams and the Rollers (picture 2).

Picture 1


Picture 2


In our example, there are three variants of beams, and three variants of rollers. The ways in which these can be combined are shown in the matrix below:

BeamA BeamB BeamC
RollerA Allowed Not Allowed Not Allowed
RollerB Allowed Allowed Not Allowed
RollerC Allowed Allowed Allowed


I will first describe how you would go about a configuration using a sequential approach. Then, I’ll show how to handle the same configuration using constraints and the benefits of using this approach.

Sequential approach

The sequential way to set this up is to have three rules stating that if a certain Beam is chosen, some Roller is allowed. See an example of a rule set which would achieve this bellow:

If Beam A then RollerA or RollerB or RollerC

If Beam B then RollerB or RollerC

If beam C Then RollerC

Let’s imagine that we now need to add a new roller, “RollerD”. This roller should work for BeamA and BeamB. To ensure a correct set-up, we would need to change two of the rules we created earlier to take this new roller variant into account.

If Beam A then RollerA or RollerB or RollerC or RollerD

If Beam B then RollerB or RollerC or RollerD

If beam C Then RollerC

Constraints based approach

With a constraint based tool, rules refer to properties of the variants rather than the variant values or the variants themselves.  This enables us to create a rule saying why the Rollers and Beams fit together, rather than in what combination.

In our example, the reason for the allowed combinations of rollers and beams is that the Roller Diameter cannot be larger than the Beam height.

We begin by creating a table for rollers and beams A-C, with the necessary properties.

RollerDiameter (mm)
RollerA 10
RollerB 20
RollerC 30
RollerHeight (mm)
BeamA 35
BeamB 25
BeamC 15


Now, we need only one rule to describe how these can be combined. In this rule, we will only include logic which refers to the properties, rather than specific values or variants, since our aim is to separate the data from logic.


The result will be the same as with the previous rules. The difference is that this rule is compact yet easily understood. We have been able to replace the 3 rules, shown in the sequential approach example, with just one. If we now want to add a new Roller, we simply add a new row in our Roller Table and no change in rules is necessary.

RollerDiameter (mm)
RollerA 10
RollerB 20
RollerC 30
RollerD 22


To summarize

In real Design Automation projects, the dependencies between components are generally complex with a lot of dependencies between different components. This increases the importance to separate the data from logic, as we have done with this one very simple example. By using the constraints based approach, you can easily separate your logic from data, inevitably simplifying maintenance. Working with constraints means you get a lot fewer rules, as well as an easier way to update your product data without having to go through your logic and find all the rules which need to be edited.


If you want to learn more about Tacton Design Automation, do so here.

Tacton is a world leader in sales and product configuration. Our ground-breaking technology redefines how product configuration is managed – making it dramatically simpler to design, configure and sell complex products.