<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Create a Definition Query in Standalone Arcpy/Python Script in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/create-a-definition-query-in-standalone-arcpy/m-p/1090178#M62105</link>
    <description>&lt;P&gt;Been doing some searching here and with the online help; I don't know if this is possible or not:&lt;/P&gt;&lt;P&gt;Create a feature layer and&amp;nbsp; apply a definition query to that feature layer.&amp;nbsp; Then use the feature layer to clip another feature class.&amp;nbsp; I can always make a selection to the feature layer and use the it to clip the feature class, but I'm just wondering....&lt;/P&gt;</description>
    <pubDate>Wed, 18 Aug 2021 22:11:31 GMT</pubDate>
    <dc:creator>JoeBorgione</dc:creator>
    <dc:date>2021-08-18T22:11:31Z</dc:date>
    <item>
      <title>Create a Definition Query in Standalone Arcpy/Python Script</title>
      <link>https://community.esri.com/t5/python-questions/create-a-definition-query-in-standalone-arcpy/m-p/1090178#M62105</link>
      <description>&lt;P&gt;Been doing some searching here and with the online help; I don't know if this is possible or not:&lt;/P&gt;&lt;P&gt;Create a feature layer and&amp;nbsp; apply a definition query to that feature layer.&amp;nbsp; Then use the feature layer to clip another feature class.&amp;nbsp; I can always make a selection to the feature layer and use the it to clip the feature class, but I'm just wondering....&lt;/P&gt;</description>
      <pubDate>Wed, 18 Aug 2021 22:11:31 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/create-a-definition-query-in-standalone-arcpy/m-p/1090178#M62105</guid>
      <dc:creator>JoeBorgione</dc:creator>
      <dc:date>2021-08-18T22:11:31Z</dc:date>
    </item>
    <item>
      <title>Re: Create a Definition Query in Standalone Arcpy/Python Script</title>
      <link>https://community.esri.com/t5/python-questions/create-a-definition-query-in-standalone-arcpy/m-p/1090183#M62106</link>
      <description>&lt;P&gt;Yes this is possible by accessing the CIM definition for the feature layer. You can read more about that here.&amp;nbsp;&lt;A href="https://pro.arcgis.com/en/pro-app/latest/arcpy/mapping/python-cim-access.htm" target="_blank"&gt;https://pro.arcgis.com/en/pro-app/latest/arcpy/mapping/python-cim-access.htm&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As for an example, this is roughly what you need to update a layer's definition query, then run your clip afterwards.&lt;/P&gt;&lt;LI-CODE lang="python"&gt;def set_definition_query(map_name, layer_name, definition_query):
  aprx = arcpy.mp.ArcGISProject("CURRENT")
  for map in aprx.listMaps(map_name):
    for layer in map.listLayers():
      if layer.name == layer_name:
        cim = layer.getDefinition('V2')
        # You may not need to update definitionFilterChoices
        cim.featureTable.definitionFilterChoices[0].definitionExpression = definition_query
        cim.featureTable.definitionExpression = definition_query
        layer.setDefinition(cim)

# Sample data 
map_name = 'Map'
lyr_name = 'MyLayer'

oid = 200
definition = f"OBJECTID = '{oid}'"

set_definition_query(map_name, lyr_name, definition)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 18 Aug 2021 22:36:06 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/create-a-definition-query-in-standalone-arcpy/m-p/1090183#M62106</guid>
      <dc:creator>nzjs</dc:creator>
      <dc:date>2021-08-18T22:36:06Z</dc:date>
    </item>
    <item>
      <title>Re: Create a Definition Query in Standalone Arcpy/Python Script</title>
      <link>https://community.esri.com/t5/python-questions/create-a-definition-query-in-standalone-arcpy/m-p/1090187#M62107</link>
      <description>&lt;P&gt;Thanks&amp;nbsp;&lt;a href="https://community.esri.com/t5/user/viewprofilepage/user-id/441109"&gt;@nzjs&lt;/a&gt;&amp;nbsp;.&amp;nbsp; I should have clarified that I don't have an aprx; I'm just going straight to the data source.&amp;nbsp; I'll see if I can adapt your code to my specific application.&lt;/P&gt;</description>
      <pubDate>Wed, 18 Aug 2021 22:47:13 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/create-a-definition-query-in-standalone-arcpy/m-p/1090187#M62107</guid>
      <dc:creator>JoeBorgione</dc:creator>
      <dc:date>2021-08-18T22:47:13Z</dc:date>
    </item>
    <item>
      <title>Re: Create a Definition Query in Standalone Arcpy/Python Script</title>
      <link>https://community.esri.com/t5/python-questions/create-a-definition-query-in-standalone-arcpy/m-p/1090189#M62108</link>
      <description>&lt;P&gt;I see - in your case you probably do want to use Select by Attribute arcpy tool as mentioned in your post. I'm fairly certain that using and modifying the CIM is more a case of needing to adjust symbology, definition query, popups, etc within an ArcGIS Pro project/maps.&lt;/P&gt;</description>
      <pubDate>Wed, 18 Aug 2021 22:50:26 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/create-a-definition-query-in-standalone-arcpy/m-p/1090189#M62108</guid>
      <dc:creator>nzjs</dc:creator>
      <dc:date>2021-08-18T22:50:26Z</dc:date>
    </item>
    <item>
      <title>Re: Create a Definition Query in Standalone Arcpy/Python Script</title>
      <link>https://community.esri.com/t5/python-questions/create-a-definition-query-in-standalone-arcpy/m-p/1090192#M62109</link>
      <description>&lt;P&gt;Layer's have a definitionQuery property, just set or update it after creating the layer: &lt;A href="https://pro.arcgis.com/en/pro-app/latest/arcpy/mapping/layer-class.htm" target="_blank"&gt;Layer—ArcGIS Pro | Documentation&lt;/A&gt;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;&amp;gt;&amp;gt;&amp;gt; import arcpy
&amp;gt;&amp;gt;&amp;gt; 
&amp;gt;&amp;gt;&amp;gt; fc = # path to feature class
&amp;gt;&amp;gt;&amp;gt; fl = arcpy.management.MakeFeatureLayer(fc)[0]
&amp;gt;&amp;gt;&amp;gt; fl
&amp;lt;arcpy._mp.Layer object at 0x000001E44F9BB388&amp;gt;
&amp;gt;&amp;gt;&amp;gt; fl.definitionQuery
''
&amp;gt;&amp;gt;&amp;gt; arcpy.management.GetCount(fl)
&amp;lt;Result '5'&amp;gt;
&amp;gt;&amp;gt;&amp;gt; fl.definitionQuery = "OBJECTID &amp;lt; 3"
&amp;gt;&amp;gt;&amp;gt; arcpy.management.GetCount(fl)
&amp;lt;Result '2'&amp;gt;
&amp;gt;&amp;gt;&amp;gt; &lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 18 Aug 2021 22:56:24 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/create-a-definition-query-in-standalone-arcpy/m-p/1090192#M62109</guid>
      <dc:creator>JoshuaBixby</dc:creator>
      <dc:date>2021-08-18T22:56:24Z</dc:date>
    </item>
    <item>
      <title>Re: Create a Definition Query in Standalone Arcpy/Python Script</title>
      <link>https://community.esri.com/t5/python-questions/create-a-definition-query-in-standalone-arcpy/m-p/1090258#M62111</link>
      <description>&lt;P&gt;Include a where clause in&amp;nbsp;&lt;A href="https://pro.arcgis.com/en/pro-app/latest/tool-reference/data-management/make-feature-layer.htm" target="_self"&gt;arcpy.management.MakeFeatureLayer&lt;/A&gt; (see the "Expression" parameter)&lt;/P&gt;</description>
      <pubDate>Thu, 19 Aug 2021 06:45:19 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/create-a-definition-query-in-standalone-arcpy/m-p/1090258#M62111</guid>
      <dc:creator>Luke_Pinner</dc:creator>
      <dc:date>2021-08-19T06:45:19Z</dc:date>
    </item>
    <item>
      <title>Re: Create a Definition Query in Standalone Arcpy/Python Script</title>
      <link>https://community.esri.com/t5/python-questions/create-a-definition-query-in-standalone-arcpy/m-p/1090312#M62113</link>
      <description>&lt;P&gt;&lt;a href="https://community.esri.com/t5/user/viewprofilepage/user-id/10780"&gt;@Luke_Pinner&lt;/a&gt;&amp;nbsp; Perfect. Why didn’t I think of that?!&lt;/P&gt;</description>
      <pubDate>Thu, 19 Aug 2021 12:21:28 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/create-a-definition-query-in-standalone-arcpy/m-p/1090312#M62113</guid>
      <dc:creator>JoeBorgione</dc:creator>
      <dc:date>2021-08-19T12:21:28Z</dc:date>
    </item>
    <item>
      <title>Re: Create a Definition Query in Standalone Arcpy/Python Script</title>
      <link>https://community.esri.com/t5/python-questions/create-a-definition-query-in-standalone-arcpy/m-p/1203744#M65349</link>
      <description>&lt;P&gt;Hello,&amp;nbsp; This took a lot longer than I think it should have to code up and test, so we wanted to share.&amp;nbsp; We find replace string/s.&amp;nbsp; This runs in or out of Pro.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#project = arcpy.GetParameterAsText(0)&lt;BR /&gt;#old_asset_name = arcpy.GetParameterAsText(1)&lt;BR /&gt;#new_asset_name = arcpy.GetParameterAsText(2)&lt;/P&gt;&lt;P&gt;old_asset_name = "Template"&lt;BR /&gt;new_asset_name = "AssetName"&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;project = (r'Your.aprx')&lt;BR /&gt;aprx = arcpy.mp.ArcGISProject(project)&lt;/P&gt;&lt;P&gt;m = aprx.listMaps()[0]&lt;/P&gt;&lt;P&gt;# List of Layers in TOC&lt;BR /&gt;for lyr in m.listLayers():&lt;BR /&gt;arcpy.AddMessage(str(lyr))&lt;BR /&gt;arcpy.AddMessage("\n")&lt;/P&gt;&lt;P&gt;## Layer Validation&lt;BR /&gt;if lyr.supports("DEFINITIONQUERY"):&lt;/P&gt;&lt;P&gt;# Lists Definition Queries&lt;BR /&gt;query = lyr.listDefinitionQueries()&lt;BR /&gt;arcpy.AddMessage("Old DQ " + str(query))&lt;/P&gt;&lt;P&gt;## List Dictionary&lt;BR /&gt;for dic in query:&lt;BR /&gt;# Open dictionary item&lt;BR /&gt;for key, value in dic.items():&lt;BR /&gt;if key == 'sql':&lt;BR /&gt;## print("")&lt;BR /&gt;## print(value)&lt;BR /&gt;## Find Replace&lt;BR /&gt;replace = value.replace(old_asset_name, new_asset_name)&lt;/P&gt;&lt;P&gt;## print("")&lt;BR /&gt;## print("SQL " + str(replace))&lt;/P&gt;&lt;P&gt;## Update DIctionary&lt;BR /&gt;dic[key] = replace&lt;/P&gt;&lt;P&gt;## print("")&lt;BR /&gt;## print("New Query " + str(query))&lt;/P&gt;&lt;P&gt;## update Definition Queries&lt;BR /&gt;lyr.updateDefinitionQueries(query)&lt;/P&gt;&lt;P&gt;new_query = lyr.listDefinitionQueries()&lt;BR /&gt;arcpy.AddMessage("New DQ " + str(new_query))&lt;BR /&gt;arcpy.AddMessage("")&lt;/P&gt;&lt;P&gt;aprx.saveACopy(project)&lt;/P&gt;</description>
      <pubDate>Wed, 17 Aug 2022 14:54:29 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/create-a-definition-query-in-standalone-arcpy/m-p/1203744#M65349</guid>
      <dc:creator>dbKlingdom</dc:creator>
      <dc:date>2022-08-17T14:54:29Z</dc:date>
    </item>
    <item>
      <title>Re: Create a Definition Query in Standalone Arcpy/Python Script</title>
      <link>https://community.esri.com/t5/python-questions/create-a-definition-query-in-standalone-arcpy/m-p/1481692#M70694</link>
      <description>&lt;P&gt;Adjusted this slightly but now I can edit a single DQ through arcpy... before everytime I altered the query from arcpy it created a whole new DQ, so I was ending up with a whole list of DQ's.&lt;BR /&gt;&lt;BR /&gt;You saved me a headache, cheers! &lt;span class="lia-unicode-emoji" title=":clinking_beer_mugs:"&gt;🍻&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 30 May 2024 23:27:53 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/create-a-definition-query-in-standalone-arcpy/m-p/1481692#M70694</guid>
      <dc:creator>cweirpatrickco</dc:creator>
      <dc:date>2024-05-30T23:27:53Z</dc:date>
    </item>
  </channel>
</rss>

