The configuration of a product may be seen as the process of navigating a parameter space to arrive at one configuration (of the product), often called a variant of the product or a customized product.
In the present context, a parameter should be understood as one or more properties, usually stored in a variable in a computer program, of a component. For example, a component may have a material parameter to which different values may be assigned, such as oak, beech, mahogany, teak, etc., a color parameter, such as blue, green, yellow, etc., a size parameter, such as small, medium or large, a light reflection parameter, such as shiny or mat, etc.
For example, a car has a finite state space. Its system of legal solutions can be defined by a finite number of parameters and the process of configuring a car is equivalent to navigating in a finite state space by choosing a value on each of the finite number of parameters. In contrary, a kitchen is built from a varying number of cabinets and accessories, and, hence is having a varying, and possibly unlimited, parameter space depending on the number of cabinets. For each new cabinet In a kitchen the parameter space changes.
A more general example is buildable products. A buildable product is a product which consists of a number of subproducts, which can be built together (in some sense) to yield a whole. In a sense, most physical products can be seen as buildable. However, a product is usually called buildable if the product is not strictly confined to a specific number of items. This could be considered as different products having a very differing number and/or combinations of subproducts, which are built together. For example, a car will always have the same number of similar essential parts, like four wheels and one engine, while a kitchen's essential parts comprise a differing number of cabinets. The building blocks may in themselves very well be configurable or buildable products.
It is usually difficult to build a satisfactory product model of most buildable products. One problem is to get a hold of the number of variations, since each building block is configurable but dependent on all the others. One way to get around this is to fix the number and combinations of subproducts and then describe all interrelationships.
Furthermore, for many buildable products the connection between subproducts can often be of a very basic physical nature, which is difficult or even impossible to describe in logical terms of the product model. For instance in a kitchen, the drawers of a cabinet have a very clear logical (or structural) relationship with the cabinet its in; for example there may be 3, 5 or 7 dependent on the size. However, the relationship between two cabinets in two different connection groups is not necessarily known.
Therefore, several problems exist. Firstly, the combined overall logical rules of a buildable product do not relate very well to the classical product model description. Secondly, the interrelationships in buildable products are not easy to describe in terms of logical constraints.
Two types of configurators based on rules are known; search algorithms (e.g. using tree structures) or storing all valid combinations in a database, based on logic. Neither of these techniques addresses the problems mentioned above. Moreover, many obvious and simple rules are of a geometric nature or refer to the products geometric nature. They are very hard to formulate in a logical language. Thus, it is an object of the invention to facilitate the building of products based on the component principle, and to enable the creation of a product model.