Add field for outline width

This commit is contained in:
Fuhrmann 2025-01-16 11:23:13 +01:00
parent 6c5f9a6ca0
commit 387c891134

View file

@ -3,7 +3,9 @@
import arcpy # type: ignore import arcpy # type: ignore
# Define constants # Define constants
DEFAULT_LINE_WIDTH = 0.7 # 1 point = 1/72 inch
# 1 inch = 25.4 mm
DEFAULT_LINE_WIDTH = 0.23
DEFAULT_COLOR = [ DEFAULT_COLOR = [
0, 0,
0, 0,
@ -63,7 +65,7 @@ class FeatureRenderer:
# Define parameter for selecting a primary key # Define parameter for selecting a primary key
field_param_1 = arcpy.Parameter( field_param_1 = arcpy.Parameter(
displayName="Select Primary Key Field (LEG_ID)", displayName="Select Primary Key Field",
name="primary_key", name="primary_key",
datatype="Field", datatype="Field",
parameterType="Required", parameterType="Required",
@ -205,6 +207,18 @@ class FeatureRenderer:
outline_field.parameterDependencies = [table_param.name] outline_field.parameterDependencies = [table_param.name]
# Define parameter for outline width
outline_width = arcpy.Parameter(
name="outline_width",
displayName="Set outline width in pt",
datatype="GPDouble",
direction="Input",
parameterType="Optional",
category="Define Outlines",
)
outline_field.parameterDependencies = [table_param.name]
# Return parameter definitions as a list # Return parameter definitions as a list
return [ return [
style_files, style_files,
@ -220,6 +234,7 @@ class FeatureRenderer:
heading_field, heading_field,
draw_outlines, draw_outlines,
outline_field, outline_field,
outline_width,
] ]
def isLicensed(self): def isLicensed(self):
@ -249,6 +264,7 @@ class FeatureRenderer:
heading_field = parameters[10].valueAsText heading_field = parameters[10].valueAsText
draw_outlines = parameters[11].value draw_outlines = parameters[11].value
outline_field = parameters[12].valueAsText outline_field = parameters[12].valueAsText
outline_width = parameters[13].value
# Retrieve currently active map # Retrieve currently active map
active_map = project.activeMap active_map = project.activeMap
@ -480,19 +496,12 @@ class FeatureRenderer:
"color" "color"
] = color ] = color
if draw_outlines: # Get symbol layer line width
if symbol_layer.width: if symbol_layer.width:
# Set width as it was before # Set width as it was before
stroke_symbol_props[leg_id][ stroke_symbol_props[leg_id][
"width" "width"
] = symbol_layer.width ] = symbol_layer.width
else:
# Set default width
stroke_symbol_props[leg_id][
"width"
] = DEFAULT_LINE_WIDTH
else:
stroke_symbol_props[leg_id]["width"] = 0
break break
@ -519,8 +528,14 @@ class FeatureRenderer:
color.values = DEFAULT_COLOR color.values = DEFAULT_COLOR
stroke_symbol_props[leg_id]["color"] = color stroke_symbol_props[leg_id]["color"] = color
if not stroke_symbol_props[leg_id]["width"]: # Set outline width
if draw_outlines: if draw_outlines:
if outline_width:
stroke_symbol_props[leg_id][
"width"
] = outline_width
else:
if not stroke_symbol_props[leg_id]["width"]:
stroke_symbol_props[leg_id][ stroke_symbol_props[leg_id][
"width" "width"
] = DEFAULT_LINE_WIDTH ] = DEFAULT_LINE_WIDTH