Imports System.IO
Imports System.Runtime.InteropServices
Module Example
    <STAThread()> _
    Sub Main()
        Dim objApplication As SolidEdgeFramework.Application = Nothing
        Dim objPartDocument As SolidEdgePart.PartDocument = Nothing
        Dim objFamilyMembers As SolidEdgePart.FamilyMembers = Nothing
        Dim objFamilyMember1 As SolidEdgePart.FamilyMember = Nothing
        Dim objFamilyMember2 As SolidEdgePart.FamilyMember = Nothing
        Dim bInsertBefore As Boolean
        Try
            OleMessageFilter.Register()
            ' Connect to Solid Edge
            objApplication = Marshal.GetActiveObject("SolidEdge.Application")
            objApplication.Visible = True
            objPartDocument = objApplication.ActiveDocument
            objFamilyMembers = objPartDocument.FamilyMembers
            objFamilyMember1 = objFamilyMembers.Item(1)
            objFamilyMember2 = objFamilyMembers.Item(2)
            bInsertBefore = True
            ' Move element 2 before element 1
            objFamilyMember2.Reorder(objFamilyMember1, bInsertBefore)
            bInsertBefore = False
            ' Move element 1 back down to element 2 - restoring original order.
            objFamilyMember2.Reorder(objFamilyMember1, bInsertBefore)
        Catch ex As Exception
            Console.WriteLine(ex.Message)
        Finally
            OleMessageFilter.Revoke()
        End Try
    End Sub
End Module