<\/HEAD>
J'ai un script qui prend un fichier excel, l'importe en tant que table puis exécute une requête pour obtenir les lignes nécessaires et les exporte vers une nouvelle table. Ensuite, un curseur de recherche parcourt la table et crée une liste de valeurs. Il boucle ensuite à travers la liste de valeurs et utilise ces valeurs comme entrée pour la clause Where de select by attribute afin de sélectionner le polygone correct. Ce polygone de permis est ensuite utilisé pour sélectionner des poteaux d'une autre classe d'entités puis exporter ces poteaux en tant que nouvelle classe d'entités nommée selon la valeur utilisée pour sélectionner le polygone de permis. Le problème est de passer la valeur de la liste de valeurs dans la clause where de l'outil SelectLayerByAttribute_management. <\/P>
<\/P>
import <\/SPAN>arcpy
import <\/SPAN>datetime
# Variables
<\/SPAN>time = datetime.date.today()
raw = r"C:\Users\BB0322\Desktop\Projects\MRE_Coversheet\KC\MRE_Table.xlsx"
<\/SPAN>mre_table = r"C:\Users\BB0322\Desktop\Projects\MRE_Coversheet\KC\KC_MRE.gdb\MRE_Tb"
<\/SPAN>permits = r"C:\Users\BB0322\Desktop\Projects\MRE_Coversheet\KC\KC_MRE.gdb\Permits"
<\/SPAN>Poles = r"C:\Users\BB0322\Desktop\Projects\MRE_Coversheet\KC\KC_MRE.gdb\Poles"
<\/SPAN>work_table = r"C:\Users\BB0322\Desktop\Projects\MRE_Coversheet\KC\KC_MRE.gdb\MRE_workTB"
<\/SPAN>geoDB = r"C:\Users\BB0322\Desktop\Projects\MRE_Coversheet\KC\KC_MRE.gdb"
<\/SPAN>
<\/SPAN>arcpy.env.workspace = r"C:\Users\BB0322\Desktop\Projects\MRE_Coversheet\KC\KC_MRE.gdb"
<\/SPAN>arcpy.env.overwriteOutput = True
<\/SPAN>
<\/SPAN>
<\/SPAN>try<\/SPAN>:
print<\/SPAN>("Création de la table : " <\/SPAN>+ mre_table)
arcpy.ExcelToTable_conversion(raw, <\/SPAN>mre_table, <\/SPAN>"Sheet1"<\/SPAN>)
mre_tview = arcpy.MakeTableView_management(mre_table, <\/SPAN>"MRE_TableView"<\/SPAN>)
arcpy.SelectLayerByAttribute_management(mre_tview, <\/SPAN>"NEW_SELECTION"<\/SPAN>, <\/SPAN>"Ticket_Number IS NOT NULL"<\/SPAN>, None<\/SPAN>)
arcpy.SelectLayerByAttribute_management(mre_tview, <\/SPAN>"REMOVE_FROM_SELECTION"<\/SPAN>, <\/SPAN>"Permit_Name = ' '"<\/SPAN>, None<\/SPAN>)
arcpy.CopyRows_management(mre_tview, <\/span>work_table)
permitview = arcpy.MakeFeatureLayer_management(permits, <\/span>"Permits_Layer")
poleview = arcpy.MakeFeatureLayer_management(Poles, <\/span>"Poles_Layer")
# Création d'une liste de noms de permis à passer dans le select by attributes pour les grilles de permis
AllValues = []
with arcpy.da.SearchCursor(work_table, ("Permit_Name", "Ticket_Number")) as search:
for row in search:
if row[0] not in AllValues:
AllValues.append(row[0])
# Boucle à travers la liste et sélectionne un polygone puis utilise ce polygone pour sélectionner les poteaux situés à l'intérieur et exporter ces poteaux dans des classes d'entités individuelles
for Value in AllValues:
print(Value)
itsa = "permit_name = {}".format(Value)
print(itsa)
expression = str(itsa)
permitSelect = arcpy.SelectLayerByAttribute_management(permitview, "NEW_SELECTION", expression, None)
permitPoly = arcpy.MakeFeatureLayer_management(permitSelect, "permitPoly_" + Value)
poleSelect = arcpy.SelectLayerByLocation_management(poleview, "INTERSECT", permitPoly, "30 FEET", "NEW_SELECTION", "")
arcpy.CopyFeatures_management(poleSelect, geoDB + <""><\\">