Imports System.IO
Imports System.Runtime.InteropServices
Module Example
    <STAThread()> _
    Sub Main()
        Dim objApplication As SolidEdgeFramework.Application = Nothing
        Dim objAssemblyDocument As SolidEdgeAssembly.AssemblyDocument = Nothing
        Dim objStructuralFrames As SolidEdgeAssembly.StructuralFrames = Nothing
        Dim objStructuralFrame As SolidEdgeAssembly.StructuralFrame = Nothing
        Dim objOccurrence As SolidEdgeAssembly.Occurrence = Nothing
        Dim aSections As Array = Array.CreateInstance(GetType(Int32), 1)
        Dim numSections As Integer
        Dim occurrenceId As Integer
        Dim i As Integer
        Try
            OleMessageFilter.Register()
            objApplication = Marshal.GetActiveObject("SolidEdge.Application")
            objAssemblyDocument = objApplication.ActiveDocument
            objStructuralFrames = objAssemblyDocument.StructuralFrames
            ' Loop through all of the structural frames.
            For Each objStructuralFrame In objStructuralFrames
                numSections = 0
                aSections = Array.CreateInstance(GetType(Int32), 1)
                objStructuralFrame.GetSections(numSections, aSections)
                For i = 0 To numSections - 1
                    occurrenceId = 0
                    objOccurrence = Nothing
                    ' Get the occurrence for this section
                    objStructuralFrame.ReturnOccurrenceForGivenSectionID(aSections(i), occurrenceId, objOccurrence)
                Next
            Next
        Catch ex As Exception
            Console.WriteLine(ex.Message)
        Finally
            OleMessageFilter.Revoke()
        End Try
    End Sub
End Module