diff --git a/CatiaNetTest/App.config b/CatiaNetTest/App.config
index 2ae8254d305bb019047d91b8db81c8dca76b56c8..bd27edc04e799305ac0797931ae8216a80eb9c68 100644
--- a/CatiaNetTest/App.config
+++ b/CatiaNetTest/App.config
@@ -1,6 +1,6 @@
-<?xml version="1.0" encoding="utf-8" ?>
+<?xml version="1.0" encoding="utf-8"?>
 <configuration>
     <startup>
-        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/>
     </startup>
-</configuration>
\ No newline at end of file
+</configuration>
diff --git a/CatiaNetTest/AssemblyTiers2.vb b/CatiaNetTest/AssemblyTiers2.vb
index cebb6ced9cd570b74a8235c31d4810b5e4b5d276..2089e30e2f58d6fe7e113a6669fb996b693137dd 100644
--- a/CatiaNetTest/AssemblyTiers2.vb
+++ b/CatiaNetTest/AssemblyTiers2.vb
@@ -5,28 +5,32 @@ Imports MECMOD
 Imports NavigatorTypeLib
 Imports ProductStructureTypeLib
 Imports SPATypeLib
+Imports PARTITF
+Imports Microsoft.Office.Interop.Excel
 
 Public Class AssemblyTiers2
 
     Public intStep As Integer
     Public dCollSens As Double
     Public intParts As Integer
-    Public primaryFasteners As Collection
-    Public secondaryFasteners As Collection
-    Public cAllProducts As Collection
-    Public cRelevantProducts As Collection
-    Public cBaseProducts As Collection
-    Public aRemovalDistances() As Single
+    Public primaryFasteners As New ArrayList
+    Public secondaryFasteners As New ArrayList
+    Public cAllProducts As New ArrayList
+    Public cRelevantProducts As New ArrayList
+    Public cBaseProducts As New ArrayList
+    Public aRemovalDistances(,) As Double
     Public aAssemblyBoundaries(5) As Double
-    Public aPartBBGlob() As Single
-    Public aInitPos() As Double
+    Public aPartBBGlob(,) As Double
+    Public aInitPos(,) As Double
     Public sChosenDirection As String
     Public oList As Object
+    Public CATIA As INFITF.Application
 
 
-    Sub CatMain(CATIA As INFITF.Application)
+    Sub CatMain()
 
-        'On Error Resume Next
+        CATIA = GetObject(, "CATIA.Application")
+        If CATIA Is Nothing Then CATIA = CreateObject("CATIA.Application")
 
         Debug.Print("========================================================")
 
@@ -37,13 +41,13 @@ Public Class AssemblyTiers2
         ExtractProducts(document.Product)
 
         'Collection of "leaf" Products (without nested Products)
-        Dim oInstances() As Product
+        Dim oInstances As New ArrayList
         oInstances = cAllProducts
         Dim i As Integer
         Dim outputText As String
 
         intParts = oInstances.Count
-        outputText = "This assembly contains " + CStr(oInstances.Count) + " parts" + vbNewLine
+        outputText = "This assembly contains " + CStr(intParts) + " parts" + vbNewLine
         MsgBox(outputText)
 
         'Select the assembly's base components
@@ -57,7 +61,8 @@ Public Class AssemblyTiers2
         strArray(0) = "Part"
         'Display a messagebox prompting the user to select CATIA parts
         MsgBox("Please select the assembly's base components")
-        sStatus = baseSel.SelectElement3(strArray, "Select parts", False, CATMultiSelTriggWhenUserValidatesSelection, False)
+        Dim sStatus As String
+        sStatus = baseSel.SelectElement3(strArray, "Select parts", False, INFITF.CATMultiSelectionMode.CATMultiSelTriggWhenUserValidatesSelection, False)
 
         For i = 1 To baseSel.Count
             cBaseProducts.Add(baseSel.Item(i).LeafProduct)
@@ -68,9 +73,9 @@ Public Class AssemblyTiers2
         baseSel.Clear
 
         'Collision parameters
-        intStep = 1
-        dCollSens = 1
-        CollisionParams.Show
+        intStep = 10
+        dCollSens = 2
+        'CollisionParams.Show
         Debug.Print("Step = " + CStr(intStep))
         Debug.Print("Sensitivity = " + CStr(dCollSens))
 
@@ -91,7 +96,7 @@ Public Class AssemblyTiers2
 
         'Global coordinates, of which at least one has to be exceeded by the part origin, for that part to be "disassembled"
         'in global axis directions
-        Dim aRemovalDistances(cRelevantProducts.Count - 1, 5)
+        ReDim aRemovalDistances(cRelevantProducts.Count - 1, 5)
         aRemovalDistances(0, 0) = 0#     'X_pos
         aRemovalDistances(0, 1) = 0#     'X_neg
         aRemovalDistances(0, 2) = 0#     'Y_pos
@@ -101,7 +106,7 @@ Public Class AssemblyTiers2
 
         'Store information about secondary BB (6 distances to boundary planes from part origin along global x/y/z directions) - used to define aRemovalDistances
         'Secondary BB: faces parallel to global origin planes and defined by outermost corner points of local BB of this part
-        Dim aPartBBGlob(cRelevantProducts.Count - 1, 5)
+        ReDim aPartBBGlob(cRelevantProducts.Count - 1, 5)
         aPartBBGlob(0, 0) = 0#           'x_part_glob_pos
         aPartBBGlob(0, 1) = 0#           'x_part_glob_neg
         aPartBBGlob(0, 2) = 0#           'y_part_glob_pos
@@ -109,16 +114,16 @@ Public Class AssemblyTiers2
         aPartBBGlob(0, 4) = 0#           'z_part_glob_pos
         aPartBBGlob(0, 5) = 0#           'z_part_glob_neg
 
-        Dim BBStartTime As Double
-        BBStartTime = Timer
+        Dim BBStartTime As DateTime
+        BBStartTime = Now
 
         'This is used to check whether a product must be moved in current iteration
         Dim bMoveable(cRelevantProducts.Count - 1) As Boolean
 
-        For i = 1 To cRelevantProducts.Count
+        For i = 0 To cRelevantProducts.Count - 1
 
             '########## this won't work if part document name is not = part number ######
-            Dim partI As Part
+            'Dim partI As Part
             Dim prodI As Product
             prodI = cRelevantProducts.Item(i)
             Dim docName As String
@@ -143,24 +148,26 @@ Public Class AssemblyTiers2
 
             'Base component is in cRelevantProducts, but not moveable
             If productIsInCollection(prodI, cBaseProducts) Then
-                bMoveable(i - 1) = False
+                bMoveable(i) = False
             Else
-                bMoveable(i - 1) = True
+                bMoveable(i) = True
             End If
 
         Next i
 
+        Dim BBMillisecondsElapsed As Double
+        BBMillisecondsElapsed = (Now - BBStartTime).TotalMilliseconds
         Dim BBSecondsElapsed As Double
-        BBSecondsElapsed = Round(Timer - BBStartTime, 2)
+        BBSecondsElapsed = Math.Round(BBMillisecondsElapsed / 1000.0, 2)
         MsgBox("Bounding box calculation took " & CStr(BBSecondsElapsed) & " seconds")
 
         MsgBox("Assembly Boundaries: " & vbNewLine &
-  "max_X = " & aAssemblyBoundaries(0) & vbNewLine &
-  "min_X = " & aAssemblyBoundaries(1) & vbNewLine &
-  "max_Y = " & aAssemblyBoundaries(2) & vbNewLine &
-  "min_Y = " & aAssemblyBoundaries(3) & vbNewLine &
-  "max_Z = " & aAssemblyBoundaries(4) & vbNewLine &
-  "min_Z = " & aAssemblyBoundaries(5))
+        "max_X = " & aAssemblyBoundaries(0) & vbNewLine &
+        "min_X = " & aAssemblyBoundaries(1) & vbNewLine &
+        "max_Y = " & aAssemblyBoundaries(2) & vbNewLine &
+        "min_Y = " & aAssemblyBoundaries(3) & vbNewLine &
+        "max_Z = " & aAssemblyBoundaries(4) & vbNewLine &
+        "min_Z = " & aAssemblyBoundaries(5))
 
         'After the aAssemblyBoundaries and aPartBBGlob are calculated, define aRemovalDistances
         For i = 0 To cRelevantProducts.Count - 1
@@ -173,12 +180,12 @@ Public Class AssemblyTiers2
         Next i
 
         MsgBox("Removal distances for " & cRelevantProducts.Item(1).PartNumber & ":" & vbNewLine &
-  "X_pos = " & aRemovalDistances(0, 0) & vbNewLine &
-  "X_neg = " & aRemovalDistances(0, 1) & vbNewLine &
-  "Y_pos = " & aRemovalDistances(0, 2) & vbNewLine &
-  "Y_neg = " & aRemovalDistances(0, 3) & vbNewLine &
-  "Z_pos = " & aRemovalDistances(0, 4) & vbNewLine &
-  "Z_neg = " & aRemovalDistances(0, 5))
+        "X_pos = " & aRemovalDistances(0, 0) & vbNewLine &
+        "X_neg = " & aRemovalDistances(0, 1) & vbNewLine &
+        "Y_pos = " & aRemovalDistances(0, 2) & vbNewLine &
+        "Y_neg = " & aRemovalDistances(0, 3) & vbNewLine &
+        "Z_pos = " & aRemovalDistances(0, 4) & vbNewLine &
+        "Z_neg = " & aRemovalDistances(0, 5))
 
         '#################### Main algorithm ##########################
         Dim intI As Integer                   'total number of components in the scene minus base parts
@@ -187,24 +194,24 @@ Public Class AssemblyTiers2
         Dim int_i As Integer                  'product index in cRelevantProducts
         Dim int_i_cycle As Integer            'product counter
         Dim int_j As Integer                  'primary direction index 1..12
+        Dim int_j_temp As Integer             'used to display movement direction once
         Dim int_k As Integer                  'secondary direction index 1..10
         Dim total_coll As Long                'counter of total collision detections
-        Dim cDeactivated As Collection    'really deactivated products
+        Dim cDeactivated As New ArrayList    'really deactivated products
         Dim cVirtual As Collection        'these funny green parts
-        Dim precedenceMatrix() As Single
+        Dim precedenceMatrix(cRelevantProducts.Count - 1, cRelevantProducts.Count - 1) As Single
         Dim disassDir(cRelevantProducts.Count - 1, 11)
         Dim aTiers(cRelevantProducts.Count - 1) As Integer
-        Dim aInitPos(cRelevantProducts.Count - 1, 11)     'remember initial positions of the products
+        ReDim aInitPos(cRelevantProducts.Count - 1, 11)     'remember initial positions of the products
         Dim bInitPosRecorded(cRelevantProducts.Count - 1) As Boolean
-        Dim precedenceMatrix(cRelevantProducts.Count - 1, cRelevantProducts.Count - 1)
         Dim bDeactivated(cRelevantProducts.Count - 1) As Boolean
 
-        intI = cRelevantProducts.Count    'the index of base components will be simply skipped (cRelevantProducts includes cBaseProducts, unlike in the paper!)
+        intI = cRelevantProducts.Count - 1   'the index of base components will be simply skipped (cRelevantProducts includes cBaseProducts, unlike in the paper!)
         intJ = 6                          'number of disassembly directions (6 - only global axes, 12 - including local axes)
         intTier = 1                       'counts current disassembly tier (lower number means earlier disassembly possible) - this gets reversed in the end
-        int_i = 1                         'index of current part in collection of relevant products
-        int_i_cycle = 1                   'counter for the current tier iteration
-        int_j = 1                         'index of disassembly direction
+        int_i = 0                         'index of current part in collection of relevant products
+        int_i_cycle = 0                   'counter for the current tier iteration
+        int_j = 0                         'index of disassembly direction
         int_j_temp = 0                    'used to display movement direction once
         total_coll = 0
 
@@ -250,8 +257,8 @@ Public Class AssemblyTiers2
         '  Next numConfl
         '  MsgBox CStr(numClashes) & " clashes were detected in the original model."
 
-        Dim StartTime As Double
-        StartTime = Timer
+        Dim StartTime As DateTime
+        StartTime = Now
 
         Do
 
@@ -261,7 +268,7 @@ Public Class AssemblyTiers2
             Debug.Print("Processing " & product1.Name & " [tier=" & intTier & ", i_cycle=" & int_i_cycle & ", I=" & intI & "]")
 
             'Skip not moveable products
-            If Not bMoveable(int_i - 1) Then
+            If Not bMoveable(int_i) Then
                 'the part is a base component or deactivated
                 GoTo entry0
             End If
@@ -271,12 +278,12 @@ Public Class AssemblyTiers2
             Dim oPosition1 As Object
             oPosition1 = product1.Position
             oPosition1.GetComponents(initPos)
-            If bInitPosRecorded(int_i - 1) = False Then
+            If bInitPosRecorded(int_i) = False Then
                 Dim ip As Integer
                 For ip = 0 To 11
-                    aInitPos(int_i - 1, ip) = initPos(ip)
+                    aInitPos(int_i, ip) = initPos(ip)
                 Next ip
-                bInitPosRecorded(int_i - 1) = True
+                bInitPosRecorded(int_i) = True
             End If
 
             'For each product, determine whether it is a base product, deactivated or virtual
@@ -296,8 +303,8 @@ Public Class AssemblyTiers2
             Dim group2 As Group
             group2 = cGroups.Add
             Dim iStaticProduct As Integer
-            For iStaticProduct = 1 To cRelevantProducts.Count
-                If iStaticProduct <> int_i And Not bDeactivated(iStaticProduct - 1) Then
+            For iStaticProduct = 0 To cRelevantProducts.Count - 1
+                If iStaticProduct <> int_i And Not bDeactivated(iStaticProduct) Then
                     group2.AddExplicit(cRelevantProducts.Item(iStaticProduct))
                 End If
             Next iStaticProduct
@@ -307,14 +314,14 @@ entry1:
                 'Movement step in a given direction
 
                 'If it is a movable part (not base component or already deactivated or "virtual" part from higher tier)...
-                If bMoveable(int_i - 1) = True Then
+                If bMoveable(int_i) = True Then
 
                     'move component intStep distance in int_j direction
                     moveProduct(product1, int_j, True)
 
                     'display current disassembly direction once it changes
                     If int_j <> int_j_temp Then
-                        Debug.Print("[" & d1.Item(int_j - 1) & "]")
+                        Debug.Print("[" & d1.Item(int_j) & "]")
                         int_j_temp = int_j
                     End If
 
@@ -333,9 +340,9 @@ entry1:
                             For ic = 1 To detConflicts.Count
 
                                 oConflict1 = detConflicts.Item(ic)
-                                oConflict1.Status = catConflictStatusRelevant
+                                oConflict1.Status = SPATypeLib.CatConflictStatus.catConflictStatusRelevant
 
-                                If oConflict1.Type = catConflictTypeClash Then
+                                If oConflict1.Type = SPATypeLib.CatConflictType.catConflictTypeClash Then
 
                                     If oConflict1.Value < -dCollSens Then
 
@@ -367,7 +374,7 @@ entry1:
                                             Debug.Print("Collision with higher tier: " & oConflict1.FirstProduct.Name & " - " & oConflict1.SecondProduct.Name & " = " & oConflict1.Value)
 
                                             'record precedence relation, because secProduct is an obstacle in the way of the current product
-                                            precedenceMatrix(int_i - 1, iIndex) = 1
+                                            precedenceMatrix(int_i, iIndex) = 1
 
                                             'move the product through the "virtual" part from higher tier
                                             GoTo entry1
@@ -389,7 +396,7 @@ exit1:
                         'take next direction
                         int_j = int_j + 1
                         'if not all directions are checked for this product...
-                        If int_j <= intJ Then
+                        If int_j < intJ Then
                             'continue movement in primary directions (movement loop)
                         Else
                             'all directions were checked
@@ -397,7 +404,7 @@ exit1:
                             Debug.Print("Disassembly trials: " & total_coll)
                             int_i = int_i + 1
                             int_i_cycle = int_i_cycle + 1
-                            int_j = 1
+                            int_j = 0
                             int_j_temp = 0
 
                             'if active products remain in this cycle...
@@ -410,16 +417,16 @@ exit1:
                                 Dim intItemp As Integer
                                 intItemp = intI
                                 'record tiers
-                                For p = 1 To cRelevantProducts.Count
+                                For p = 0 To cRelevantProducts.Count - 1
                                     If productIsInCollection(cRelevantProducts.Item(p), cBaseProducts) Then
                                         'base product always has tier 0 (doesn't get reversed)
-                                        aTiers(p - 1) = 0
+                                        aTiers(p) = 0
                                     Else
                                         'not a base product
                                         'product has valid disass. directions and has no tier recorded yet
-                                        If productHasValidDisassDir(p, disassDir) And Not aTiers(p - 1) > 0 Then
+                                        If productHasValidDisassDir(p, disassDir) And Not aTiers(p) > 0 Then
                                             'save tier
-                                            aTiers(p - 1) = intTier
+                                            aTiers(p) = intTier
                                             'decrease the counter of active products in assembly
                                             intI = intI - 1
                                             'change visuals for "virtual" products
@@ -427,16 +434,28 @@ exit1:
                                             virtSelection = document.Selection
                                             virtSelection.Clear()
                                             virtSelection.Add(cRelevantProducts.Item(p))
+                                            Dim visProperties1 As Object
                                             visProperties1 = virtSelection.VisProperties
                                             visProperties1.SetRealColor(80, 255, 160, 1)
                                             virtSelection.Clear()
                                             'remember virtual green products
                                             'cVirtual.Add cRelevantProducts.Item(p)
                                             'fix position
-                                            bMoveable(p - 1) = False
+                                            bMoveable(p) = False
+                                            'Deactivate last disassembly tier directly
+                                            If intI = cBaseProducts.Count - 1 Then
+                                                Dim selektion As Selection
+                                                selektion = CATIA.ActiveDocument.Selection
+                                                selektion.Clear()
+                                                selektion.Add(cRelevantProducts.Item(p))
+                                                CATIA.StartCommand("Activate / Deactivate Component")
+                                                selektion.Clear()
+                                                cDeactivated.Add(cRelevantProducts.Item(p))
+                                                bDeactivated(p) = True
+                                            End If
                                         End If
                                         'product from higher tier
-                                        If productHasValidDisassDir(p, disassDir) And aTiers(p - 1) = intTier - 1 Then
+                                        If productHasValidDisassDir(p, disassDir) And aTiers(p) = intTier - 1 Then
                                             'deactivate
                                             Dim selection2 As Selection
                                             selection2 = CATIA.ActiveDocument.Selection
@@ -445,7 +464,7 @@ exit1:
                                             CATIA.StartCommand("Activate / Deactivate Component")
                                             selection2.Clear()
                                             cDeactivated.Add(cRelevantProducts.Item(p))
-                                            bDeactivated(p - 1) = True
+                                            bDeactivated(p) = True
                                         End If
                                     End If
                                 Next p
@@ -460,12 +479,12 @@ exit1:
                                 RecalculateRemovalDistances(cRelevantProducts, cDeactivated)
 
                                 'if there are still parts to disassemble...
-                                If intI > cBaseProducts.Count Then
+                                If intI >= cBaseProducts.Count Then
                                     'increment tier
                                     intTier = intTier + 1
                                     'process next cycle of products
-                                    int_i = 1
-                                    int_i_cycle = 1
+                                    int_i = 0
+                                    int_i_cycle = 0
                                     Exit Do
                                 Else
                                     'all parts were disassembled
@@ -479,7 +498,7 @@ exit1:
                         'check whether part reached final position
                         If productReachedFinalPosition(product1, int_i) Then
                             'store valid disassembly direction
-                            disassDir(int_i - 1, int_j - 1) = 1
+                            disassDir(int_i, int_j) = 1
                             GoTo exit1
                         Else
                             'continue movement in primary directions (movement loop)
@@ -499,18 +518,20 @@ entry0:
 exitCD:
 
         Dim SecondsElapsed As Double
-        SecondsElapsed = Round(Timer - StartTime, 2)
+        Dim MillisecondsElapsed As Double
+        MillisecondsElapsed = (Now - StartTime).TotalMilliseconds
+        SecondsElapsed = Math.Round(MillisecondsElapsed / 1000.0, 2)
         MsgBox("Collision detection algorithm finished execution after " & CStr(SecondsElapsed) & " seconds")
 
         'Return products to their initial positions, activate them
         Dim p1 As Integer
-        For p1 = 1 To cRelevantProducts.Count
+        For p1 = 0 To cRelevantProducts.Count - 1
             If Not productIsInCollection(cRelevantProducts.Item(p1), cBaseProducts) Then
                 Dim oPosition4 As Object
                 oPosition4 = cRelevantProducts.Item(p1).Position
                 Dim aPos(11)
                 For comp = 0 To 11
-                    aPos(comp) = aInitPos(p1 - 1, comp)
+                    aPos(comp) = aInitPos(p1, comp)
                 Next comp
                 oPosition4.SetComponents(aPos)
                 Dim selection4 As Selection
@@ -553,39 +574,39 @@ exitCD:
         d3.Add(10, 7)
         d3.Add(11, 8)
         For int_i = 0 To cRelevantProducts.Count - 1
-            Dim sum As Integer
-            sum = 0
-            For intAxis = 0 To intJ - 1
-                sum = sum + disassDir(int_i, intAxis)
-            Next intAxis
-            'Only for products with multiple extraction directions
-            If sum > 1 Then
-                'Add options to ComboBox
-                For intAxis = 0 To intJ - 1
-                    If disassDir(int_i, intAxis) = 1 Then
-                        ExtractionDirection.ComboBox1.AddItem(d1.Item(intAxis))
-                    End If
-                Next intAxis
-                'Highlight the product in CATIA
-                Dim selection5 As Selection
-                selection5 = CATIA.ActiveDocument.Selection
-                selection5.Clear()
-                selection5.Add(cRelevantProducts.Item(int_i + 1))
-                'Show dialog
-                ExtractionDirection.Show
-                selection5.Clear()
-                'Translate chosen axis name back into index 0..11
-                Dim iChosenDir As Integer
-                iChosenDir = d2.Item(sChosenDirection)
-                'Set all other disassembly directions to 0
-                For intAxis = 0 To intJ - 1
-                    If intAxis = iChosenDir Then
-                        disassDir(int_i, intAxis) = 1
-                    Else
-                        disassDir(int_i, intAxis) = 0
-                    End If
-                Next intAxis
-            End If
+            'Dim sum As Integer
+            'sum = 0
+            'For intAxis = 0 To intJ - 1
+            '    sum = sum + disassDir(int_i, intAxis)
+            'Next intAxis
+            ''Only for products with multiple extraction directions
+            'If sum > 1 Then
+            '    'Add options to ComboBox
+            '    For intAxis = 0 To intJ - 1
+            '        If disassDir(int_i, intAxis) = 1 Then
+            '            ExtractionDirection.ComboBox1.AddItem(d1.Item(intAxis))
+            '        End If
+            '    Next intAxis
+            '    'Highlight the product in CATIA
+            '    Dim selection5 As Selection
+            '    selection5 = CATIA.ActiveDocument.Selection
+            '    selection5.Clear()
+            '    selection5.Add(cRelevantProducts.Item(int_i + 1))
+            '    'Show dialog
+            '    ExtractionDirection.Show
+            '    selection5.Clear()
+            '    'Translate chosen axis name back into index 0..11
+            '    Dim iChosenDir As Integer
+            '    iChosenDir = d2.Item(sChosenDirection)
+            '    'Set all other disassembly directions to 0
+            '    For intAxis = 0 To intJ - 1
+            '        If intAxis = iChosenDir Then
+            '            disassDir(int_i, intAxis) = 1
+            '        Else
+            '            disassDir(int_i, intAxis) = 0
+            '        End If
+            '    Next intAxis
+            'End If
             'Reverse tier values
             Dim intMaxTier As Integer
             intMaxTier = intTier
@@ -605,9 +626,9 @@ exitCD:
         'Association of components belonging to sequential tiers
 
         Dim cClashes1 As Clashes
-        Dim oClash1 'As Clash
+        Dim oClash1 As Clash
         oClash1 = cClashes.Add
-        oClash1.ComputationType = catClashComputationTypeBetweenAll
+        oClash1.ComputationType = CatClashComputationType.catClashComputationTypeBetweenAll
         oClash1.Compute
         Dim cInitConflicts As Conflicts
         cInitConflicts = oClash1.Conflicts
@@ -660,10 +681,12 @@ exitCD:
         '  Next int_i
 
         'Export data to Excel
+        Dim objExcel As Microsoft.Office.Interop.Excel.Application
         objExcel = CreateObject("Excel.Application")
         objExcel.Visible = True
         objExcel.Workbooks.Add
         objExcel.ActiveWorkbook.Sheets.Add.Name = "Precedence Matrix"
+        Dim objSheet1, objSheet2 As Object
         objSheet1 = objExcel.ActiveWorkbook.Worksheets(2)
         objSheet1.Name = "Assembly Directions"
         objSheet2 = objExcel.ActiveWorkbook.Worksheets(1)
@@ -677,18 +700,18 @@ exitCD:
         objSheet1.Cells(1, 6).Value = "-Y"
         objSheet1.Cells(1, 7).Value = "-Z"
         objSheet1.Cells(1, 8).Value = "Assembly Tier"
-        For int_i = 1 To cRelevantProducts.Count
-            objSheet1.Cells(int_i + 1, 1).Value = cRelevantProducts.Item(int_i).Name
+        For int_i = 0 To cRelevantProducts.Count - 1
+            objSheet1.Cells(int_i + 2, 1).Value = cRelevantProducts.Item(int_i).Name
             For intAxis = 0 To intJ - 1
-                objSheet1.Cells(int_i + 1, 2 + intAxis).Value = disassDir(int_i - 1, intAxis)
+                objSheet1.Cells(int_i + 2, 2 + intAxis).Value = disassDir(int_i, intAxis)
             Next intAxis
-            objSheet1.Cells(int_i + 1, intJ + 2).Value = aTiers(int_i - 1)
+            objSheet1.Cells(int_i + 2, intJ + 2).Value = aTiers(int_i)
         Next int_i
 
         'Precedence relations
-        For int_i = 1 To cRelevantProducts.Count
-            For int_j = 1 To cRelevantProducts.Count
-                objSheet2.Cells(int_i, int_j).Value = precedenceMatrix(int_i - 1, int_j - 1)
+        For int_i = 0 To cRelevantProducts.Count - 1
+            For int_j = 0 To cRelevantProducts.Count - 1
+                objSheet2.Cells(int_i + 1, int_j + 1).Value = precedenceMatrix(int_i, int_j)
             Next int_j
         Next int_i
 
@@ -785,12 +808,11 @@ exitCD:
 
     Function DeactivateFasteners(objProduct As Product)
 
-        Dim objParts AsCollection
+        Dim objParts As New ArrayList
         'On the top level of product tree
         ' objParts = objProduct.Products
         'Recursive
         objParts = cAllProducts
-        Dim i As Integer
         Dim selection1 As Selection
         selection1 = CATIA.ActiveDocument.Selection
         selection1.Clear()
@@ -798,12 +820,10 @@ exitCD:
         Dim intFasteners As Integer
         intFasteners = 0
 
-        For i = 1 To objParts.Count
+        For Each prod In objParts
             Dim sName As String
-            Dim prod As Product
             Dim primFastSize As Integer
 
-            prod = objParts.Item(i)
             sName = LCase(prod.PartNumber)
             'Debug.Print sName
             If InStr(sName, "bolt") > 0 Then
@@ -896,7 +916,7 @@ exitCD:
         Dim hybridShapeFactory1 As HybridShapeFactory
         Dim sStatus As String
         Dim hybridShapeD1, hybridShapeD2, hybridShapeD3 As HybridShapeDirection
-        Default Dim, a1, a2, a3, a4, a5, a6 'To change the offsets of the box
+        Dim a1, a2, a3, a4, a5, a6 'To change the offsets of the box
         Dim bodies1 As Bodies
         Dim body1 As Body
         Dim reference1 As Reference
@@ -919,10 +939,12 @@ exitCD:
             axissyst = axisSystem
             axisref = axisSystem
 
+            Dim ref_name_systaxis As String
             ref_name_systaxis = axissyst.Name
 
             axissyst.IsCurrent = 1
             axissyst.Name = "BBoxAxis"
+            Dim axname As String
             axname = axissyst.Name
 
             'Get Product's Position (rotation and translation)
@@ -963,6 +985,7 @@ exitCD:
             body1 = bodies1.Add()
             body1.Name = "Bounding Box." & j
 
+            Dim hybridBodies1 As HybridBodies
             hybridBodies1 = body1.HybridBodies
             Dim hybridBody1 As HybridBody
             hybridBody1 = hybridBodies1.Add
@@ -1043,6 +1066,7 @@ exitCD:
                 Dim Point1 As HybridShapePointCoord
                 Point1 = hybridShapeFactory1.AddNewPointCoordWithReference(0, 0, 0, Ref1)
                 hybridBody2.AppendHybridShape(Point1)
+                Dim point_ref11 As Reference
                 point_ref11 = part1.CreateReferenceFromObject(Point1)
 
                 Dim Ref2 As Reference
@@ -1050,6 +1074,7 @@ exitCD:
                 Dim Point2 As HybridShapePointCoord
                 Point2 = hybridShapeFactory1.AddNewPointCoordWithReference(0, 0, 0, Ref2)
                 hybridBody2.AppendHybridShape(Point2)
+                Dim point_ref12 As Reference
                 point_ref12 = part1.CreateReferenceFromObject(Point2)
 
                 Dim Ref3 As Reference
@@ -1057,6 +1082,7 @@ exitCD:
                 Dim Point3 As HybridShapePointCoord
                 Point3 = hybridShapeFactory1.AddNewPointCoordWithReference(0, 0, 0, Ref3)
                 hybridBody2.AppendHybridShape(Point3)
+                Dim point_ref13 As Reference
                 point_ref13 = part1.CreateReferenceFromObject(Point3)
 
                 Dim Ref4 As Reference
@@ -1064,6 +1090,7 @@ exitCD:
                 Dim Point4 As HybridShapePointCoord
                 Point4 = hybridShapeFactory1.AddNewPointCoordWithReference(0, 0, 0, Ref4)
                 hybridBody2.AppendHybridShape(Point4)
+                Dim point_ref14 As Reference
                 point_ref14 = part1.CreateReferenceFromObject(Point4)
 
                 Dim Ref5 As Reference
@@ -1071,6 +1098,7 @@ exitCD:
                 Dim Point5 As HybridShapePointCoord
                 Point5 = hybridShapeFactory1.AddNewPointCoordWithReference(0, 0, 0, Ref5)
                 hybridBody2.AppendHybridShape(Point5)
+                Dim point_ref5 As Reference
                 point_ref5 = part1.CreateReferenceFromObject(Point5)
 
                 Dim Ref6 As Reference
@@ -1078,6 +1106,7 @@ exitCD:
                 Dim Point6 As HybridShapePointCoord
                 Point6 = hybridShapeFactory1.AddNewPointCoordWithReference(0, 0, 0, Ref6)
                 hybridBody2.AppendHybridShape(Point6)
+                Dim point_ref6 As Reference
                 point_ref6 = part1.CreateReferenceFromObject(Point6)
 
                 part1.UpdateObject(Point1)
@@ -1113,6 +1142,7 @@ exitCD:
                 TheMeasurable = TheSPAWorkbench.GetMeasurable(point_ref11)
                 TheMeasurable.GetPoint(coord)
                 aBBDistances(0) = coord(0)
+                absCoord = {0.0, 0.0, 0.0}
                 Call Coord_Transform(coord, absCoord, objProduct, True)
                 Debug.Print(Point1.Name & " (" & Ref1.DisplayName & "): [" & absCoord(0) & " " & absCoord(1) & " " & absCoord(2) & "]")
 
@@ -1120,6 +1150,7 @@ exitCD:
                 TheMeasurable = TheSPAWorkbench.GetMeasurable(point_ref12)
                 TheMeasurable.GetPoint(coord)
                 aBBDistances(1) = coord(0)
+                absCoord = {0.0, 0.0, 0.0}
                 Call Coord_Transform(coord, absCoord, objProduct, True)
                 Debug.Print(Point2.Name & " (" & Ref2.DisplayName & "): [" & absCoord(0) & " " & absCoord(1) & " " & absCoord(2) & "]")
 
@@ -1127,6 +1158,7 @@ exitCD:
                 TheMeasurable = TheSPAWorkbench.GetMeasurable(point_ref13)
                 TheMeasurable.GetPoint(coord)
                 aBBDistances(2) = coord(1)
+                absCoord = {0.0, 0.0, 0.0}
                 Call Coord_Transform(coord, absCoord, objProduct, True)
                 Debug.Print(Point3.Name & " (" & Ref3.DisplayName & "): [" & absCoord(0) & " " & absCoord(1) & " " & absCoord(2) & "]")
 
@@ -1134,6 +1166,7 @@ exitCD:
                 TheMeasurable = TheSPAWorkbench.GetMeasurable(point_ref14)
                 TheMeasurable.GetPoint(coord)
                 aBBDistances(3) = coord(1)
+                absCoord = {0.0, 0.0, 0.0}
                 Call Coord_Transform(coord, absCoord, objProduct, True)
                 Debug.Print(Point4.Name & " (" & Ref4.DisplayName & "): [" & absCoord(0) & " " & absCoord(1) & " " & absCoord(2) & "]")
 
@@ -1141,6 +1174,7 @@ exitCD:
                 TheMeasurable = TheSPAWorkbench.GetMeasurable(point_ref5)
                 TheMeasurable.GetPoint(coord)
                 aBBDistances(4) = coord(2)
+                absCoord = {0.0, 0.0, 0.0}
                 Call Coord_Transform(coord, absCoord, objProduct, True)
                 Debug.Print(Point5.Name & " (" & Ref5.DisplayName & "): [" & absCoord(0) & " " & absCoord(1) & " " & absCoord(2) & "]")
 
@@ -1148,6 +1182,7 @@ exitCD:
                 TheMeasurable = TheSPAWorkbench.GetMeasurable(point_ref6)
                 TheMeasurable.GetPoint(coord)
                 aBBDistances(5) = coord(2)
+                absCoord = {0.0, 0.0, 0.0}
                 Call Coord_Transform(coord, absCoord, objProduct, True)
                 Debug.Print(Point6.Name & " (" & Ref6.DisplayName & "): [" & absCoord(0) & " " & absCoord(1) & " " & absCoord(2) & "]")
 
@@ -1170,23 +1205,23 @@ exitCD:
                             CCC(0) = absCoord(0) - PositionArray(9)
                             CCC(1) = absCoord(1) - PositionArray(10)
                             CCC(2) = absCoord(2) - PositionArray(11)
-                            If CCC(0) > aPartBBGlob(i - 1, 0) Then
-                                aPartBBGlob(i - 1, 0) = CCC(0)
+                            If CCC(0) > aPartBBGlob(i, 0) Then
+                                aPartBBGlob(i, 0) = CCC(0)
                             End If
-                            If CCC(0) < aPartBBGlob(i - 1, 1) Then
-                                aPartBBGlob(i - 1, 1) = CCC(0)
+                            If CCC(0) < aPartBBGlob(i, 1) Then
+                                aPartBBGlob(i, 1) = CCC(0)
                             End If
-                            If CCC(1) > aPartBBGlob(i - 1, 2) Then
-                                aPartBBGlob(i - 1, 2) = CCC(1)
+                            If CCC(1) > aPartBBGlob(i, 2) Then
+                                aPartBBGlob(i, 2) = CCC(1)
                             End If
-                            If CCC(1) < aPartBBGlob(i - 1, 3) Then
-                                aPartBBGlob(i - 1, 3) = CCC(1)
+                            If CCC(1) < aPartBBGlob(i, 3) Then
+                                aPartBBGlob(i, 3) = CCC(1)
                             End If
-                            If CCC(2) > aPartBBGlob(i - 1, 4) Then
-                                aPartBBGlob(i - 1, 4) = CCC(2)
+                            If CCC(2) > aPartBBGlob(i, 4) Then
+                                aPartBBGlob(i, 4) = CCC(2)
                             End If
-                            If CCC(2) < aPartBBGlob(i - 1, 5) Then
-                                aPartBBGlob(i - 1, 5) = CCC(2)
+                            If CCC(2) < aPartBBGlob(i, 5) Then
+                                aPartBBGlob(i, 5) = CCC(2)
                             End If
                             'Update aAssemblyBoundaries (global)
                             If absCoord(0) > aAssemblyBoundaries(0) Then
@@ -1226,7 +1261,7 @@ exitCD:
 
     End Function
 
-    Sub RecalculateRemovalDistances(cRelProd As Collection, cDeact As Collection)
+    Sub RecalculateRemovalDistances(cRelProd As ArrayList, cDeact As ArrayList)
 
         Dim aRemovalDistances(cRelProd.Count - 1, 5)
         Dim i As Integer
@@ -1240,7 +1275,7 @@ exitCD:
         aAssemblyBoundaries(5) = 0#
 
         For i = 0 To cRelProd.Count - 1
-            relProd = cRelProd.Item(i + 1)
+            relProd = cRelProd.Item(i)
             If Not productIsInCollection(relProd, cDeact) Then
                 If aInitPos(i, 9) + aPartBBGlob(i, 0) > aAssemblyBoundaries(0) Then
                     aAssemblyBoundaries(0) = aInitPos(i, 9) + aPartBBGlob(i, 0)
@@ -1264,7 +1299,7 @@ exitCD:
         Next i
 
         For i = 0 To cRelProd.Count - 1
-            relProd = cRelProd.Item(i + 1)
+            relProd = cRelProd.Item(i)
             If Not productIsInCollection(relProd, cDeact) Then
                 aRemovalDistances(i, 0) = aAssemblyBoundaries(0) - aPartBBGlob(i, 1)
                 aRemovalDistances(i, 1) = aAssemblyBoundaries(1) - aPartBBGlob(i, 0)
@@ -1277,13 +1312,13 @@ exitCD:
 
     End Sub
 
-    Public Function ArrayLen(a As Object) As Integer
-        If IsEmpty(a) Then
-            ArrayLen = 0
-        Else
-            ArrayLen = UBound(a) - LBound(a) + 1
-        End If
-    End Function
+    'Public Function ArrayLen(a As Object) As Integer
+    '    If IsEmpty(a) Then
+    '        ArrayLen = 0
+    '    Else
+    '        ArrayLen = UBound(a) - LBound(a) + 1
+    '    End If
+    'End Function
 
     Function Det3x3(dX11 As Double, dX12 As Double, dX13 As Double,
                 dX21 As Double, dX22 As Double, dX23 As Double,
@@ -1299,7 +1334,7 @@ exitCD:
     End Function
     Function Inv3x3(dX11 As Double, dX12 As Double, dX13 As Double,
            dX21 As Double, dX22 As Double, dX23 As Double,
-           dX31 As Double, dX32 As Double, dX33 As Double, aInv() As Double) As Boolean
+           dX31 As Double, dX32 As Double, dX33 As Double, aInv() As Double) As Double()
         '***********************************************
         '*
         '* 3x3 matrix inverse calculation (direct)
@@ -1307,38 +1342,37 @@ exitCD:
         '***********************************************
         Dim dDet As Double
 
-        Dim aInv(8)
-
-        Inv3x3 = False
+        ReDim aInv(8)
 
         dDet = Det3x3(dX11, dX12, dX13, dX21, dX22, dX23, dX31, dX32, dX33)
-        If dDet = 0 Then Exit Function
+        'If dDet = 0 Then Exit Function
+        If dDet = 0 Then Return Nothing
 
-        aInv(0) = (dX22 * dX33 - dX23 * dX32) / Abs(dDet)
-        aInv(1) = (dX13 * dX32 - dX12 * dX33) / Abs(dDet)
-        aInv(2) = (dX12 * dX23 - dX13 * dX22) / Abs(dDet)
-        aInv(3) = (dX23 * dX31 - dX21 * dX33) / Abs(dDet)
-        aInv(4) = (dX11 * dX33 - dX13 * dX31) / Abs(dDet)
-        aInv(5) = (dX13 * dX21 - dX11 * dX23) / Abs(dDet)
-        aInv(6) = (dX21 * dX32 - dX22 * dX31) / Abs(dDet)
-        aInv(7) = (dX12 * dX31 - dX11 * dX32) / Abs(dDet)
-        aInv(8) = (dX11 * dX22 - dX12 * dX21) / Abs(dDet)
+        aInv(0) = (dX22 * dX33 - dX23 * dX32) / Math.Abs(dDet)
+        aInv(1) = (dX13 * dX32 - dX12 * dX33) / Math.Abs(dDet)
+        aInv(2) = (dX12 * dX23 - dX13 * dX22) / Math.Abs(dDet)
+        aInv(3) = (dX23 * dX31 - dX21 * dX33) / Math.Abs(dDet)
+        aInv(4) = (dX11 * dX33 - dX13 * dX31) / Math.Abs(dDet)
+        aInv(5) = (dX13 * dX21 - dX11 * dX23) / Math.Abs(dDet)
+        aInv(6) = (dX21 * dX32 - dX22 * dX31) / Math.Abs(dDet)
+        aInv(7) = (dX12 * dX31 - dX11 * dX32) / Math.Abs(dDet)
+        aInv(8) = (dX11 * dX22 - dX12 * dX21) / Math.Abs(dDet)
 
-        Inv3x3 = True
+        Return aInv
 
     End Function
     Sub Coord_Transform(aRel() As Object, aAbs() As Object, oProduct As Product, bRecursively As Boolean)
 
         Dim vProduct As Object, vCoord(11)
         Dim oFatherProduct As Product
-        Dim aInv() As Double
+        Dim aInv(8) As Double
 
         'Exit condition, empty object
         If oProduct Is Nothing Then Exit Sub
 
         'Redim absolute coords matrix
         On Error Resume Next
-        Dim aAbs(2)
+        'aAbs = {0.0, 0.0, 0.0}
         On Error GoTo 0
 
         'Calculate product coordinates
@@ -1346,12 +1380,15 @@ exitCD:
         vProduct.Position.GetComponents(vCoord)
 
         'Calculate inverse matrix
-        If Inv3x3(CDbl(vCoord(0)), CDbl(vCoord(1)), CDbl(vCoord(2)),
+        If IsNothing(Inv3x3(CDbl(vCoord(0)), CDbl(vCoord(1)), CDbl(vCoord(2)),
                  CDbl(vCoord(3)), CDbl(vCoord(4)), CDbl(vCoord(5)),
-                 CDbl(vCoord(6)), CDbl(vCoord(7)), CDbl(vCoord(8)), aInv) Then
-        Else
+                 CDbl(vCoord(6)), CDbl(vCoord(7)), CDbl(vCoord(8)), aInv)) Then
             'MsgBox "Error, degenerate transformation", vbOKOnly
             Exit Sub
+        Else
+            aInv = Inv3x3(CDbl(vCoord(0)), CDbl(vCoord(1)), CDbl(vCoord(2)),
+                 CDbl(vCoord(3)), CDbl(vCoord(4)), CDbl(vCoord(5)),
+                 CDbl(vCoord(6)), CDbl(vCoord(7)), CDbl(vCoord(8)), aInv)
         End If
 
         'Calculate transformation
@@ -1388,7 +1425,7 @@ exitCD:
 
     End Sub
 
-    Function productIsInCollection(objProd As Product, prodColl As Collection) As Boolean
+    Function productIsInCollection(objProd As Product, prodColl As ArrayList) As Boolean
         Dim dummyObj As Product
         productIsInCollection = False
         For Each dummyObj In prodColl
@@ -1423,61 +1460,62 @@ exitCD:
         Dim axisArray(11)
 
         'movement along global axis
-        If intDir < 7 Then
+        If intDir < 6 Then
             'Attention: for now it is assumed that all products are on the top level of specification tree
-            If intDir = 1 Then
+            If intDir = 0 Then
                 moveArray(9) = intS
             End If
-            If intDir = 2 Then
+            If intDir = 1 Then
                 moveArray(10) = intS
             End If
-            If intDir = 3 Then
+            If intDir = 2 Then
                 moveArray(11) = intS
             End If
-            If intDir = 4 Then
+            If intDir = 3 Then
                 moveArray(9) = -intS
             End If
-            If intDir = 5 Then
+            If intDir = 4 Then
                 moveArray(10) = -intS
             End If
-            If intDir = 6 Then
+            If intDir = 5 Then
                 moveArray(11) = -intS
             End If
         Else    'movement along local axis
             Dim oPosition As Object
             oPosition = objProd.Position
             oPosition.GetComponents(axisArray)
-            If intDir = 7 Then
+            If intDir = 6 Then
                 moveArray(9) = axisArray(0) * intS
                 moveArray(10) = axisArray(1) * intS
                 moveArray(11) = axisArray(2) * intS
             End If
-            If intDir = 8 Then
+            If intDir = 7 Then
                 moveArray(9) = axisArray(3) * intS
                 moveArray(10) = axisArray(4) * intS
                 moveArray(11) = axisArray(5) * intS
             End If
-            If intDir = 9 Then
+            If intDir = 8 Then
                 moveArray(9) = axisArray(6) * intS
                 moveArray(10) = axisArray(7) * intS
                 moveArray(11) = axisArray(8) * intS
             End If
-            If intDir = 10 Then
+            If intDir = 9 Then
                 moveArray(9) = -axisArray(0) * intS
                 moveArray(10) = -axisArray(1) * intS
                 moveArray(11) = -axisArray(2) * intS
             End If
-            If intDir = 11 Then
+            If intDir = 10 Then
                 moveArray(9) = -axisArray(3) * intS
                 moveArray(10) = -axisArray(4) * intS
                 moveArray(11) = -axisArray(5) * intS
             End If
-            If intDir = 12 Then
+            If intDir = 11 Then
                 moveArray(9) = -axisArray(6) * intS
                 moveArray(10) = -axisArray(7) * intS
                 moveArray(11) = -axisArray(8) * intS
             End If
         End If
+        Dim prod1nd As Product
         prod1nd = objProd
         prod1nd.Move.Apply(moveArray)
 
@@ -1501,12 +1539,12 @@ exitCD:
         '      End If
         '    Next relevantProduct
         'create a new clash analysis
-        Dim oClash 'As Clash
+        Dim oClash As Clash
         oClash = cClashes.Add
-        oClash.ComputationType = catClashComputationTypeBetweenTwo
+        oClash.ComputationType = SPATypeLib.CatClashComputationType.catClashComputationTypeBetweenTwo
         oClash.FirstGroup = group1
         oClash.SecondGroup = group2
-        oClash.InterferenceType = catClashInterferenceTypeClearance
+        oClash.InterferenceType = SPATypeLib.CatClashInterferenceType.catClashInterferenceTypeClearance
         'oClash.Clearance = dCollSens
         oClash.Compute
         Dim cConflicts As Conflicts
@@ -1518,8 +1556,8 @@ exitCD:
             Dim c As Integer
             For c = 1 To cConflicts.Count
                 oConflict = cConflicts.Item(c)
-                oConflict.Status = catConflictStatusRelevant
-                If oConflict.Type = catConflictTypeClash Then
+                oConflict.Status = SPATypeLib.CatConflictStatus.catConflictStatusRelevant
+                If oConflict.Type = SPATypeLib.CatConflictType.catConflictTypeClash Then
                     If oConflict.Value < -dCollSens Then
                         collisionDetected = True
                         Debug.Print("Clash detected: " & oConflict.FirstProduct.Name & " - " & oConflict.SecondProduct.Name & " = " & oConflict.Value)
@@ -1536,37 +1574,37 @@ exitCD:
         Dim oPosition As Object
         oPosition = objProd.Position
         oPosition.GetComponents(posArray)
-        If posArray(9) > aRemovalDistances(i1 - 1, 0) Then
+        If posArray(9) > aRemovalDistances(i1, 0) Then
             productReachedFinalPosition = True
             'MsgBox "X+ removal distance reached by " & objProd.Name
         End If
-        If posArray(9) < aRemovalDistances(i1 - 1, 1) Then
+        If posArray(9) < aRemovalDistances(i1, 1) Then
             productReachedFinalPosition = True
             'MsgBox "X- removal distance reached by " & objProd.Name
         End If
-        If posArray(10) > aRemovalDistances(i1 - 1, 2) Then
+        If posArray(10) > aRemovalDistances(i1, 2) Then
             productReachedFinalPosition = True
             'MsgBox "Y+ removal distance reached by " & objProd.Name
         End If
-        If posArray(10) < aRemovalDistances(i1 - 1, 3) Then
+        If posArray(10) < aRemovalDistances(i1, 3) Then
             productReachedFinalPosition = True
             'MsgBox "Y- removal distance reached by " & objProd.Name
         End If
-        If posArray(11) > aRemovalDistances(i1 - 1, 4) Then
+        If posArray(11) > aRemovalDistances(i1, 4) Then
             productReachedFinalPosition = True
             'MsgBox "Z+ removal distance reached by " & objProd.Name
         End If
-        If posArray(11) < aRemovalDistances(i1 - 1, 5) Then
+        If posArray(11) < aRemovalDistances(i1, 5) Then
             productReachedFinalPosition = True
             'MsgBox "Z- removal distance reached by " & objProd.Name
         End If
     End Function
 
-    Function productHasValidDisassDir(i1 As Integer, disassDir() As Object) As Boolean
+    Function productHasValidDisassDir(i1 As Integer, disassDir(,) As Object) As Boolean
         productHasValidDisassDir = False
         Dim j As Integer
         For j = 0 To 11
-            If disassDir(i1 - 1, j) = 1 Then
+            If disassDir(i1, j) = 1 Then
                 productHasValidDisassDir = True
                 Exit For
             End If
@@ -1579,6 +1617,7 @@ exitCD:
             Tree(s2, q)
         Next
 
+        Dim parentAssy As Object
         parentAssy = s1.Parent.Parent
 
         If StrComp(TypeName(parentAssy), "Product") = 0 Then
@@ -1661,7 +1700,7 @@ Finish:
 
     End Sub
 
-    Function GetProductIndex(objProd As Product, cProds As Collection) As Integer
+    Function GetProductIndex(objProd As Product, cProds As ArrayList) As Integer
         Dim produkt As Product
         Dim intAns As Integer
         intAns = 0
@@ -1672,6 +1711,7 @@ Finish:
             End If
             intAns = intAns + 1
         Next produkt
+        Return intAns
     End Function
 
 End Class
diff --git a/CatiaNetTest/CatiaNetTest.vbproj b/CatiaNetTest/CatiaNetTest.vbproj
index de9223021061c5a79d8ae3289f7673c2b8eb84d3..01bf99af4e81a838ef374e743fd3d2a0804ff380 100644
--- a/CatiaNetTest/CatiaNetTest.vbproj
+++ b/CatiaNetTest/CatiaNetTest.vbproj
@@ -11,8 +11,9 @@
     <AssemblyName>CatiaNetTest</AssemblyName>
     <FileAlignment>512</FileAlignment>
     <MyType>WindowsForms</MyType>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
+    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
     <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
+    <TargetFrameworkProfile />
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <PlatformTarget>AnyCPU</PlatformTarget>
@@ -741,6 +742,24 @@
       <Isolated>False</Isolated>
       <EmbedInteropTypes>True</EmbedInteropTypes>
     </COMReference>
+    <COMReference Include="Microsoft.Office.Core">
+      <Guid>{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}</Guid>
+      <VersionMajor>2</VersionMajor>
+      <VersionMinor>8</VersionMinor>
+      <Lcid>0</Lcid>
+      <WrapperTool>primary</WrapperTool>
+      <Isolated>False</Isolated>
+      <EmbedInteropTypes>True</EmbedInteropTypes>
+    </COMReference>
+    <COMReference Include="Microsoft.Office.Interop.Excel">
+      <Guid>{00020813-0000-0000-C000-000000000046}</Guid>
+      <VersionMajor>1</VersionMajor>
+      <VersionMinor>9</VersionMinor>
+      <Lcid>0</Lcid>
+      <WrapperTool>primary</WrapperTool>
+      <Isolated>False</Isolated>
+      <EmbedInteropTypes>True</EmbedInteropTypes>
+    </COMReference>
     <COMReference Include="mxcatiav5integrationTypeLib">
       <Guid>{ACD81FF4-AC0E-4A64-BD64-488394A81DFA}</Guid>
       <VersionMajor>0</VersionMajor>
@@ -903,6 +922,15 @@
       <Isolated>False</Isolated>
       <EmbedInteropTypes>True</EmbedInteropTypes>
     </COMReference>
+    <COMReference Include="VBIDE">
+      <Guid>{0002E157-0000-0000-C000-000000000046}</Guid>
+      <VersionMajor>5</VersionMajor>
+      <VersionMinor>3</VersionMinor>
+      <Lcid>0</Lcid>
+      <WrapperTool>primary</WrapperTool>
+      <Isolated>False</Isolated>
+      <EmbedInteropTypes>True</EmbedInteropTypes>
+    </COMReference>
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
diff --git a/CatiaNetTest/Form1.vb b/CatiaNetTest/Form1.vb
index 0044a973474a34eee0c5203b9e9f74fbd0107014..ac24fb4678e3c0a4e8390a2f371aebf0d2599475 100644
--- a/CatiaNetTest/Form1.vb
+++ b/CatiaNetTest/Form1.vb
@@ -33,7 +33,7 @@ Public Class Form1
         Dim myAssemblyTiers As AssemblyTiers2 = New AssemblyTiers2()
 
         Try
-            myAssemblyTiers.CatMain(myCATIA)
+            myAssemblyTiers.CatMain()
         Catch ex As Exception
 
         End Try
diff --git a/CatiaNetTest/bin/Debug/CatiaNetTest.exe b/CatiaNetTest/bin/Debug/CatiaNetTest.exe
index 17ca939b8428779dff41353345567f1a7a7f0cef..94e67f4fff98419dab1bceefbf1eac9e103fa1af 100644
Binary files a/CatiaNetTest/bin/Debug/CatiaNetTest.exe and b/CatiaNetTest/bin/Debug/CatiaNetTest.exe differ
diff --git a/CatiaNetTest/bin/Debug/CatiaNetTest.exe.config b/CatiaNetTest/bin/Debug/CatiaNetTest.exe.config
index 2ae8254d305bb019047d91b8db81c8dca76b56c8..bd27edc04e799305ac0797931ae8216a80eb9c68 100644
--- a/CatiaNetTest/bin/Debug/CatiaNetTest.exe.config
+++ b/CatiaNetTest/bin/Debug/CatiaNetTest.exe.config
@@ -1,6 +1,6 @@
-<?xml version="1.0" encoding="utf-8" ?>
+<?xml version="1.0" encoding="utf-8"?>
 <configuration>
     <startup>
-        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/>
     </startup>
-</configuration>
\ No newline at end of file
+</configuration>
diff --git a/CatiaNetTest/bin/Debug/CatiaNetTest.pdb b/CatiaNetTest/bin/Debug/CatiaNetTest.pdb
index 77b0a9f7c42b9bac117c895c2075c036ec680573..c43d247e2fbedcf6d65a35dde4706f17eb794bbb 100644
Binary files a/CatiaNetTest/bin/Debug/CatiaNetTest.pdb and b/CatiaNetTest/bin/Debug/CatiaNetTest.pdb differ
diff --git a/CatiaNetTest/obj/Debug/CatiaNetTest.exe b/CatiaNetTest/obj/Debug/CatiaNetTest.exe
index 17ca939b8428779dff41353345567f1a7a7f0cef..94e67f4fff98419dab1bceefbf1eac9e103fa1af 100644
Binary files a/CatiaNetTest/obj/Debug/CatiaNetTest.exe and b/CatiaNetTest/obj/Debug/CatiaNetTest.exe differ
diff --git a/CatiaNetTest/obj/Debug/CatiaNetTest.pdb b/CatiaNetTest/obj/Debug/CatiaNetTest.pdb
index 77b0a9f7c42b9bac117c895c2075c036ec680573..c43d247e2fbedcf6d65a35dde4706f17eb794bbb 100644
Binary files a/CatiaNetTest/obj/Debug/CatiaNetTest.pdb and b/CatiaNetTest/obj/Debug/CatiaNetTest.pdb differ
diff --git a/CatiaNetTest/obj/Debug/CatiaNetTest.vbproj.FileListAbsolute.txt b/CatiaNetTest/obj/Debug/CatiaNetTest.vbproj.FileListAbsolute.txt
index 792e14986bf4a190db35ca7ba63648f356990e19..671d824cfd7db48afce12ea376332fc56e475594 100644
--- a/CatiaNetTest/obj/Debug/CatiaNetTest.vbproj.FileListAbsolute.txt
+++ b/CatiaNetTest/obj/Debug/CatiaNetTest.vbproj.FileListAbsolute.txt
@@ -97,3 +97,91 @@ D:\03_Dissertation\20_Tools\CATIA_NET\CATIA_NET_Test\CatiaNetTest\CatiaNetTest\o
 D:\03_Dissertation\20_Tools\CATIA_NET\CATIA_NET_Test\CatiaNetTest\CatiaNetTest\obj\Debug\CatiaNetTest.xml
 D:\03_Dissertation\20_Tools\CATIA_NET\CATIA_NET_Test\CatiaNetTest\CatiaNetTest\obj\Debug\CatiaNetTest.pdb
 D:\03_Dissertation\20_Tools\CATIA_NET\CATIA_NET_Test\CatiaNetTest\CatiaNetTest\obj\Debug\Interop.CD5Integ.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\CatiaNetTest.exe
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\CatiaNetTest.xml
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\CatiaNetTest.pdb
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\CatiaNetTest.vbprojAssemblyReference.cache
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.AnnotationTypeLib.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.BehaviorTypeLib.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.CAT3DXml.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.CATArrangementTypeLib.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.CATAssemblyTypeLib.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.CATDataExch.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.CATEdbTypeLib.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.CATFunctSystem.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.CATHumanPackaging.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.CATIA_APP_ITF.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.CATIdeSettings.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.CATImm.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.CATInstantCollabItf.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.CATMat.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.CATMultiCAD.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.CATOBM.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.CATPspPlantShipTypeLib.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.CATRdg.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.CATRma.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.CATRpmReporterTypeLib.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.CATRsc.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.CATSchematicTypeLib.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.CATSdeSetting.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.CATSmarTeamInteg.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.CATSmInterfacesTypeLib.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.CATStk.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.CATStrSettingsTypeLib.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.CATTooling.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.CATV4IInteropTypeLib.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.ComponentsCatalogsTypeLib.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.DNBASY.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.DNBBIW.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.DNBD5I.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.DNBDevice.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.DNBDpmItf.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.DNBFastener.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.DNBIgpResourceProgram.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.DNBIgpTagPath.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.DNBIgripSim.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.DNBIPD.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.DNBManufacturingLayoutItf.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.DNBMHIItf.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.DNBPert.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.DNBReporting.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.DNBRobot.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.DNBSimAct.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.DNBSimIO.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.DNBSimulation.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.DRAFTINGITF.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.ElecSchematicTypeLib.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.FittingTypeLib.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.GenKwe.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.HybridShapeTypeLib.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.INFITF.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.KinTypeLib.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.KnowledgewareTypeLib.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.LAYOUT2DITF.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.MANUFACTURING.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.MECMOD.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.NavigatorTypeLib.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.OSMInterfacesTypeLib.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.PARTITF.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.PCBITF.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.PPR.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.PRISMATICMACHINING.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.PROCESSITF.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.ProductStructureTypeLib.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.SAMITF.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.SHEITF.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.SIM.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.SimulationTypeLib.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.SMTypeLib.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.SPATypeLib.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.StrTypeLib.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.SURFACEMACHINING.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\Interop.SWKHumanModelingItf.dll
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\CatiaNetTest.vbproj.ResolveComReference.cache
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\CatiaNetTest.Form1.resources
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\CatiaNetTest.Resources.resources
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\obj\Debug\CatiaNetTest.vbproj.GenerateResource.cache
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\bin\Debug\CatiaNetTest.exe.config
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\bin\Debug\CatiaNetTest.exe
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\bin\Debug\CatiaNetTest.pdb
+D:\mikep\Files\RWTH\Master Produktionstechnik\Masterarbeit\VB.NET\AssemblyTiersNET\CatiaNetTest\bin\Debug\CatiaNetTest.xml
diff --git a/CatiaNetTest/obj/Debug/CatiaNetTest.vbproj.GenerateResource.Cache b/CatiaNetTest/obj/Debug/CatiaNetTest.vbproj.GenerateResource.Cache
index e9d8969b4f6115ad4c012a93286fbbcdda0efb19..1a031fdb392ea88d0c7157e6d696f89b5477d744 100644
Binary files a/CatiaNetTest/obj/Debug/CatiaNetTest.vbproj.GenerateResource.Cache and b/CatiaNetTest/obj/Debug/CatiaNetTest.vbproj.GenerateResource.Cache differ
diff --git a/CatiaNetTest/obj/Debug/CatiaNetTest.vbproj.ResolveComReference.cache b/CatiaNetTest/obj/Debug/CatiaNetTest.vbproj.ResolveComReference.cache
index 967df72cd65bd4470d1b22cdfb613eecb178a7da..2dd5a0db036cfd6ded31ddbe13c62f2f21104559 100644
Binary files a/CatiaNetTest/obj/Debug/CatiaNetTest.vbproj.ResolveComReference.cache and b/CatiaNetTest/obj/Debug/CatiaNetTest.vbproj.ResolveComReference.cache differ
diff --git a/CatiaNetTest/obj/Debug/CatiaNetTest.vbprojAssemblyReference.cache b/CatiaNetTest/obj/Debug/CatiaNetTest.vbprojAssemblyReference.cache
new file mode 100644
index 0000000000000000000000000000000000000000..b0030fbd7ec997cca7076394568b815bd1f625f7
Binary files /dev/null and b/CatiaNetTest/obj/Debug/CatiaNetTest.vbprojAssemblyReference.cache differ
diff --git a/CatiaNetTest/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/CatiaNetTest/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
index 3b179d2bc23e1585de0574356f7be4608ce14b90..d1e443621db36610a970eb96b052126463921243 100644
Binary files a/CatiaNetTest/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache and b/CatiaNetTest/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/CatiaNetTest/obj/Debug/Interop.AnnotationTypeLib.dll b/CatiaNetTest/obj/Debug/Interop.AnnotationTypeLib.dll
index 6f66d399bafcdfe4e5cd38106edd372952220397..e0a26f52d0d3a4abecd8d0e9df84017eda259f7b 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.AnnotationTypeLib.dll and b/CatiaNetTest/obj/Debug/Interop.AnnotationTypeLib.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.BehaviorTypeLib.dll b/CatiaNetTest/obj/Debug/Interop.BehaviorTypeLib.dll
index 53a533b7f085fbb9fc0fef1f3a575f9157b1c331..e9a698702627fa196cd067ea5a22001f9ca94c0b 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.BehaviorTypeLib.dll and b/CatiaNetTest/obj/Debug/Interop.BehaviorTypeLib.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.CAT3DXml.dll b/CatiaNetTest/obj/Debug/Interop.CAT3DXml.dll
index 16d4ff535f94836a6d7d87e7d7c6119610c7b554..e2c6ee02ab4a54a4a3e77e8b56366981332a0d9c 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.CAT3DXml.dll and b/CatiaNetTest/obj/Debug/Interop.CAT3DXml.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.CATArrangementTypeLib.dll b/CatiaNetTest/obj/Debug/Interop.CATArrangementTypeLib.dll
index c2dbfe57192cdde2cd106c06ce78c4539b3e01fa..0eaed2bd8ea6ec695d38f8e12d5180619f0c591c 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.CATArrangementTypeLib.dll and b/CatiaNetTest/obj/Debug/Interop.CATArrangementTypeLib.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.CATAssemblyTypeLib.dll b/CatiaNetTest/obj/Debug/Interop.CATAssemblyTypeLib.dll
index e82e49dfb1bc94f0ea2e4b6e630093d7b760fd1c..c9294077fe1bb8f5049e5316bfc0cfc4d925f61f 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.CATAssemblyTypeLib.dll and b/CatiaNetTest/obj/Debug/Interop.CATAssemblyTypeLib.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.CATDataExch.dll b/CatiaNetTest/obj/Debug/Interop.CATDataExch.dll
index f05941adfb753d6f60eeae87ca0abec49f1336d3..df97aa7d55ae659095871d039742244ab3ce79a0 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.CATDataExch.dll and b/CatiaNetTest/obj/Debug/Interop.CATDataExch.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.CATEdbTypeLib.dll b/CatiaNetTest/obj/Debug/Interop.CATEdbTypeLib.dll
index 70df1e8df59d8f5687e0182efa2f31f8703562ab..19a1387d01b79ea32a0e55a6790f29eca2718278 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.CATEdbTypeLib.dll and b/CatiaNetTest/obj/Debug/Interop.CATEdbTypeLib.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.CATFunctSystem.dll b/CatiaNetTest/obj/Debug/Interop.CATFunctSystem.dll
index ecc46566715afc0f0107215762a8bdf24afcf280..9cb6155031385aab047ed436c898ed41ac7e4b8a 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.CATFunctSystem.dll and b/CatiaNetTest/obj/Debug/Interop.CATFunctSystem.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.CATHumanPackaging.dll b/CatiaNetTest/obj/Debug/Interop.CATHumanPackaging.dll
index 2c4dca5a973a174369eced5db910af64a04ae803..0d5a10faa8f48f5490d11c3ab1723bfc8efde0c8 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.CATHumanPackaging.dll and b/CatiaNetTest/obj/Debug/Interop.CATHumanPackaging.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.CATIA_APP_ITF.dll b/CatiaNetTest/obj/Debug/Interop.CATIA_APP_ITF.dll
index 97aec8f6d5f2c749e40ab1e95582b05514bf1732..0df8e6911d058bff840f709bb7aa65b8b699d9a4 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.CATIA_APP_ITF.dll and b/CatiaNetTest/obj/Debug/Interop.CATIA_APP_ITF.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.CATIdeSettings.dll b/CatiaNetTest/obj/Debug/Interop.CATIdeSettings.dll
index e1cedab6ec7115ef6d97712600789b61447a44f9..ae98305f5b3d78116b5c6891f2df1d64a90ccaa0 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.CATIdeSettings.dll and b/CatiaNetTest/obj/Debug/Interop.CATIdeSettings.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.CATImm.dll b/CatiaNetTest/obj/Debug/Interop.CATImm.dll
index d0d20084696ce9d7f8a5e071458482a16b2b8027..0270da7eb263525b66265c176d74d73055f7af97 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.CATImm.dll and b/CatiaNetTest/obj/Debug/Interop.CATImm.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.CATInstantCollabItf.dll b/CatiaNetTest/obj/Debug/Interop.CATInstantCollabItf.dll
index a5a0b0c91b61ce12c50792a525503870b20148c8..299645ad6b5c557822b4009402a8030b05c93e51 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.CATInstantCollabItf.dll and b/CatiaNetTest/obj/Debug/Interop.CATInstantCollabItf.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.CATMat.dll b/CatiaNetTest/obj/Debug/Interop.CATMat.dll
index cc55c2edc47015c7a6515d9761a9d9774290d35a..6e58384f63c441aa9b90c989c74793156c4f6eb2 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.CATMat.dll and b/CatiaNetTest/obj/Debug/Interop.CATMat.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.CATMultiCAD.dll b/CatiaNetTest/obj/Debug/Interop.CATMultiCAD.dll
index efdcf50b880fe67b6625f7779bbce07c351c210c..b3891acd82924d3eec605298c0da74ca2064df58 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.CATMultiCAD.dll and b/CatiaNetTest/obj/Debug/Interop.CATMultiCAD.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.CATOBM.dll b/CatiaNetTest/obj/Debug/Interop.CATOBM.dll
index c42fc8b98013ca6c3d7eb48193f31a867e7f447b..30a15f0822e926af79254cbef12d3413898ee20f 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.CATOBM.dll and b/CatiaNetTest/obj/Debug/Interop.CATOBM.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.CATPspPlantShipTypeLib.dll b/CatiaNetTest/obj/Debug/Interop.CATPspPlantShipTypeLib.dll
index df1b174ac335115825fbd1db79a87f21993379c3..2ed47d00335c49a5bc33cc4b9fdd60353ce48543 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.CATPspPlantShipTypeLib.dll and b/CatiaNetTest/obj/Debug/Interop.CATPspPlantShipTypeLib.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.CATRdg.dll b/CatiaNetTest/obj/Debug/Interop.CATRdg.dll
index 6f9d6bea3b84a0031a2b9eb45dd596dbf1ee175d..ca9eaf6b41af9a5168d86b13ee3e163d13a76bd8 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.CATRdg.dll and b/CatiaNetTest/obj/Debug/Interop.CATRdg.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.CATRma.dll b/CatiaNetTest/obj/Debug/Interop.CATRma.dll
index 9130cb182af8ef653accbd2967f9eea88a98899d..5506e053f7b95b88c12639a46c2c3f7af1ec68db 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.CATRma.dll and b/CatiaNetTest/obj/Debug/Interop.CATRma.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.CATRpmReporterTypeLib.dll b/CatiaNetTest/obj/Debug/Interop.CATRpmReporterTypeLib.dll
index 35fdd73aa60036b86b6dadada39a50baedccf33a..89f7bd10366da23b0931fe8a573a908531d595aa 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.CATRpmReporterTypeLib.dll and b/CatiaNetTest/obj/Debug/Interop.CATRpmReporterTypeLib.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.CATRsc.dll b/CatiaNetTest/obj/Debug/Interop.CATRsc.dll
index d548a70ba2b1de0234b0f3f95f399055da1d579d..01a7f8ab1db668c26043978b4323c617134c059a 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.CATRsc.dll and b/CatiaNetTest/obj/Debug/Interop.CATRsc.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.CATSchematicTypeLib.dll b/CatiaNetTest/obj/Debug/Interop.CATSchematicTypeLib.dll
index 9a2be699f9f33432fde890dcc5348e262105b691..bd9f12e2011878a2260a8b018c28f6519c993f3a 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.CATSchematicTypeLib.dll and b/CatiaNetTest/obj/Debug/Interop.CATSchematicTypeLib.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.CATSdeSetting.dll b/CatiaNetTest/obj/Debug/Interop.CATSdeSetting.dll
index e28a6daaf08e50df38d97ecf45fb9b30e0f70b30..8bbfb28afc847451ce44f26c30fb40eb9522a399 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.CATSdeSetting.dll and b/CatiaNetTest/obj/Debug/Interop.CATSdeSetting.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.CATSmInterfacesTypeLib.dll b/CatiaNetTest/obj/Debug/Interop.CATSmInterfacesTypeLib.dll
index ab295c0515a330c9528412ba698cafe17f4a9b33..f26572526d4c6e59ab4b1ca7e1af4f4ca690e6eb 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.CATSmInterfacesTypeLib.dll and b/CatiaNetTest/obj/Debug/Interop.CATSmInterfacesTypeLib.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.CATSmarTeamInteg.dll b/CatiaNetTest/obj/Debug/Interop.CATSmarTeamInteg.dll
index 8f4228f0550bf1bafab78e3a4e365fce44767d1b..86332e92d1b67891d7f7a7721db401cd6f858e55 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.CATSmarTeamInteg.dll and b/CatiaNetTest/obj/Debug/Interop.CATSmarTeamInteg.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.CATStk.dll b/CatiaNetTest/obj/Debug/Interop.CATStk.dll
index 598ed099992e06cf9bcbfbaa1f7b86effd98250b..fd0692b19c43c9853cd39b305b319c3a3b06605c 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.CATStk.dll and b/CatiaNetTest/obj/Debug/Interop.CATStk.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.CATStrSettingsTypeLib.dll b/CatiaNetTest/obj/Debug/Interop.CATStrSettingsTypeLib.dll
index 99e4b96872c062b8d3a05e49f7f4d9b815e6ff24..f1070ef19612e0fcb92408879274f8b30b313a54 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.CATStrSettingsTypeLib.dll and b/CatiaNetTest/obj/Debug/Interop.CATStrSettingsTypeLib.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.CATTooling.dll b/CatiaNetTest/obj/Debug/Interop.CATTooling.dll
index 72ce0adbc4a086cad6741d00a6a7425b051321eb..0312043d2ad0a81255c3091c420200f3d871866d 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.CATTooling.dll and b/CatiaNetTest/obj/Debug/Interop.CATTooling.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.CATV4IInteropTypeLib.dll b/CatiaNetTest/obj/Debug/Interop.CATV4IInteropTypeLib.dll
index 6eafafae472d40a1c840e6ecbe2081563ac3a793..1a6eda18e496c30f7667f28ae98dd3518f293769 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.CATV4IInteropTypeLib.dll and b/CatiaNetTest/obj/Debug/Interop.CATV4IInteropTypeLib.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.ComponentsCatalogsTypeLib.dll b/CatiaNetTest/obj/Debug/Interop.ComponentsCatalogsTypeLib.dll
index 6ad9ca95cc1790d30655f4620d6dd80370ebd02a..9e38e851182a19140a532fadabf820d1cdf181fb 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.ComponentsCatalogsTypeLib.dll and b/CatiaNetTest/obj/Debug/Interop.ComponentsCatalogsTypeLib.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.DNBASY.dll b/CatiaNetTest/obj/Debug/Interop.DNBASY.dll
index 1943488f10bf019123b02b5641198fcb3a3a517f..48756d8021383fd85cd01f7ba4096754b315023a 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.DNBASY.dll and b/CatiaNetTest/obj/Debug/Interop.DNBASY.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.DNBBIW.dll b/CatiaNetTest/obj/Debug/Interop.DNBBIW.dll
index 12f7457aec9f4456ca97d2e6378703f2e67e75ae..7e455b1829e1f91e818c27ece40ddfcdfd49ac70 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.DNBBIW.dll and b/CatiaNetTest/obj/Debug/Interop.DNBBIW.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.DNBD5I.dll b/CatiaNetTest/obj/Debug/Interop.DNBD5I.dll
index 44bef9d7133b880d97d4149aeb51040389eafacf..ba8aab69afb0a7f7475ba3c9d1bb20de8b83e5ad 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.DNBD5I.dll and b/CatiaNetTest/obj/Debug/Interop.DNBD5I.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.DNBDevice.dll b/CatiaNetTest/obj/Debug/Interop.DNBDevice.dll
index 511867a872b403ce5ad17803864fd2f163ec1893..3a7f35f78ee289e819a395b3c7d898bf40b20562 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.DNBDevice.dll and b/CatiaNetTest/obj/Debug/Interop.DNBDevice.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.DNBDpmItf.dll b/CatiaNetTest/obj/Debug/Interop.DNBDpmItf.dll
index d5201183dc7e75b31ede7ac269b5810dac7fee22..bfe8a192dcc542107651684a640ccccebe141fe1 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.DNBDpmItf.dll and b/CatiaNetTest/obj/Debug/Interop.DNBDpmItf.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.DNBFastener.dll b/CatiaNetTest/obj/Debug/Interop.DNBFastener.dll
index f3a9bb9a3fc18cb06ba8e998f89f7b0c566a6a24..c636b70da513416a9ef6d61e7a912dfd731ebdd9 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.DNBFastener.dll and b/CatiaNetTest/obj/Debug/Interop.DNBFastener.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.DNBIPD.dll b/CatiaNetTest/obj/Debug/Interop.DNBIPD.dll
index 5b168f9a1f05249bcedf6e273b81ef39133928a2..41e22357e45b33aeef64aba13d17bb52e2a7c0ac 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.DNBIPD.dll and b/CatiaNetTest/obj/Debug/Interop.DNBIPD.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.DNBIgpResourceProgram.dll b/CatiaNetTest/obj/Debug/Interop.DNBIgpResourceProgram.dll
index 4c4f44181b7d16c068aa0777bc423cb422b3ad70..ddbe2c837d09b3d3f6758a2cce94df57219ea1b4 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.DNBIgpResourceProgram.dll and b/CatiaNetTest/obj/Debug/Interop.DNBIgpResourceProgram.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.DNBIgpTagPath.dll b/CatiaNetTest/obj/Debug/Interop.DNBIgpTagPath.dll
index 2dcaa98582df0c38a8c1d99a1d8ed331c04d8e3d..d6b5c8330b8b97af62d6852966b1f7babd8cf9d5 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.DNBIgpTagPath.dll and b/CatiaNetTest/obj/Debug/Interop.DNBIgpTagPath.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.DNBIgripSim.dll b/CatiaNetTest/obj/Debug/Interop.DNBIgripSim.dll
index 6c73c084d41b17fca2cdf934626043b810f5a1fd..888a482a437aca85656bfb5ce1b4b0586c73e779 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.DNBIgripSim.dll and b/CatiaNetTest/obj/Debug/Interop.DNBIgripSim.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.DNBMHIItf.dll b/CatiaNetTest/obj/Debug/Interop.DNBMHIItf.dll
index 782dbf01b4d871a3726a65511fb6134fff08b8d2..9b8587d9e6ed313f417fcbd815e58275eacdff1f 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.DNBMHIItf.dll and b/CatiaNetTest/obj/Debug/Interop.DNBMHIItf.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.DNBManufacturingLayoutItf.dll b/CatiaNetTest/obj/Debug/Interop.DNBManufacturingLayoutItf.dll
index c02d9b51d87f967166a71ade01986350c673e262..be0fc5df8a5c238456ae83f34b1829ae410776ff 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.DNBManufacturingLayoutItf.dll and b/CatiaNetTest/obj/Debug/Interop.DNBManufacturingLayoutItf.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.DNBPert.dll b/CatiaNetTest/obj/Debug/Interop.DNBPert.dll
index 8e908ff0530ec91ef0d6332f5fd93df32c83fc64..4248c8872dc4690e6e934f0776aea1d0074e523f 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.DNBPert.dll and b/CatiaNetTest/obj/Debug/Interop.DNBPert.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.DNBReporting.dll b/CatiaNetTest/obj/Debug/Interop.DNBReporting.dll
index 32300352686ac99bb4954fce6de9b628f61ceb25..4c89ba69decfd3c2aa7d130cb85b22aac29ef864 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.DNBReporting.dll and b/CatiaNetTest/obj/Debug/Interop.DNBReporting.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.DNBRobot.dll b/CatiaNetTest/obj/Debug/Interop.DNBRobot.dll
index 3f97987b77864b270a8e6e9433656e21bb141381..146f42d23f94cb9c001b33c030c788851a6fa8bc 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.DNBRobot.dll and b/CatiaNetTest/obj/Debug/Interop.DNBRobot.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.DNBSimAct.dll b/CatiaNetTest/obj/Debug/Interop.DNBSimAct.dll
index 7c0d57b7c85ee8076c43898537981f15d51b8aa9..6c5afc248bf0b9c4ccafcca60854b440321f94d2 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.DNBSimAct.dll and b/CatiaNetTest/obj/Debug/Interop.DNBSimAct.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.DNBSimIO.dll b/CatiaNetTest/obj/Debug/Interop.DNBSimIO.dll
index e7547d363956ac2945580f6b95dae3a44f4fb647..ecfedc928bb1fa538f3bc8ec798c0298fec4b30d 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.DNBSimIO.dll and b/CatiaNetTest/obj/Debug/Interop.DNBSimIO.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.DNBSimulation.dll b/CatiaNetTest/obj/Debug/Interop.DNBSimulation.dll
index 1b82f859b9ec61758b6cbbb4b1bf3041aaf92ec9..f09eeae09690cbbe225490f0650cf9a1b65a9aad 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.DNBSimulation.dll and b/CatiaNetTest/obj/Debug/Interop.DNBSimulation.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.DRAFTINGITF.dll b/CatiaNetTest/obj/Debug/Interop.DRAFTINGITF.dll
index c286e475da5bb16006c48542fc28c454f4356c34..b05b6447c22852320d5ef1bcbf7f8930a88bfd7d 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.DRAFTINGITF.dll and b/CatiaNetTest/obj/Debug/Interop.DRAFTINGITF.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.ElecSchematicTypeLib.dll b/CatiaNetTest/obj/Debug/Interop.ElecSchematicTypeLib.dll
index e54f42bdca09cc8408d8a7fea7916bc9a1216862..76a57cc7399e9292eab78bf841f03bb2fceb4743 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.ElecSchematicTypeLib.dll and b/CatiaNetTest/obj/Debug/Interop.ElecSchematicTypeLib.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.FittingTypeLib.dll b/CatiaNetTest/obj/Debug/Interop.FittingTypeLib.dll
index 6462dfb13c6e3467b3f921813c55a7e9e4c4c1af..c7c7f1bcd0bc5aed25b7bedb1488c97862d2812f 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.FittingTypeLib.dll and b/CatiaNetTest/obj/Debug/Interop.FittingTypeLib.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.GenKwe.dll b/CatiaNetTest/obj/Debug/Interop.GenKwe.dll
index 8a21bc6ebcc8259e2a24cbd64abb410315243830..e5bd7026034f961c6dffb820c6482bc9c80aee49 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.GenKwe.dll and b/CatiaNetTest/obj/Debug/Interop.GenKwe.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.HybridShapeTypeLib.dll b/CatiaNetTest/obj/Debug/Interop.HybridShapeTypeLib.dll
index a1291c64339e3357309e7645afd7443549eeaa49..a91c3dcce2df56ac4c4aa64451ff7a971cd5821e 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.HybridShapeTypeLib.dll and b/CatiaNetTest/obj/Debug/Interop.HybridShapeTypeLib.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.INFITF.dll b/CatiaNetTest/obj/Debug/Interop.INFITF.dll
index a62d38d6d080c51a34faed74ae082868ca4ba1b2..a992accac5246ced6fe209a86b573cc97b2e77a7 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.INFITF.dll and b/CatiaNetTest/obj/Debug/Interop.INFITF.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.KinTypeLib.dll b/CatiaNetTest/obj/Debug/Interop.KinTypeLib.dll
index cbdada0a98a591989c628da865f0798b08d1794b..266ff54264c03dfaf37a8c515031139a1f041f3f 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.KinTypeLib.dll and b/CatiaNetTest/obj/Debug/Interop.KinTypeLib.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.KnowledgewareTypeLib.dll b/CatiaNetTest/obj/Debug/Interop.KnowledgewareTypeLib.dll
index 31d5f11fd3a6f35157754ce34df16f1b575df741..72e0cd381b86b506f835e5481bdf16cb7442e5a7 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.KnowledgewareTypeLib.dll and b/CatiaNetTest/obj/Debug/Interop.KnowledgewareTypeLib.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.LAYOUT2DITF.dll b/CatiaNetTest/obj/Debug/Interop.LAYOUT2DITF.dll
index a0d6c77908faca5c1df9f5174c77012123626432..d2220a4177dcf58b09a6b54ac17fb1d9161638ba 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.LAYOUT2DITF.dll and b/CatiaNetTest/obj/Debug/Interop.LAYOUT2DITF.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.MANUFACTURING.dll b/CatiaNetTest/obj/Debug/Interop.MANUFACTURING.dll
index 7ecd17d012cc4432e318458f2cae5493a29a35bf..98f19efe43e06417026f0ef05a32faebfe9d67da 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.MANUFACTURING.dll and b/CatiaNetTest/obj/Debug/Interop.MANUFACTURING.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.MECMOD.dll b/CatiaNetTest/obj/Debug/Interop.MECMOD.dll
index b285027f3b835955def2fc7687e554e407742a43..6ac973178dd6eefc9da7da6fb7e8a4575371380f 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.MECMOD.dll and b/CatiaNetTest/obj/Debug/Interop.MECMOD.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.NavigatorTypeLib.dll b/CatiaNetTest/obj/Debug/Interop.NavigatorTypeLib.dll
index 7e5c8abf756b1624abc63b8f1e5011b7d1301826..1f7cfe457ef6ad4d57300dcf171b22d5c919da57 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.NavigatorTypeLib.dll and b/CatiaNetTest/obj/Debug/Interop.NavigatorTypeLib.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.OSMInterfacesTypeLib.dll b/CatiaNetTest/obj/Debug/Interop.OSMInterfacesTypeLib.dll
index ccb5b500997ddb93a6d0a09d5537cf496ccabcb1..77c70bef60f3178636f1074384657408f6001af0 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.OSMInterfacesTypeLib.dll and b/CatiaNetTest/obj/Debug/Interop.OSMInterfacesTypeLib.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.Office.dll b/CatiaNetTest/obj/Debug/Interop.Office.dll
new file mode 100644
index 0000000000000000000000000000000000000000..77d888d3dcfc4212d8d7eca43c545d5427065b17
Binary files /dev/null and b/CatiaNetTest/obj/Debug/Interop.Office.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.PARTITF.dll b/CatiaNetTest/obj/Debug/Interop.PARTITF.dll
index 5e695ffa642abc82baf579005b73d3b623919fb2..b4ad80c650d0e066415eee8c1e632bbcabc52a2a 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.PARTITF.dll and b/CatiaNetTest/obj/Debug/Interop.PARTITF.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.PCBITF.dll b/CatiaNetTest/obj/Debug/Interop.PCBITF.dll
index 28c2cc1ca25106af2621e204a0edf5c30726a3d0..4ab51ba81b8c2cd243920d2ab1ac6c731fc89f38 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.PCBITF.dll and b/CatiaNetTest/obj/Debug/Interop.PCBITF.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.PPR.dll b/CatiaNetTest/obj/Debug/Interop.PPR.dll
index 8c456ead4bcac1d5518b3d38dc904154456d71ed..e9029d6b1cc76ebd01a0ebe3257d244d37616df7 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.PPR.dll and b/CatiaNetTest/obj/Debug/Interop.PPR.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.PRISMATICMACHINING.dll b/CatiaNetTest/obj/Debug/Interop.PRISMATICMACHINING.dll
index 938990b314c7e04407e27ae299fffc2d36eae3ff..ddb6b8e0a56b7b58de0c4aa2206ade3099202eff 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.PRISMATICMACHINING.dll and b/CatiaNetTest/obj/Debug/Interop.PRISMATICMACHINING.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.PROCESSITF.dll b/CatiaNetTest/obj/Debug/Interop.PROCESSITF.dll
index cc9efcdaf6cd67bfff14576a9ab3c8f5dd0c5628..7bfcce25b052bdd8904273d0a2a1ed26a312125a 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.PROCESSITF.dll and b/CatiaNetTest/obj/Debug/Interop.PROCESSITF.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.ProductStructureTypeLib.dll b/CatiaNetTest/obj/Debug/Interop.ProductStructureTypeLib.dll
index a6404c9ebd65f8ddeff5d001ba0b586dff681e63..fb4d397e1fdeaca45764e10d6fb69af7904bd40a 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.ProductStructureTypeLib.dll and b/CatiaNetTest/obj/Debug/Interop.ProductStructureTypeLib.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.SAMITF.dll b/CatiaNetTest/obj/Debug/Interop.SAMITF.dll
index 2b1aecd6d67ddd411afed78d4ab0d115a05d0815..2d43be471e9079ed8e7fb966bc454da18d315b10 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.SAMITF.dll and b/CatiaNetTest/obj/Debug/Interop.SAMITF.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.SHEITF.dll b/CatiaNetTest/obj/Debug/Interop.SHEITF.dll
index bb40ceaa90607dbc5765fa17ed25945bca6fa9df..6946d7353881bfa25916f84a16d91077bc089f47 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.SHEITF.dll and b/CatiaNetTest/obj/Debug/Interop.SHEITF.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.SIM.dll b/CatiaNetTest/obj/Debug/Interop.SIM.dll
index f4d7188163c6fd62b4a55ec290699b62ae60cbd9..fb740cb6bae16bbdcf52d8d352ffbfe0b7858bb0 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.SIM.dll and b/CatiaNetTest/obj/Debug/Interop.SIM.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.SMTypeLib.dll b/CatiaNetTest/obj/Debug/Interop.SMTypeLib.dll
index c9e24128da63f74a82afc1e9357e4a1d24576aaf..0dce8e79698a2d180da73d38bf6a38a7ebe66244 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.SMTypeLib.dll and b/CatiaNetTest/obj/Debug/Interop.SMTypeLib.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.SPATypeLib.dll b/CatiaNetTest/obj/Debug/Interop.SPATypeLib.dll
index 34230a0a91d5f2433cf38662d96736565020bc8d..9ecfd6ba64a99366f0050b5194c3166992de4337 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.SPATypeLib.dll and b/CatiaNetTest/obj/Debug/Interop.SPATypeLib.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.SURFACEMACHINING.dll b/CatiaNetTest/obj/Debug/Interop.SURFACEMACHINING.dll
index f90582d7a1f8e9146f36cfd986955ead7227d6f2..1d5d82acc0e0e4cb5881080c6792bf309ff14162 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.SURFACEMACHINING.dll and b/CatiaNetTest/obj/Debug/Interop.SURFACEMACHINING.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.SWKHumanModelingItf.dll b/CatiaNetTest/obj/Debug/Interop.SWKHumanModelingItf.dll
index 3335baf5a0f143418ea2beae9560de1548c1dde0..5f713983ef794673a6c44ea642e850dc6e8deaa0 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.SWKHumanModelingItf.dll and b/CatiaNetTest/obj/Debug/Interop.SWKHumanModelingItf.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.SimulationTypeLib.dll b/CatiaNetTest/obj/Debug/Interop.SimulationTypeLib.dll
index a121668cd68e896dbc647f92adce3636a3cbf80c..04a77680f709d89bf25bc8318f77487718b91fc5 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.SimulationTypeLib.dll and b/CatiaNetTest/obj/Debug/Interop.SimulationTypeLib.dll differ
diff --git a/CatiaNetTest/obj/Debug/Interop.StrTypeLib.dll b/CatiaNetTest/obj/Debug/Interop.StrTypeLib.dll
index d1f89638f52734bcb57ab2d4f28cd7eddb06bec7..2e56a2e334f97b5fa49509613ac57e8d4ef1bbb8 100644
Binary files a/CatiaNetTest/obj/Debug/Interop.StrTypeLib.dll and b/CatiaNetTest/obj/Debug/Interop.StrTypeLib.dll differ