Objects and features as components of a variant configuration

 

The object model used in TCE can be used to assemble an application in a simple way, but also to build up a rule-driven variant configuration in an ideal way.

On the one hand, each physical product has components that have a partly very different degree of kinship, as well as a structure or blueprint for how the elements belong together. The structure is sometimes very different depending on the result expected. For example, the BOM of the price-devalued elements of a product is different from a route of how a product is to be manufactured. The depth of the BOM description can also vary widely. It is much harder to describe an aircraft conclusively up to the last screw than to limit it to essential characteristics of an aircraft.

Therefore, it should be considered from the outset to what level and for what purpose a product is described. For example, it may be useful for the product configuration to provide material numbers for immutable material BOMs, or perhaps even a set of features that are passed on to a subsequent system where the characteristics describe schedules or BOMs.

In order to describe the basic procedure in TCE, it is assumed here that different products are to be configured here and that these products have a clear number of components. These components are described in classes.

Classes have a greater number of basic functionalities in TCE. This includes features and object definitions.

Objects are created by classes, and features describe the contents of classes. However, objects can also have further child objects, which in turn have a set of features.

A class in a product configuration can be regarded roughly as a physical component whose properties can be described more finely by features, e.g. with color, material, strength. In doing so, one can come across limits that allow a direct mapping of properties only with a set of characteristics. Then features turn into objects. For example, the color can be described by a combination of color groups, e.g. NCS or RAL, and a color number. Thus, the combination of color group and color in turn forms a class.

Now let's consider what a product structure might look like:

Let's say we are employed in a luminaire production company and are supposed to build a variant configuration for the price evaluation of different luminaires.

The company produces ceiling lights and desk lamps. The luminaires have a brand name. Most luminaires have a similar design in modules and can be assembled in different ways.

When creating classes, please use the Display in Value Lists switch so that the products can be displayed in a drop-down list later.

This is how the product structure could be described. The individual configurable components of the various luminaires are also represented by a class structure:

The materials that ultimately determine the price also represent a class structure:

Now that the class structure has been set, the use of classes as objects follows:

One consideration shows that, for example, the Product Sigma always has a suspension, a lamp shade and lighting equipment. This connection can be set in the Sigma class, and you'll see that this setting is inherited into all classes defined under Sigma.

Initialize the object definitions with the classes. These objects will be created on runtime automatically, when an object of type Sigma will be created. A sample:

Now the Product Sigma can already have price-relevant items, e.g. connection cable, power supply and the like, regardless of its components.

Therefore, you also create product numbers under Material that is used for these price items.

 

In a further consideration, you notice that you are creating your products in different country versions. Depending on the setting of then country setting follows the setting of e.g. the connection cable.

Country versions are available for all products. Therefore, we now create a string feature for country execution in products and define three different values in the pick list, which you create with a double click as selectable values under the characteristic.

 

 

Now there is the context that a connection cable depends on the country version:

Therefore, set this relationship in the Sigma class. You can create a decision for setting material of the connection cable.

 

 

 

The next step is the price valuation of individual material numbers.

To do this, create a characteristic of type currency in the Material class to set the price for different material numbers. Note that for this feature, it is necessary to set the property Initialize on change of object.

 

Now go to each class below material and initialize the price characteristic with a value.

 

Now we want to realize the actual product selection in the Start class.

Create the Product object there. Double-click the 'Products' class in the pick list to indicate that all products can be selected by the user. Switch on the property Rules here.

 

After that, we need a characteristic for the summation of all prices of all material objects.

For this purpose, we create a feature Total of type Currency in the Class Start. This feature is intended to constantly recalculate the sum of prices, when the feature is accessed. We use the Get event of the feature.

 

 

Now we find that our product Sigma has light shields in three different colors. Since Sigma's illuminated screens already have their own class, we can react to this situation there. We create a feature Color with i.e. three different colors (Red, Green, Blue) and make these values selectable. Then we create a Decision to control the material number for the light shield via the feature Color.

The result of your efforts should be something like this:

 

The next step is to customize the main form of our small application. For the selection of product, the country version and the color of the light shield we place three combo boxes on the form. In addition, we need a label for the output of the total of the materials. To do this, add the appropriate type library TCE Label Controls from the type library collection of the properties of the knowledge base.

For better readability please rename the controls, you have created on the form.

The Combobox Product gets the following expression for the property Value:

The ComboBox [Country version] gets the following expression for the property Value:

The Combobox [Lamp Shade Color] gets the following expression for the property Value:

The Label Total gets the following expression for the property Text:

When you run your application, you should be able to get the following window:

 

(knowledge base Tutorial Stage 3)