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)
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.