Solid Edge ST7 SDK
Determining Document Type

Since all Solid Edge Documents implement the SolidEdgeFramework.SolidEdgeDocument interface, we can use the interface to query generic information about the document before performing specific document environment routines.

See Handling 'Application is Busy' and 'Call was Rejected By Callee' errors for information regarding the use of OleMessageFilter.
Determining Document Type from Visual Basic .NET
Copy Code
Imports System.Runtime.InteropServices

Module Program
    <STAThread()> _
    Sub Main()
        Dim objApplication As SolidEdgeFramework.Application = Nothing
        Dim objDocument As SolidEdgeFramework.SolidEdgeDocument = Nothing

        Try
            OleMessageFilter.Register()

            ' Connect to a running instance of Solid Edge.
            objApplication = Marshal.GetActiveObject("SolidEdge.Application")

            ' Get a reference to the active document.
            objDocument = objApplication.ActiveDocument

            ' Using Type property, determine document type.
            Select Case objDocument.Type
                Case SolidEdgeFramework.DocumentTypeConstants.igAssemblyDocument
                    Console.WriteLine("Assembly Document")
                Case SolidEdgeFramework.DocumentTypeConstants.igDraftDocument
                    Console.WriteLine("Draft Document")
                Case SolidEdgeFramework.DocumentTypeConstants.igPartDocument
                    Console.WriteLine("Part Document")
                Case SolidEdgeFramework.DocumentTypeConstants.igSheetMetalDocument
                    Console.WriteLine("SheetMetal Document")
                Case SolidEdgeFramework.DocumentTypeConstants.igUnknownDocument
                    Console.WriteLine("Unknown Document")
            End Select
        Catch ex As Exception
            Console.WriteLine(ex.Message)
        Finally
            OleMessageFilter.Revoke()
        End Try
    End Sub
End Module
Determining Document Type from C#
Copy Code
using Examples;
using System;
using System.Runtime.InteropServices;

namespace SolidEdge.SDK
{
    class Program
    {
        [STAThread]
        static void Main(string[] args)
        {
            SolidEdgeFramework.Application application = null;
            SolidEdgeFramework.SolidEdgeDocument document = null;

            try
            {
                OleMessageFilter.Register();

                // Connect to a running instance of Solid Edge.
                application = (SolidEdgeFramework.Application)
                    Marshal.GetActiveObject("SolidEdge.Application");

                // Get a reference to the active document.
                document = (SolidEdgeFramework.SolidEdgeDocument)
                    application.ActiveDocument;

                // Using Type property, determine document type.
                switch (document.Type)
                {
                    case SolidEdgeFramework.DocumentTypeConstants.igAssemblyDocument:
                        Console.WriteLine("Assembly Document");
                        break;
                    case SolidEdgeFramework.DocumentTypeConstants.igDraftDocument:
                        Console.WriteLine("Draft Document");
                        break;
                    case SolidEdgeFramework.DocumentTypeConstants.igPartDocument:
                        Console.WriteLine("Part Document");
                        break;
                    case SolidEdgeFramework.DocumentTypeConstants.igSheetMetalDocument:
                        Console.WriteLine("SheetMetal Document");
                        break;
                    case SolidEdgeFramework.DocumentTypeConstants.igUnknownDocument:
                        Console.WriteLine("Unknown Document");
                        break;
                    case SolidEdgeFramework.DocumentTypeConstants.igWeldmentAssemblyDocument:
                        Console.WriteLine("Weldment Assembly Document");
                        break;
                    case SolidEdgeFramework.DocumentTypeConstants.igWeldmentDocument:
                        Console.WriteLine("Weldment Document");
                        break;
                }
            }
            catch (System.Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                OleMessageFilter.Revoke();
            }
        }
    }
}