Hi. I'm using ArcGIS 3.2.I added a new python script to the Toolbox that was created by Default in my new project.
Quick silent video of both scripts at workhttps://www.loom.com/share/9e7b72ee9a3448d18994a255ee68d91a?sid=cf199512-b146-49b7-b012-bf4eb819f333
I'd like for user to select from a dropdown, and have report generated.Currently both scripts work for the purpose of generating reports, but 1- One script has user entering event_id manually.2- Second script has the dropdown, but duplicates appear. I've tried everything only to still have the duplicates appear. Any help is welcome and appreciated. I am open to your recommendations. I only need one script, sharing both to share my history and what brought me here.
Hi, I guess you need to create a set first after you create the list. Then, you convert it to list
I tried to minimize the chaneg of your code
def initializeParameters(self): """Initialize parameters.""" try: # Define REST URLs for the main layer and related table main_layer_url = "https://services8.arcgis.com/CQeG4yN4mcOJaKOV/arcgis/rest/services/service_b4b3e49de39547628b85a73989096909/FeatureServer/0" related_table_url = "https://services8.arcgis.com/CQeG4yN4mcOJaKOV/arcgis/rest/services/service_b4b3e49de39547628b85a73989096909/FeatureServer/1" # Set the selected event ID parameter to populate dropdown sel_event_id = [row[0] for row in arcpy.da.SearchCursor(main_layer_url, "event_id")] create_unique_sel_even_id = set(sel_event_id) self.params[0] = list(create_unique_sel_even_id) # Print all event IDs retrieved from the hosted feature layer event_ids = [row[0] for row in arcpy.da.SearchCursor(main_layer_url, "event_id")] for event_id in event_ids: arcpy.AddMessage("Retrieved Event ID: {}".format(event_id)) # Print the datasource for the hosted feature layer lyr = arcpy.MakeFeatureLayer_management(main_layer_url, "Main_Layer")[0] arcpy.AddMessage("Connected Hosted Feature Layer: {}".format(lyr.dataSource)) # Print the datasource for the related table tbl = arcpy.MakeTableView_management(related_table_url, "Related_Table")[0] arcpy.AddMessage("Connected Related Table: {}".format(tbl.dataSource)) except Exception as e: arcpy.AddError("An error occurred during parameter initialization: {}".format(str(e))) return
Hello, you can try to use a set in your list to remove duplicated values. Line 13:
def initializeParameters(self): """Initialize parameters.""" # Retrieve unique event IDs from the hosted feature layer aprx = arcpy.mp.ArcGISProject("CURRENT") lyr = aprx.listMaps()[0].listLayers()[0] # Assuming the hosted feature layer is the first layer in the map event_ids = set() with arcpy.da.SearchCursor(lyr, "event_id") as cursor: for row in cursor: event_ids.add(row[0]) # Populate the dropdown parameter with unique event IDs from the hosted feature layer sel_event_id = self.params[0] sel_event_id.filter.list = sorted(list(set(event_ids))) # Set Function Added # 2-9-24 THIS SECTION IS NOT BEING EXECUTED ALTHOUGH SCRIPT WORKING OK Print all event IDs retrieved from the hosted feature layer for event_id in event_ids: arcpy.AddMessage("Retrieved Event ID: {}".format(event_id)) # Print the datasource for the hosted feature layer arcpy.AddMessage("Connected Hosted Feature Layer: {}".format(lyr.dataSource)) # Print the datasource for the related table (tbl) tbl = aprx.listMaps()[0].listTables()[0] # Assuming the related table is the first table in the map arcpy.AddMessage("Connected Related Table: {}".format(tbl.dataSource)) return
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.