## 4 Application
### Annotations and Instantiation  
To transfer the human processable model illustrated in Figure 8 into machine processable knowledge representation, the defined concepts are annotated to the virtual product in the product developers' working environment. In the case of an individual bike crank,  
Figure 8: Illustration of a MC process model for an individual bike crank, changing from a standard crank to a custom crank through two Design Tasks. MC takes place in the mechanical domain and, therefore, a CAD environment is used. The annotation process is generally applicable, but software-dependent features have to be customized, as the software's API is used to define new additional classes for objects in the kernel to store information. For this use case, Siemens NX1899 is used to visualize the annotation process. Accordingly, NXOpen is used as an API to manage annotations as UserAttributes for NXObjects. UserAttributes store custom data and are available for the majority of NXObjects (e.g., parts, bodies, expressions, etc.). They are particular easy to handle, as semantic annotations can be related to structural elements using the NXOpen.AttributePropertiesBuilder and can be queried by NXObject.GetUserAttributes. All annotations can be achieved manually, but to ease user interactions, the annotation process is guided by a custom built-in NXOpen application which is a GUI supporting the user to manage the processes. Following the annotation process illustrated in Figure 5, the annotation of UserAttributes to the part in the CAD environment starts with the addition of a new MC process to the part which, in this case, is the bike crank. For Step 1, the requirements are manually instantiated or imported from an Excel sheet by adding new UserAttributes to the highest ranked object in the product's model tree (e.g., part). Optional for NX, UserAttributes have categories which can help to classify annotations later on. As there has to be at least one Transition in the MC process, a Transition is added to the UserAttributes of the part. All instantiated requirements are related to this Transition as the Input Rationale, as this is the only Transition on the top level. This leads to step 2, where the user has to select either Design Task or Design Process for every new Transition. For the abovementioned reasons, the top level Transition has to be a Design Process. By specifying the Transition as a Design Process, all Input Rationale related to this Transition are queried. The user has to specify an Output Rationale for each related requirement. For the top level Design Process of the use case, all requirements are queried and split into anthropometric and lightweight, which are defined as Output Rationales 1 and 2. The resulting UserAttributes define the Design Process of the top level in the model of the use case and are related to the highest ranked object in the model tree, which is demonstrated in Figure 9.  
For each unique Output Rationale of the top Level Transition (Output Rationale 1 and Output Rationale 2 in case of the individualization of the bike crank), a new Transition is created in the next subordinate level. The order is taken into account for the sequence of the Transitions. In this particular case, two Transitions are instantiated (Step 3 in Figure 5). For the first Transition, the Beginning State is inherited. According to the model presented in Figure 8, this is the Design Task for the anthropometric ad  
Figure 9: Illustration of the annotation of a new MC Design process including the Requirements, the Design Process of the top level, and the corresponding Input and Output Design Rationales of virtual products in the CAD environment. The corresponding source file is selected from the catalog and the Input Rationale (length of femur, fibula, and foot as floats in mm, angles for the hip, knee, and foot) and linked with the inputs of the solution principle. As the Input Rationale matches the input, the user is requested to select a Design Parameter for each output of the solution principle.