Imports System.Runtime.InteropServices
Imports System.IO
Module Module1
Sub Main()
Dim objSEApplication As SolidEdgeFramework.Application = Nothing
Dim objAsmDoc As SolidEdgeAssembly.AssemblyDocument = Nothing
Dim AsmProperties As SolidEdgeAssembly.AssemblyProperties = Nothing
Dim AsmProperty As SolidEdgeAssembly.AssemblyProperty = Nothing
Dim PropertyName As String
Dim Name1 As String = ""
Dim Name2 As String = ""
Dim Name3 As String = ""
Dim NumItems As Long
Dim ItemType As Object
Dim ItemValue As Object
Dim CustomOccPropsToDelete(0 To 1) As String
Dim SEInstallDir As DirectoryInfo
Try
Try
objSEApplication = Marshal.GetActiveObject("solidedge.application")
Catch ex As Exception
Console.WriteLine("Starting Solid Edge")
objSEApplication = Activator.CreateInstance(Type.GetTypeFromProgID("SolidEdge.Application"))
objSEApplication.DisplayAlerts = True
objSEApplication.Visible = True
End Try
SEInstallDir = GetTrainingFolder()
objAsmDoc = objSEApplication.Documents.Open(SEInstallDir.FullName + "\carrier.asm")
AsmProperties = objAsmDoc.AssemblyProperties
PropertyName = "Testing1"
AsmProperty = AsmProperties.AddProperty(PropertyName)
Call AsmProperty.AddPropertyItem("Item1Int", SolidEdgePart.PropertyTypeConstants.sePropertyTypeInteger, 2)
Call AsmProperty.AddPropertyItem("Item2Double", SolidEdgePart.PropertyTypeConstants.sePropertyTypeDouble, 3)
Call AsmProperty.AddPropertyItem("Item3String", SolidEdgePart.PropertyTypeConstants.sePropertyTypeString, "Project")
NumItems = AsmProperty.Count
Name1 = AsmProperty.GetNameByIndex(1)
Name3 = AsmProperty.GetNameByIndex(3)
Name2 = AsmProperty.GetNameByIndex(2)
ItemType = AsmProperty.GetItemType(Name3)
ItemValue = AsmProperty.GetItemValue(Name3)
Call AsmProperty.UpdateItemValue(Name2, SolidEdgePart.PropertyTypeConstants.sePropertyTypeDouble, 3)
Call AsmProperty.DeletePropertyItem(Name3)
Call AsmProperty.DeleteAllItems()
CustomOccPropsToDelete.SetValue("Name1", 0)
CustomOccPropsToDelete.SetValue("Name2", 1)
AsmProperties.LoadCustomOccurrenceProperties()
AsmProperties.DeleteCustomOccurrenceProperties(CustomOccPropsToDelete)
Catch ex As Exception
Console.WriteLine(ex.ToString)
End Try
End Sub
Function GetTrainingFolder() As DirectoryInfo
Dim objInstallData As SEInstallDataLib.SEInstallData = Nothing
Dim objInstallFolder As DirectoryInfo = Nothing
Dim objTrainingFolder As DirectoryInfo = Nothing
Try
objInstallData = New SEInstallDataLib.SEInstallData
objInstallFolder = New DirectoryInfo(objInstallData.GetInstalledPath())
objTrainingFolder = New DirectoryInfo(Path.Combine(objInstallFolder.Parent.FullName, "Training"))
Catch
Finally
If Not (objInstallData Is Nothing) Then
Marshal.FinalReleaseComObject(objInstallData)
objInstallData = Nothing
End If
End Try
Return objTrainingFolder
End Function
End Module