Solid Edge Assembly Type Library
Query Object
Members 
Description
Represents an instance of a Query on an associated AssemblyDocument object.
Object Model
Query ObjectApplication ObjectSelectSet CollectionAddIns CollectionApplication ObjectApplicationEvents ObjectApplicationV8DocumentOpenEvent ObjectApplicationWindowEvents ObjectBeforeFileSaveAsEvents ObjectCommand ObjectCustomization ObjectDocuments CollectionEnvironments CollectionFeatureLibraryEvents ObjectFeatureSelectedFromPFEvents ObjectFileUIEvents ObjectMatTable ObjectInsight ObjectNewFileUIEvents ObjectApplication ObjectSEECEvents ObjectSESPEvents ObjectShortcutMenuEvents ObjectSolidEdgeInsightXT ObjectSolidEdgeTCE ObjectWindows Collection
Remarks
It includes properties and methods that allow you to establish criteria and locate documents based on those criteria.
Example
Imports System.IO
Imports System.Runtime.InteropServices

Public Class frmAssemblyQuery
    Sub OpenSolidEdgeDocument(ByVal objApplication As SolidEdgeFramework.Application, ByVal path As String)
        Dim objDocuments As SolidEdgeFramework.Documents
        Dim objDocument As SolidEdgeFramework.SolidEdgeDocument
        Dim objAssemblyDocument As SolidEdgeAssembly.AssemblyDocument
        Dim objDraftDocument As SolidEdgeDraft.DraftDocument
        Dim objPartDocument As SolidEdgePart.PartDocument
        Dim objSheetMetalDocument As SolidEdgePart.SheetMetalDocument
        Dim objWeldmentDocument As SolidEdgePart.WeldmentDocument

        objDocuments = objApplication.Documents
        objDocument = objDocuments.Open(path)

        Select Case objDocument.Type
            Case SolidEdgeFramework.DocumentTypeConstants.igAssemblyDocument
                objAssemblyDocument = objDocument
            Case SolidEdgeFramework.DocumentTypeConstants.igDraftDocument
                objDraftDocument = objDocument
            Case SolidEdgeFramework.DocumentTypeConstants.igPartDocument
                objPartDocument = objDocument
            Case SolidEdgeFramework.DocumentTypeConstants.igSheetMetalDocument
                objSheetMetalDocument = objDocument
            Case SolidEdgeFramework.DocumentTypeConstants.igUnknownDocument
                ' Handle case
            Case SolidEdgeFramework.DocumentTypeConstants.igWeldmentAssemblyDocument
                ' Weldment Assembly Document
            Case SolidEdgeFramework.DocumentTypeConstants.igWeldmentDocument
                objWeldmentDocument = objDocument
        End Select
    End Sub


    Function GetTrainingFolder() As DirectoryInfo
        Dim objInstallData As SEInstallDataLib.SEInstallData = Nothing
        Dim objInstallFolder As DirectoryInfo = Nothing
        Dim objTrainingFolder As DirectoryInfo = Nothing

        Try
            objInstallData = New SEInstallDataLib.SEInstallData
            objInstallFolder = New DirectoryInfo(objInstallData.GetInstalledPath())
            objTrainingFolder = New DirectoryInfo(Path.Combine(objInstallFolder.Parent.FullName, "Training"))
        Catch
        Finally
            If Not (objInstallData Is Nothing) Then
                Marshal.FinalReleaseComObject(objInstallData)
                objInstallData = Nothing
            End If
        End Try

        Return objTrainingFolder
    End Function

    Private Sub AssemblyQuery_Click(sender As Object, e As EventArgs) Handles AssemblyQuery.Click
        Dim objTrainingFolder As DirectoryInfo
        Dim objApplication As SolidEdgeFramework.Application
        Dim objQueries As SolidEdgeAssembly.Queries
        Dim objQuery As SolidEdgeAssembly.Query
        Dim objDoc As SolidEdgeAssembly.AssemblyDocument
        Dim objSelectSet As SolidEdgeFramework.SelectSet
        Dim str1 As String

        Try
            'Get Solid Edge Application
            objApplication = Marshal.GetActiveObject("SolidEdge.Application")
            'Get Training Folder
            objTrainingFolder = GetTrainingFolder()
            'Open Coffee Pot.asm
            OpenSolidEdgeDocument(objApplication, Path.Combine(objTrainingFolder.FullName, "Coffee Pot.asm"))
            objDoc = objApplication.ActiveDocument
            'Get existing queries (if any)
            objQueries = objDoc.Queries
            If objQueries.Count = 0 Then
                'Add new query
                objQuery = objQueries.Add("Query1")
            Else
                'Update existing query
                objQuery = objQueries.Item(1)
                'Clear all criteria's of above query
                objQuery.RemoveAllCriteria()
            End If
            'Specify scope for query
            objQuery.Scope = SolidEdgeAssembly.QueryScopeConstants.seQueryScopeAllParts
            objQuery.SearchSubassemblies = True
            'String to be set as "Value"
            str1 = "strainer"
            'Add Criteria to above query
            objQuery.AddCriteria(SolidEdgeAssembly.QueryPropertyConstants.seQueryPropertyName, "Name", SolidEdgeAssembly.QueryConditionConstants.seQueryConditionContains, str1)
            'Below Statement will execute Query 1 from assembly document
            objQuery = objQueries.Item(1)
            'To check the count from above statement use "MatchesCount"
            MsgBox(objQuery.MatchesCount.ToString)
            'Use below statement to put these selected objects on the select set.
            objSelectSet = objDoc.SelectSet

        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
    End Sub
End Class
using System.Windows.Forms;
using System.IO;
using System.Runtime.InteropServices;

public class frmAssemblyQuery
{
    public void OpenSolidEdgeDocument(SolidEdgeFramework.Application objApplication, string path)
    {
        SolidEdgeFramework.Documents objDocuments = null;
        SolidEdgeFramework.SolidEdgeDocument objDocument = null;
        SolidEdgeAssembly.AssemblyDocument objAssemblyDocument = null;
        SolidEdgeDraft.DraftDocument objDraftDocument = null;
        SolidEdgePart.PartDocument objPartDocument = null;
        SolidEdgePart.SheetMetalDocument objSheetMetalDocument = null;
        SolidEdgePart.WeldmentDocument objWeldmentDocument = null;

        objDocuments = objApplication.Documents;
        objDocument = objDocuments.Open(path);

        if (objDocument.Type == SolidEdgeFramework.DocumentTypeConstants.igAssemblyDocument)
        {
            objAssemblyDocument = objDocument;
        }
        else if (objDocument.Type == SolidEdgeFramework.DocumentTypeConstants.igDraftDocument)
        {
            objDraftDocument = objDocument;
        }
        else if (objDocument.Type == SolidEdgeFramework.DocumentTypeConstants.igPartDocument)
        {
            objPartDocument = objDocument;
        }
        else if (objDocument.Type == SolidEdgeFramework.DocumentTypeConstants.igSheetMetalDocument)
        {
            objSheetMetalDocument = objDocument;
        }
        else if (objDocument.Type == SolidEdgeFramework.DocumentTypeConstants.igUnknownDocument)
        {
            // Handle case
        }
        else if (objDocument.Type == SolidEdgeFramework.DocumentTypeConstants.igWeldmentAssemblyDocument)
        {
            // Weldment Assembly Document
        }
        else if (objDocument.Type == SolidEdgeFramework.DocumentTypeConstants.igWeldmentDocument)
        {
            objWeldmentDocument = objDocument;
        }
    }


    public DirectoryInfo GetTrainingFolder()
    {
        SEInstallDataLib.SEInstallData objInstallData = null;
        DirectoryInfo objInstallFolder = null;
        DirectoryInfo objTrainingFolder = null;

        try
        {
            objInstallData = new SEInstallDataLib.SEInstallData();
            objInstallFolder = new DirectoryInfo(objInstallData.GetInstalledPath());
            objTrainingFolder = new DirectoryInfo(Path.Combine(objInstallFolder.Parent.FullName, "Training"));
        }
        catch
        {
        }
        finally
        {
            if (objInstallData != null)
            {
                Marshal.FinalReleaseComObject(objInstallData);
                objInstallData = null;
            }
        }

        return objTrainingFolder;
    }

    private void AssemblyQuery_Click(object sender, EventArgs e)
    {
        DirectoryInfo objTrainingFolder = null;
        SolidEdgeFramework.Application objApplication = null;
        SolidEdgeAssembly.Queries objQueries = null;
        SolidEdgeAssembly.Query objQuery = null;
        SolidEdgeAssembly.AssemblyDocument objDoc = null;
        SolidEdgeFramework.SelectSet objSelectSet = null;
        string str1 = null;

        try
        {
            //Get Solid Edge Application
            objApplication = (SolidEdgeFramework.Application)Marshal.GetActiveObject("SolidEdge.Application");
            //Get Training Folder
            objTrainingFolder = GetTrainingFolder();
            //Open Coffee Pot.asm
            OpenSolidEdgeDocument(objApplication, Path.Combine(objTrainingFolder.FullName, "Coffee Pot.asm"));
            objDoc = objApplication.ActiveDocument;
            //Get existing queries (if any)
            objQueries = objDoc.Queries;
            if (objQueries.Count == 0)
            {
                //Add new query
                objQuery = objQueries.Add("Query1");
            }
            else
            {
                //Update existing query
                objQuery = objQueries.Item(1);
                //Clear all criteria's of above query
                objQuery.RemoveAllCriteria();
            }
            //Specify scope for query
            objQuery.Scope = SolidEdgeAssembly.QueryScopeConstants.seQueryScopeAllParts;
            objQuery.SearchSubassemblies = true;
            //String to be set as "Value"
            str1 = "strainer";
            //Add Criteria to above query
            objQuery.AddCriteria(SolidEdgeAssembly.QueryPropertyConstants.seQueryPropertyName, "Name", SolidEdgeAssembly.QueryConditionConstants.seQueryConditionContains, str1);
            //Below Statement will execute Query 1 from assembly document
            objQuery = objQueries.Item(1);
            //To check the count from above statement use "MatchesCount"
            MessageBox.Show(objQuery.MatchesCount.ToString());
            //Use below statement to put these selected objects on the select set.
            objSelectSet = objDoc.SelectSet;

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }

    public frmAssemblyQuery()
    {
        SubscribeToEvents();
    }

    private bool EventsSubscribed = false;
    private void SubscribeToEvents()
    {
        if (EventsSubscribed)
            return;
        else
            EventsSubscribed = true;

        AssemblyQuery.Click += AssemblyQuery_Click;
    }

}
See Also

Query Members