# Modelling an assembly system using OntoGui

## Case Description

The assembly process is a combination of three stages: Adhesive joining, Spot welding and hemming. And the Final product is a result of joining the four components: Component1, Component2, Component3 and Component4 whereas WIP1 and WIP2 are the intermediary outputs during the process. The table below defines the input, output and processing time of each stage.

![description table](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdEBLYhFG30H_q0Bv%2Fap-description_table.png?generation=1586195921942341\&alt=media)

## Formal model

![formal model](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdEBNSAsnpgk9-YO0%2Fap-formal_model.png?generation=1586195922527281\&alt=media)

![process classify](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdEBPYx9ut_gN7oDS%2Fap-process_classify.png?generation=1586195922925194\&alt=media)

## Formal Representation

### System Design

![create ontology](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdEBR5FHbzQp2bqsY%2Fap-create_ontology.png?generation=1586195926468364\&alt=media)

1. Enter the name of ontology module
2. click on create
3. open system design

#### Part types

![part type component1](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdEBTYdkijH_Qy80n%2Fap-part_type_component1.png?generation=1586195923989690\&alt=media)

Enter **Component-1** in new

set the class as **Workpiece Type**

click on **Create**

![part type component2](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdEBVNiZo9Y7668Sl%2Fap-part_type_component2.png?generation=1586195921950798\&alt=media)

1. Enter **Component-2** in new
2. set the class as **Workpiece Type**
3. click on **Create**

![part type component3](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdEBXOiB0Kp-ptryk%2Fap-part_type_component3.png?generation=1586195925496742\&alt=media)

1. Enter **Component-3** in new
2. Set the class as **Workpiece Type**
3. Click on **Create**

![part type component4](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdEBZX_b7hvT8TqB-%2Fap-part_type_component4.png?generation=1586195926465648\&alt=media)

1. Enter **Component-4** in new
2. Set the class as **Workpiece Type**
3. Click on **Create**

![part type WIP1](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdEBaIbfZY6aGnnMK%2Fap-part_type_wip1.png?generation=1586195925157040\&alt=media)

1. Enter **WIP1** in new
2. Set the class as **Workpiece Type**
3. Click on **Create**

![part type WIP2](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdEBc9iiN7oQvqYtF%2Fap-part_type_wip2.png?generation=1586195922374179\&alt=media)

1. Enter **WIP2** in new
2. Set the class as **Workpiece Type**
3. Click on **Create**

![part type final product](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4Fft0sI9PvD1Th1In6%2F-M4FftwA1sfJEhvVL8Oc%2Fap-part_type_final_product.png?generation=1586196621060478\&alt=media)

1. Enter **final product** in new
2. Set the class as **Workpiece Type**
3. Click on **Create**

#### Process Plan

![create process plan](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdEBecbykQl3VrrJf%2Fap-create_process_plan.png?generation=1586195926346486\&alt=media)

1. Enter **assembly process** in new tab
2. Click on **create**

#### Process Steps

![process step adhesive joining](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdEBgcsDlpkn3lu1C%2Fap-process_step_adhesive_joining.png?generation=1586195922476796\&alt=media)

1. Enter the name of process step **adhesive joining**
2. Set the class as **Assembly Task**
3. Click on add new
4. Click on Set Time
5. Define the unite of measurement as Minute
6. Define Probability of Distribution as Normal
7. Enter mean value
8. Enter standard deviation value
9. Click on save

![process step spot welding](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdEBiSTvw7-A1GCJo%2Fap-process_step_spot_welding.png?generation=1586195922257048\&alt=media)

![process step hemming](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdEBkJZn3Wc4hd9nm%2Fap-process_step_hemming.png?generation=1586195926134092\&alt=media)

Repeat the procedure for **Spot welding** and **Hemming**.

#### Adding successor to process steps

![successor of adhesive joining](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdEBmV45v8CXzT3ik%2Fap-successor_of_adhesive_joining.png?generation=1586195925758889\&alt=media)

1. Select the process step
2. Choose the **successor**
3. Click on add![successor of spot welding](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdEBo0-maaSXre11I%2Fap-successor_of_spot_welding.png?generation=1586195924275600\&alt=media)
4. Spot welding is the successor to Adhesive joining and hemming is the successor to spot welding.

#### System Creation

![create system](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdEBqUywZB215NBL1%2Fap-create_system.png?generation=1586195926647490\&alt=media)

1. Create a new system called **prodsystem**
2. Select Assembly system in class
3. Click on create

**Adding machines**

![add M1](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdEBsXPnPrsZw7DSo%2Fap-add_m1.png?generation=1586195923573713\&alt=media)

1. Enter name of machine **M1** in the system
2. Click on add new

![add M2](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdEBuSUV4SPTc5Hm9%2Fap-add_m2.png?generation=1586195925728970\&alt=media)

1. enter name of machine **M2** in the system
2. click on add new

![add M3](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdEBwhK8WNg1qkAPY%2Fap-add_m3.png?generation=1586195924685928\&alt=media)

1. enter name of machine **M3** in the system
2. click on add new

**Managing the connections**

![connection of M1](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdEByjWgBbc2ZXzzf%2Fap-connection_of_m1.png?generation=1586195924972222\&alt=media)

1. select **M1**
2. select the downstream machine **M2**
3. click on add

![connection of M2](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdEC-wBOkn6LPzipG%2Fap-connection_of_m2.png?generation=1586195923161790\&alt=media)

1. select the machine **M2**
2. select the downstream machine **M3** and upstream machine **M1**
3. click on add
4. select **M3**
5. select the upstream machine **M2**
6. click on add

#### Assignment of process steps

![assign M1](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdEC1s7LNWrRk3Yyg%2Fap-assign_m1.png?generation=1586195922920251\&alt=media)

1. select process step
2. select the machine to be assigned
3. click on add

![assign M2](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdEC3FY6p7u351SK_%2Fap-assign_m2.png?generation=1586195926113171\&alt=media)

![assign M3](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdEC51XdiPN9rc9da%2Fap-assign_m3.png?generation=1586195925414110\&alt=media)**M1** is assigned to **adhesive joining**, **M2** is assigned to **spot welding** and M3 is assigned to **hemming**

### Individual Manager

![open individual manager](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdEC7vdzli-ySkPGm%2Fap-open_individual_manager.png?generation=1586195924400990\&alt=media)

open the Individual Manager under Ontology tools in control panel

#### Defining the relation between process and sub processes

![subprocess adhesive joining](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdEC9UliSJiw8fPro%2Fap-subprocess_adhesive_joining.png?generation=1586195922209169\&alt=media)

1. Select OWL Class as **IFcTaskType**
2. Select the assembly process
3. Select **IsNestedByObject** in Simple class expressions
4. Select Target Class as **Assembly Task**
5. Select Destination Module
6. click on Add Existing Target
7. Select **adhesive joining**
8. click on Save

![subprocess spot welding](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdECBXXzGLicLMLLh%2Fap-subprocess_spot_welding.png?generation=1586195925748794\&alt=media)

1. Select OWL Class as **IFcTaskType**
2. Select the assembly process
3. Select **IsNestedByObject** in Simple class expressions
4. Select Target Class as **Assembly Task**
5. Select Destination Module
6. click on Add Existing Target
7. Select **spot welding**
8. click on Save

![subprocess hemming](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdECD8tOZBoHO2oom%2Fap-subprocess_hemming.png?generation=1586195922883829\&alt=media)

1. Select OWL Class as **IFcTaskType**
2. Select the assembly process
3. Select **IsNestedByObject** in Simple class expressions
4. Select Target Class as **Assembly Task**
5. Select Destination Module
6. click on Add Existing Target
7. Select **hemming**
8. click on Save

#### Defining the relation between parts and subparts

![subpart component1](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdECFuKwZdaIsGm5-%2Fap-subpart_component1.png?generation=1586195924128718\&alt=media)

![subpart component2](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdECHIUyTke5AYUAX%2Fap-subpart_component2.png?generation=1586195923503567\&alt=media)

1. Select OWL Class as **workpiece**
2. Select the **WIP1**
3. Select **IsDecomposedByObject** in Simple class expressions
4. Select Target Class as **WorkpieceType**
5. Select Destination Module
6. click on Add Existing Target
7. Select **component1** and **component2**
8. click on Save

![subpart WIP1](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdECJsLJ4At6w595E%2Fap-subpart_wip1.png?generation=1586195924996641\&alt=media)

![subpart component3](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdECLxeokp685Qbvx%2Fap-subpart_component3.png?generation=1586195925084495\&alt=media)

1. Select OWL Class as **workpiece**
2. Select the **WIP2**
3. Select **IsDecomposedByObject** in Simple class expressions
4. Select Target Class as **WorkpieceType**
5. Select Destination Module
6. click on Add Existing Target
7. Select **WIP1** and **component3**
8. click on Save

![subpart WIP2](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdECNR1dceUm95ZHQ%2Fap-subpart_wip2.png?generation=1586195926170799\&alt=media)

![subpart component4](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdECP78KWCbjkuRln%2Fap-subpart_component4.png?generation=1586195924952475\&alt=media)

1. Select OWL Class as **workpiece**
2. Select the **final product**
3. Select **IsDecomposedByObject** in Simple class expressions
4. Select Target Class as **WorkpieceType**
5. Select Destination Module
6. click on Add Existing Target
7. Select **WIP2** and **component4**
8. click on Save

#### Defining the input and output of the process steps

**Adhesive joining**

**Input**

![input1 of adhesive joining](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdECRjMtGWSb0P_pO%2Fap-input1_of_adhesive_joining.png?generation=1586195924907500\&alt=media)

![input2 of adhesive joining](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdECT3zYCNsCIGZB0%2Fap-input2_of_adhesive_joining.png?generation=1586195922073520\&alt=media)

1. Select OWL Class as **AssemblyTask**
2. Select the adhesive joining
3. Select **hasAssignedObject**
4. Select Target Class as **WorkpieceType**
5. Select Destination Module
6. click on Add Existing Target
7. Choose **component1** and **component2**
8. click on Save

**Output**

![output of adhesive joining](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdECV_azSkbJeifZT%2Fap-output_of_adhesive_joining.png?generation=1586195923544699\&alt=media)

1. Select OWL Class as **AssemblyTask**
2. Select the adhesive joining
3. Select **hasAssignmentTo**
4. Select Target Class as **WorkpieceType**
5. Select Destination Module
6. click on Add Existing Target
7. Choose **WIP1**
8. click on Save

**Spot welding**

**Input**

![input1 of spot welding](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdECX-jNVsBesTE9i%2Fap-input1_of_spot_welding.png?generation=1586195922716824\&alt=media)

![input2 of spot welding](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdECZNgG9QX8kqonh%2Fap-input2_of_spot_welding.png?generation=1586195923952672\&alt=media)

1. Select OWL Class as **AssemblyTask**
2. Select the Spot welding
3. Select **hasAssignedObject**
4. Select Target Class as **WorkpieceType**
5. Select Destination Module
6. click on Add Existing Target
7. Choose **WIP1** and **component3**
8. click on Save

**Output**

![output of spot welding](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdECaF2i0Yw882p9m%2Fap-output_of_spot_welding.png?generation=1586195924183361\&alt=media)

1. Select OWL Class as **AssemblyTask**
2. Select the Spot welding
3. Select **hasAssignmentTo**
4. Select Target Class as **WorkpieceType**
5. Select Destination Module
6. click on Add Existing Target
7. Choose **WIP2**
8. click on Save

**Hemming**

**Input**

![input1 of hemming](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdECcfaHk8m4lL59-%2Fap-input1_of_hemming.png?generation=1586195923662254\&alt=media)

![input2 of hemming](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdECeq4VKOaWOM1dt%2Fap-input2_of_hemming.png?generation=1586195922988701\&alt=media)

1. Select OWL Class as **AssemblyTask**
2. Select the hemming
3. Select **hasAssignedObject**
4. Select Target Class as **WorkpieceType**
5. Select Destination Module
6. click on Add Existing Target
7. Choose **WIP2** and **component4**
8. click on Save

**Output**

![output of hemming](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdECgTtJIUWDKBuxE%2Fap-output_of_hemming.png?generation=1586195925988711\&alt=media)

1. Select OWL Class as **AssemblyTask**
2. Select the hemming
3. Select **hasAssignmentTo**
4. Select Target Class as **WorkpieceType**
5. Select Destination Module
6. click on Add Existing Target
7. Choose **final product**
8. click on Save

#### Defining the input and output of process

**Input**

![input1 of assembly process](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdECiABd7xX53Bp05%2Fap-input1_of_assembly_process.png?generation=1586195925563881\&alt=media)

![input2 of assembly process](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdECkyaIc9HHwvxGq%2Fap-input2_of_assembly_process.png?generation=1586195923363474\&alt=media)

![input3 of assembly process](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdECmdyt2v01eQde9%2Fap-input3_of_assembly_process.png?generation=1586195924495604\&alt=media)

![input4 of assembly process](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdECo0p6-eRHOcQBQ%2Fap-input4_of_assembly_process.png?generation=1586195923224634\&alt=media)

1. Select OWL Class as **IfcTaskType**
2. Select the **assembly process**
3. Select **hasAssignedObject**
4. Select Target Class as **workpieceType**
5. Select Destination Module
6. click on Add Existing Target
7. Choose **component1, component2, component3 and component4**
8. click on Save

**Output**

![output of assembly process](https://2247033703-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh1dC9-F-cM6usakky7%2F-M4FdCWM7TNCWoX2ugjz%2F-M4FdECqsY3TZnojRqDh%2Fap-output_of_assembly_process.png?generation=1586195923843388\&alt=media)

1. Select OWL Class as **IfcTaskType**
2. Select the **assembly process**
3. Select **hasAssignmentTo**
4. Select Target Class as **workpieceType**
5. Select Destination Module
6. click on Add Existing Target
7. Choose **final product**
8. click on Save
