Imports System.Runtime.InteropServices
Public Class GetFaultsOfBody
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim objApplication As SolidEdgeFramework.Application = Nothing
        Dim objDoc As SolidEdgePart.PartDocument = Nothing
        Dim objModels As SolidEdgePart.Models = Nothing
        Dim objModel As SolidEdgePart.Model = Nothing
        Dim objType As Type = Nothing
        Dim NumPrimaryFaultGeometries As Integer
        Dim PrimaryFaultGeometries(0 To 100) As Object
        Dim NumSecondaryFaultGeometries As Integer
        Dim SecondaryFaultGeometries(0 To 100) As Object
        Dim FaultStates(0 To 100) As Integer
        Dim Position(0 To 100) As Double
        NumPrimaryFaultGeometries = 0
        NumSecondaryFaultGeometries = 0
        Try
            ' Create/get the application with specific settings
            objApplication = Marshal.GetActiveObject("SolidEdge.Application")
            If objApplication Is Nothing Then
                ' Get the type from the Solid Edge ProgID
                objType = Type.GetTypeFromProgID("SolidEdge.Application")
                ' Start Solid Edge
                objApplication = Activator.CreateInstance(objType)
                ' Make Solid Edge visible
                objApplication.Visible = True
            End If
            ' Get document
            objDoc = objApplication.ActiveDocument
            ' get the models collection
            objModels = objDoc.Models()
            objModel = objModels.Item(1)
            Call objModel.GetFaultsOfBody(NumPrimaryFaultGeometries,
                                     PrimaryFaultGeometries,
                                    NumSecondaryFaultGeometries,
                                    SecondaryFaultGeometries,
                                    FaultStates,
                                    Position)
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
    End Sub
End Class