วิธีใช้ Variable ใน Select Layer By Attribute ใน Model Builder

Sep 30 2020

ฉันมีตัวแปรTypes(หลายสาย) ในรูปแบบของฉันและต้องการที่จะใช้ตัวแปรที่มีเครื่องมือและสถานที่ที่อยู่ประโยคหนึ่งSelect Layer By AttributeTYPE IN (%Types%)

อย่างไรก็ตาม%Types%เป็น;สตริงที่คั่นด้วยเครื่องหมายอัฒภาค ( ) เช่น'Type1;Type2'แต่สิ่งที่ฉันต้องการคือรายการของสตริง (ซึ่งฉันคาดว่าจะได้รับเมื่อพิจารณาว่าเป็นตัวแปรที่มีหลายค่า)

ArcGIS Pro มีฟังก์ชันในตัวเพื่อใช้ตัวแปรTypesสำหรับกรณีการใช้งานนี้หรือไม่หรือฉันต้องเขียนสคริปต์ Python เพื่อทำสิ่งนี้ให้สำเร็จ

ฉันไม่พบสิ่งใดในการอ้างอิง SQL ในหน้าความช่วยเหลือของ ArcGIS Pro: https://pro.arcgis.com/en/pro-app/help/mapping/navigation/sql-reference-for-elements-used-in-query-expressions.htm

คำตอบ

2 KHibma Sep 30 2020 at 01:27

คุณจะต้องเขียน Python เล็กน้อย

คุณสามารถเพิ่มคำนวณมูลค่าจากเมนูยูทิลิตี้ใน ModelBuilder

คุณไม่จำเป็นต้องเขียนฟังก์ชันทั้งหมดคุณสามารถระบุสิ่งต่อไปนี้เป็นนิพจน์: str(tuple(%Types%.split(";")))

สิ่งนี้ถือว่าคุณมีพารามิเตอร์ชื่อประเภทตามที่คุณได้กล่าวไว้ในคำถามของคุณ

อินพุต: "foo;bar;foo2;bar2"

เอาท์พุต: ('foo', 'bar', 'foo2', 'bar2')

หรือหากคุณไม่มี "" เป็นส่วนหนึ่งของสตริงอินพุต (เช่นfoo;bar;foo2;bar2) คุณสามารถใช้นิพจน์ต่อไปนี้กับประเภทการตัดคำพูด:str(tuple("%Types%".split(";")))