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
Les membres connectés peuvent publier, suivre les mises à jour, et plus encore. Nouveau ici ? Inscrivez-vous gratuitement.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.