Imports System
Imports System.Runtime.InteropServices
Namespace Examples
Friend Class Program
<STAThread>
Shared Sub Main(ByVal args() As String)
Dim application As SolidEdgeFramework.Application = Nothing
Dim document As SolidEdgeFramework.SolidEdgeDocument = Nothing
Dim variables As SolidEdgeFramework.Variables = Nothing
Dim variableList As SolidEdgeFramework.VariableList = Nothing
Try
' See "Handling 'Application is Busy' and 'Call was Rejected By Callee' errors" topic.
OleMessageFilter.Register()
' Attempt to connect to a running instance of Solid Edge.
application = DirectCast(Marshal.GetActiveObject("SolidEdge.Application"), SolidEdgeFramework.Application)
document = CType(application.ActiveDocument, SolidEdgeFramework.SolidEdgeDocument)
variables = CType(document.Variables, SolidEdgeFramework.Variables)
Dim pFindCriterium As String = "*"
Dim NamedBy As Object = SolidEdgeConstants.VariableNameBy.seVariableNameByBoth
Dim VarType As Object = SolidEdgeConstants.VariableVarType.SeVariableVarTypeBoth
Dim CaseInsensitive As Object = False
' Execute query.
variableList = CType(variables.Query(pFindCriterium, NamedBy, VarType, CaseInsensitive), SolidEdgeFramework.VariableList)
For i As Integer = 1 To variableList.Count
Dim item = variableList.Item(i)
' Determine the runtime type of the object.
Dim itemType = item.GetType()
Dim objectType = CType(itemType.InvokeMember("Type", System.Reflection.BindingFlags.GetProperty, Nothing, item, Nothing), SolidEdgeFramework.ObjectType)
Select Case objectType
Case SolidEdgeFramework.ObjectType.igDimension
Dim dimension = CType(item, SolidEdgeFrameworkSupport.Dimension)
Case SolidEdgeFramework.ObjectType.igVariable
Dim variable = CType(item, SolidEdgeFramework.variable)
End Select
Next i
Catch ex As System.Exception
Console.WriteLine(ex)
Finally
OleMessageFilter.Unregister()
End Try
End Sub
End Class
End Namespace
using System;
using System.Runtime.InteropServices;
namespace Examples
{
class Program
{
[STAThread]
static void Main(string[] args)
{
SolidEdgeFramework.Application application = null;
SolidEdgeFramework.SolidEdgeDocument document = null;
SolidEdgeFramework.Variables variables = null;
SolidEdgeFramework.VariableList variableList = null;
try
{
// See "Handling 'Application is Busy' and 'Call was Rejected By Callee' errors" topic.
OleMessageFilter.Register();
// Attempt to connect to a running instance of Solid Edge.
application = (SolidEdgeFramework.Application)Marshal.GetActiveObject("SolidEdge.Application");
document = (SolidEdgeFramework.SolidEdgeDocument)application.ActiveDocument;
variables = (SolidEdgeFramework.Variables)document.Variables;
string pFindCriterium = "*";
object NamedBy = SolidEdgeConstants.VariableNameBy.seVariableNameByBoth;
object VarType = SolidEdgeConstants.VariableVarType.SeVariableVarTypeBoth;
object CaseInsensitive = false;
// Execute query.
variableList = (SolidEdgeFramework.VariableList)variables.Query(pFindCriterium, NamedBy, VarType, CaseInsensitive);
for (int i = 1; i <= variableList.Count; i++)
{
var item = variableList.Item(i);
// Determine the runtime type of the object.
var itemType = item.GetType();
var objectType = (SolidEdgeFramework.ObjectType)itemType.InvokeMember("Type", System.Reflection.BindingFlags.GetProperty, null, item, null);
switch (objectType)
{
case SolidEdgeFramework.ObjectType.igDimension:
var dimension = (SolidEdgeFrameworkSupport.Dimension)item;
break;
case SolidEdgeFramework.ObjectType.igVariable:
var variable = (SolidEdgeFramework.variable)item;
break;
}
}
}
catch (System.Exception ex)
{
Console.WriteLine(ex);
}
finally
{
OleMessageFilter.Unregister();
}
}
}
}