Imports System.Runtime.InteropServices
Public Class VirtualComponentOccurrences
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim objApplication As SolidEdgeFramework.Application = Nothing
Dim objTopAsmDoc As SolidEdgeAssembly.AssemblyDocument = Nothing
Dim documents As SolidEdgeFramework.Documents = Nothing
Dim objType As Type = Nothing
Dim objVCOccurs0 As SolidEdgeAssembly.VirtualComponentOccurrences
Dim objVCOccurs1 As SolidEdgeAssembly.VirtualComponentOccurrences
Dim objVCOccurs2 As SolidEdgeAssembly.VirtualComponentOccurrences
Dim objVCOccurs3 As SolidEdgeAssembly.VirtualComponentOccurrences
Dim objVCOccurs4 As SolidEdgeAssembly.VirtualComponentOccurrences
Dim objVCOccur1 As SolidEdgeAssembly.VirtualComponentOccurrence
Dim objVCOccur2 As SolidEdgeAssembly.VirtualComponentOccurrence
Dim objVCOccur3 As SolidEdgeAssembly.VirtualComponentOccurrence
Dim objVCOccur4 As SolidEdgeAssembly.VirtualComponentOccurrence
Dim objVirtComp1 As SolidEdgeAssembly.VirtualComponent
Dim objVirtComp2 As SolidEdgeAssembly.VirtualComponent
Dim objVirtComp3 As SolidEdgeAssembly.VirtualComponent
Dim objVirtComp4 As SolidEdgeAssembly.VirtualComponent
Dim VirtCompType1 As SolidEdgeConstants.VirtualComponentTypeConstants
'Dim VirtCompType2 As SolidEdgeConstants.VirtualComponentTypeConstants
Dim VirtCompType3 As SolidEdgeConstants.VirtualComponentTypeConstants
Dim VirtCompType4 As SolidEdgeConstants.VirtualComponentTypeConstants
Dim VirtCompStatusConst As SolidEdgeAssembly.VirtualComponentStatusConstants
Dim objProperties0 As Object
Dim objProperties1 As Object
Dim VirtCompName1 As String
'Dim VirtCompName2 As String
Dim VirtCompName3 As String
Dim VirtCompName4 As String
Dim lngCount0 As Long
Dim lngCount1 As Long
Dim lngCount2 As Long
Dim lngCount3 As Long
Try
' Create/get the application with specific settings
objApplication = Marshal.GetActiveObject("SolidEdge.Application")
' Get a reference to the documents collection.
documents = objApplication.Documents
objTopAsmDoc = CType(documents.Add("SolidEdge.AssemblyDocument"), SolidEdgeAssembly.AssemblyDocument)
'Get the root virtual component occurrences collection from the top assembly doc.
objVCOccurs0 = Nothing
objVCOccurs0 = objTopAsmDoc.VirtualComponentOccurrences
lngCount0 = -1
lngCount0 = objVCOccurs0.Count
'Add 1st new virtual component occurrence, and hence Alfa virtual component.
objVCOccur1 = Nothing
objVCOccur1 = objVCOccurs0.Add("VirtCompAlfa", SolidEdgeAssembly.VirtualComponentTypeConstants.seVirtualComponentType_Assembly, VirtCompStatusConst)
lngCount1 = -1
lngCount1 = objVCOccurs0.Count
'Add 2nd new virtual component occurrence, of same Alfa virtual component.
objVCOccur2 = Nothing
objVCOccur2 = objVCOccurs0.Add("VirtCompAlfa", SolidEdgeAssembly.VirtualComponentTypeConstants.seVirtualComponentType_Assembly, VirtCompStatusConst)
lngCount2 = -1
lngCount2 = objVCOccurs0.Count
'Get Alfa virtual component from the 1st virtual component occurrence.
objVirtComp1 = Nothing
objVirtComp1 = objVCOccur1.VirtualComponent
'Get virtual component type from Alfa virtual component.
VirtCompType1 = SolidEdgeConstants.VirtualComponentTypeConstants.seVirtualComponentType_Unknown
VirtCompType1 = objVirtComp1.VirtualComponentType
'Get virtual component name from Alfa virtual component.
VirtCompName1 = ""
VirtCompName1 = objVirtComp1.Name
'Get 1st virtual component occurrences collection from Alfa virtual component.
objVCOccurs1 = Nothing
objVCOccurs1 = objVirtComp1.VirtualComponentOccurrences
'Add 3rd new virtual component occurrence, of Beta virtual component.
objVCOccur3 = Nothing
objVCOccur3 = objVCOccurs1.Add("VirtCompBeta", SolidEdgeAssembly.VirtualComponentTypeConstants.seVirtualComponentType_Assembly, VirtCompStatusConst)
'Get Beta virtual component from the 3rd virtual component occurrence.
objVirtComp3 = Nothing
objVirtComp3 = objVCOccur3.VirtualComponent
'Get virtual component type from Beta virtual component.
VirtCompType3 = SolidEdgeConstants.VirtualComponentTypeConstants.seVirtualComponentType_Unknown
VirtCompType3 = objVirtComp3.VirtualComponentType
'Get virtual component name from Beta virtual component.
VirtCompName3 = ""
VirtCompName3 = objVirtComp3.Name
'Add 4th new virtual component occurrence, of Gamma virtual component.
objVCOccur4 = Nothing
objVCOccur4 = objVCOccurs0.Add("VirtCompGamma", SolidEdgeAssembly.VirtualComponentTypeConstants.seVirtualComponentType_Assembly, VirtCompStatusConst)
'Get Gamma virtual component from the 4th virtual component occurrence.
objVirtComp4 = Nothing
objVirtComp4 = objVCOccur4.VirtualComponent
'Get virtual component type from Gamma virtual component.
VirtCompType4 = SolidEdgeConstants.VirtualComponentTypeConstants.seVirtualComponentType_Unknown
VirtCompType4 = objVirtComp4.VirtualComponentType
'Get virtual component name from Gamma virtual component.
VirtCompName4 = ""
VirtCompName4 = objVirtComp4.Name
'Move 3rd virtual component occurrence from Beta VC to Gamma VC.
Call objVCOccur3.MoveTo(objVirtComp4)
lngCount3 = -1
lngCount3 = objVCOccurs1.Count
'Get properties from top assembly document.
'Set objProperties0 = Nothing
'Set objProperties0 = objTopAsmDoc.Properties
'Get properties from Alfa virtual component.
objProperties1 = Nothing
objProperties1 = objVirtComp1.Properties
'Publish all virtual components in this assembly document.
'objTopAsmDoc.PublishVirtualComponents()
' Release all the objects
objProperties0 = Nothing
objProperties1 = Nothing
objVirtComp4 = Nothing
objVirtComp3 = Nothing
objVirtComp2 = Nothing
objVirtComp1 = Nothing
objVCOccur4 = Nothing
objVCOccur3 = Nothing
objVCOccur2 = Nothing
objVCOccur1 = Nothing
objVCOccurs4 = Nothing
objVCOccurs3 = Nothing
objVCOccurs2 = Nothing
objVCOccurs1 = Nothing
objVCOccurs0 = Nothing
objTopAsmDoc = Nothing
'Set ObjApp = Nothing
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
End Class