Use Feature Layer, not Feature Class. See the comments at the top of my example script.
## Parameters: ## 0 (input) - Input Features (Feature Layer) ## 1 (input) - Selecting Features (Feature Layer) ## 2 (input) - Selecting Features Field (Field, obtained from Selecting Features) ## 3 (input) - Output Workspace (Workspace) ## 4 (output, derived) - Output Feature Class(es) (Feature Class, multivalue) import arcpy, os from arcpy import env env.overwriteOutput = True inputFeatures = arcpy.GetParameterAsText(0) selectingFeatures = arcpy.GetParameterAsText(1) selectingFeaturesFieldName = arcpy.GetParameterAsText(2) outputWorkspace = arcpy.GetParameterAsText(3) env.workspace = outputWorkspace arcpy.AddMessage("Current workspace: %s" % outputWorkspace) inputLayer = arcpy.MakeFeatureLayer_management(inputFeatures) selectingLayer = arcpy.MakeFeatureLayer_management(selectingFeatures) desc = arcpy.Describe(inputLayer) inputLayerName = desc.name desc = arcpy.Describe(selectingLayer) selectingLayerName = desc.name selectingLayerShapeFieldName = desc.featureClass.shapeFieldName outputFCs = [] rows = arcpy.SearchCursor(selectingLayer) for row in rows: arcpy.management.SelectLayerByLocation(inputLayer, "HAVE_THEIR_CENTER_IN", row.getValue(selectingLayerShapeFieldName), "", "NEW_SELECTION") count = int((arcpy.GetCount_management(inputLayer))[0]) rowValue = str(row.getValue(selectingFeaturesFieldName)) arcpy.AddMessage("%d feature(s) of layer %s found in layer %s (%s: %s)" % (count, inputLayerName, selectingLayerName, selectingFeaturesFieldName, rowValue)) if (count > 0): outputFC = inputLayerName + "_" + rowValue arcpy.AddMessage("Copying selected feature(s) to %s" % outputFC) arcpy.CopyFeatures_management(inputLayer, outputFC) outputFCs.append(outputFC) del row, rows arcpy.SetParameterAsText(4, ";".join(outputFCs))
for x in range(4): print(x)
0 1 2 3 >>>
FCs = arcpy.ListFeatureClasses('C:\\Data\\Data1.gdb') for FC in FCs: arcpy.AddMessage('Opened:'+FC)
Angemeldete Mitglieder können Beiträge verfassen, Updates folgen und mehr. Neu hier? Registriere ein kostenloses Konto.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.