ArcGIS Pro Creating Scale dependent Symbology by modifying the .lyrx file

118
0
07-15-2020 07:33 AM
DavidMetzler1
New Contributor II

In ArcGIS Pro, there is the option to symbolize a feature dependent on scale. I have several maps I am looking to convert and want to modify the .lyrx file (is JSON format) to accept these alternate symbols.

with an open JSON and a simple dataset I found the alternateSymbols list in

data['layerDefinitions'][0]['renderer']['groups'][0]['classes']['alternateSymbols']

when i try to import my other symbols with minScale and maxScale Values, i get nothing.

If I just dump them into 'classes' they DO show in arcmap, but are not scale dependenent.

this is the function I am using a the moment

def outload_into_one_file(detail, normal):

detail = detail
normal = normal
out_file = os.path.splitext(normal)[0] + "_COMBINED.lyrx"

with open (detail , "r") as jsonFile:
detail_data = json.load(jsonFile)

with open (normal , "r") as jsonFile:
normal_data = json.load(jsonFile)

detail_base = detail_data['layerDefinitions'][0]
detail_classes = detail_base['renderer']['groups'][0]['classes']
normal_base = normal_data['layerDefinitions'][0]
normal_classes = normal_base['renderer']['groups'][0]['classes']
detail_classes_dict = {}
for x in detail_classes:
detail_classes_dict.update({x["label"]: x})
for x in normal_classes:
x['maxScale'] = 251
x['minScale']= 3000
for x in normal_classes:
cls = detail_classes_dict.get(x['label'])
cls['maxScale']=250
cls['alternateSymbols'] = []

cls['alternateSymbols'].append(x)

with open(out_file, "w") as jsonFile:
json.dump(detail_data, jsonFile)
0 Kudos
0 Replies