主题如何从Arcpy中的选择设置定义查询?在ArcMap问题 //www.gamepadva.com/t5/arcmap-questions/how-can-i-set-a-definition-query-from-a-selection/m-p/1246218#M4218

你好,我正试图获得一个脚本来设置从选择的定义查询。通过使用缓冲层的相交来设置选区。我知道第一部分是有效的,因为如果我运行这个,它会在mxd中创建一个选区。我还测试了第二个“for……”打开MXD,它就能工作。但是,我需要在关闭mxd的情况下运行它,因为它是新创建的。我得到的是县层查询中的"OBJECTID IN ()"

 

 

 

 

 

for lyr IN arcpy.mapping. listlayers (mxd,'HALF_MILE_BUFFER'): county_lyr = arcpy.mapping. .ListLayers(mxd, 'County')[0] arcpy.SelectLayerByLocation_management(county_lyr,"INTERSECT",lyr) for lyr in arcpy.mapping.ListLayers (mxd,'County'): fids = arcpy.Describe(lyr)。FIDSet idfield = 'OBJECTID' wc = idfield + ' IN (' + fids.replace(';',',') + ')' county_lyr.definitionQuery = wc arcpy。SelectLayerByAttribute_management(层CLEAR_SELECTION) < / LI-CODE > < P >, < / P > < P >, < / P > < P >, < / P > < P >, < / P > < P >, < / P >
2023年1月6日星期五22:38:23 GMT rescobar 2023 - 01 - 06 - t22:38:23z 如何从Arcpy中的选择设置定义查询? //www.gamepadva.com/t5/arcmap-questions/how-can-i-set-a-definition-query-from-a-selection/m-p/1246218#M4218

你好,我正试图获得一个脚本来设置从选择的定义查询。通过使用缓冲层的相交来设置选区。我知道第一部分是有效的,因为如果我运行这个,它会在mxd中创建一个选区。我还测试了第二个“for……”打开MXD,它就能工作。但是,我需要在关闭mxd的情况下运行它,因为它是新创建的。我得到的是县层查询中的"OBJECTID IN ()"

 

 

 

 

 

for lyr IN arcpy.mapping. listlayers (mxd,'HALF_MILE_BUFFER'): county_lyr = arcpy.mapping. .ListLayers(mxd, 'County')[0] arcpy.SelectLayerByLocation_management(county_lyr,"INTERSECT",lyr) for lyr in arcpy.mapping.ListLayers (mxd,'County'): fids = arcpy.Describe(lyr)。FIDSet idfield = 'OBJECTID' wc = idfield + ' IN (' + fids.replace(';',',') + ')' county_lyr.definitionQuery = wc arcpy。SelectLayerByAttribute_management(层CLEAR_SELECTION) < / LI-CODE > < P >, < / P > < P >, < / P > < P >, < / P > < P >, < / P > < P >, < / P >
2023年1月6日星期五22:38:23 GMT //www.gamepadva.com/t5/arcmap-questions/how-can-i-set-a-definition-query-from-a-selection/m-p/1246218#M4218 rescobar 2023 - 01 - 06 - t22:38:23z
回复:我如何设置一个定义查询从一个选择在Arcpy? //www.gamepadva.com/t5/arcmap-questions/how-can-i-set-a-definition-query-from-a-selection/m-p/1246406#M4222

不能在ArcMap中测试,但我在ArcGIS Pro中看到了相同的行为。我可以通过在内存中创建一个新层来解决这个问题:

buffer_lyr = arcpy.mapping. listlayers (mxd,'HALF_MILE_BUFFER')[0] #获取地图中的图层county_lyr_in_map = arcpy.mapping。ListLayers(mxd, 'County')[0] #使用地图图层的数据源创建一个新图层county_lyr = arcpy.management.MakeFeatureLayer(county_lyr_in_map.)数据源,“someename”)#选择在新层arcpy.management。SelectLayerByLocation(county_lyr, "INTERSECT", buffer_lyr) #设置地图层中的定义查询fids = arcpy.Describe(county_lyr)FIDSet county_lyr_in_map.definitionQuery = ' (' + fids.replace OBJECTID (';', ',') + ')' < P >, < / P >
2023年1月9日星期一13:01:34 GMT //www.gamepadva.com/t5/arcmap-questions/how-can-i-set-a-definition-query-from-a-selection/m-p/1246406#M4222 JohannesLindner 2023 - 01 - 09 - t13:01:34z
回复:我如何设置一个定义查询从一个选择在Arcpy? //www.gamepadva.com/t5/arcmap-questions/how-can-i-set-a-definition-query-from-a-selection/m-p/1246514#M4223 非常感谢你,Johannes,这是有效的!

2023年1月9日星期一16:46:40 GMT //www.gamepadva.com/t5/arcmap-questions/how-can-i-set-a-definition-query-from-a-selection/m-p/1246514#M4223 rescobar 2023 - 01 - 09 - t16:46:40z