ArcGIS Pro 3.5 API Reference Guide
ArcGIS.Desktop.Mapping Namespace / DefinitionQuery Class / DefinitionQuery Constructor / DefinitionQuery Constructor(String,String)
The name to assign to the definition query.
The where clause for the definition query.
Example

In This Topic
    DefinitionQuery Constructor(String,String)
    In This Topic
    Creates a new instance of the DefinitionQuery object.
    Syntax
    public DefinitionQuery( 
       string name,
       string whereClause
    )
    Public Function New( _
       ByVal name As String, _
       ByVal whereClause As String _
    )

    Parameters

    name
    The name to assign to the definition query.
    whereClause
    The where clause for the definition query.
    Remarks
    Leave the name blank and a unique one will be assigned when the definition query is inserted into the respective layer
    Example
    Querying a feature layer with a spatial filter
              // Note: Run within QueuedTask.Run
              // Set the spatial filter geometry
    
              //Get the geometry from the selected features in the feature layer
              var spatialClauseGeom = spatialDefnLayer.GetFeatureOutline(MapView.Active, FeatureOutlineType.Selected);
    
    DefinitionQuery definitionQuery = new DefinitionQuery
    {
      WhereClause = whereClause,
      Name = $"{layerToQuery.Name}"
    };
    //Setting the spatial filter to the Definition Query
    if (definitionQuery.CanSetFilterGeometry(spatialClauseGeom))
    {
      definitionQuery.SetFilterGeometry(spatialClauseGeom);
    }
    
    layerToQuery.InsertDefinitionQuery(definitionQuery);
    layerToQuery.SetActiveDefinitionQuery(definitionQuery.Name);
    Apply A Definition Query Filter to a Feature Layer
          var us_parks = map.GetLayersAsFlattenedList()
          .OfType<FeatureLayer>().First(l => l.Name == "USNationalParks");
    
          QueuedTask.Run(() =>
    {
      var def_query = new DefinitionQuery("CaliforniaParks",
                            "STATE_ABBR = 'CA'");
    
              us_parks.InsertDefinitionQuery(def_query);
              //Set it active
              us_parks.SetActiveDefinitionQuery(def_query.Name);
    
              //or....also - set it active when it is inserted
              //us_parks.InsertDefinitionQuery(def_query, true);
          });
    Apply A Definition Query Filter With a Filter Geometry to a Feature Layer
        var greatLakes = map.GetLayersAsFlattenedList()
                    .OfType<FeatureLayer>().First(l => l.Name == "Great Lakes");
        var usa_states = map.GetLayersAsFlattenedList()
        .OfType<FeatureLayer>().First(l => l.Name == "US_States");
    
        QueuedTask.Run(() =>
        {
    //name must be unique
            var def_query = new DefinitionQuery("GreatLakes",
                                                        "NAME in ('Huron','Michigan','Erie')");
    
            //create a filter geometry - in this example we will use the outline geometry
            //of all visible features from a us states layer...the filter geometry will be
    //intersected with the layer feature geometry when added to the def query
            var filter_geom = usa_states.GetFeatureOutline(mv, FeatureOutlineType.Visible);
            //other options...
            //var filter_geom = usa_states.GetFeatureOutline(mv, FeatureOutlineType.All);
            //var filter_geom = usa_states.GetFeatureOutline(mv, FeatureOutlineType.Selected);
    
            //Geometry must have a valid SR and be point, multi-point, line, or poly
            if (def_query.CanSetFilterGeometry(filter_geom))
    {
      def_query.SetFilterGeometry(filter_geom);
    }
    
            //Apply the def query
            greatLakes.InsertDefinitionQuery(def_query);
            //Set it active
            greatLakes.SetActiveDefinitionQuery(def_query.Name);
    
            //or....also - set it active when it is inserted
            //greatLakes.InsertDefinitionQuery(def_query, true);
        });
    Create a stream layer with a definition query
    //Must be on the QueuedTask
    var url = "https://geoeventsample1.esri.com:6443/arcgis/rest/services/AirportTraffics/StreamServer";
    var lyrCreateParam = new FeatureLayerCreationParams(new Uri(url))
    {
      IsVisible = true,
      //At 2.x - DefinitionFilter = new CIMDefinitionFilter()
      //{
      //  DefinitionExpression = "RWY = '29L'",
      //  Name = "Runway"
      //}
      DefinitionQuery = new DefinitionQuery(whereClause: "RWY = '29L'", name: "Runway")
    };
    
    var streamLayer = LayerFactory.Instance.CreateLayer<StreamLayer>(lyrCreateParam, map);
    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3.0 or higher.
    See Also