Skip To Content
ArcGIS Developer
Dashboard

Appendix - Diagram Layout property set objects

Overview

This topic discusses the JSON Diagram Layout property set object as returned by the REST API for each diagram layout—AngleDirectedDiagramLayout, CompressionDiagramLayout, ForceDirectedDiagramLayout, GeoPositionsDiagramLayout, GridDiagramLayout, LinearDispatchDiagramLayout, MainLineTreeDiagramLayout, MainRingDiagramLayout, PartialOverlappingEdgesDiagramLayout, RadialTreeDiagramLayout, RelativeMainlineDiagramLayout, ReshapeEdgesDiagramLayout, RotateTreeDiagramLayout, SeparateOverlappingEdgesDiagramLayout, SmartTreeDiagramLayout, and SpatialDispatchDiagramLayout.

AngleDirectedDiagramLayout property set object

The AngleDirectedDiagramLayout property set object provides the following information:

  • are_containers_preserved—Specifies whether the layout preserves the containers in the diagram (Boolean).
  • is_active—Specifies whether the layout is an active layout during diagram generation and update. This parameter is always ignored when performing the applyLayout operation.
  • iterations_number—The number of layout algorithm iterations to process (Long).
  • number_of_directions—The number of directions that must be used to align the diagram edges and their connected junctions (Enum):
    • 4 for FOUR_DIRECTIONS
    • 8 for EIGHT_DIRECTIONS
    • 12 for TWELVE_DIRECTIONS
Note:

This layout and its parameters are detailed in the Apply Angle Directed Layout tool topic.

JSON syntax

AngleDirectedDiagramLayout property set syntax

{
  "type": "PropertySet",
  "propertySetItems": ["are_containers_preserved", < true | false >, "is_active", < true | false >, "iterations_number", < iterations_number >, "number_of_directions", < 4 | 8 |12 >]
}

JSON example

AngleDirectedDiagramLayout property set sample

{
   "type": "PropertySet",
   "propertySetItems": [
    "are_containers_preserved",
    false,
    "is_active",
    false,
    "iterations_number",
    1,
    "number_of_directions",
    8
   ]
  }

CompressionDiagramLayout property set object

The CompressionDiagramLayout property set object provides the following information:

  • are_containers_preserved—Specifies whether the layout preserves the containers in the diagram (Boolean).
  • is_active—Specifies whether the layout is an active layout during diagram generation and update. This parameter is always ignored when performing the applyLayout operation.
  • grouping_distance—The distance used to determine whether two connected junctions must be considered as part of the same junctions group in the diagram coordinate system (Double).
  • vertices_removal_rule—Specifies how vertices along edges in the diagram must be processed (Enum):
    • 1 for REMOVE_ALL
    • 2 for KEEP_INSIDE_VERTICES
    • 3 for KEEP_FIRST_VERTEX_OUTSIDE_AND_INSIDE_VERTICES
Note:

This layout and its parameters are detailed in the Apply Compression Layout tool topic.

JSON syntax

CompressionDiagramLayout property set syntax

{
  "type": "PropertySet",
  "propertySetItems": ["are_containers_preserved", < true | false >, "is_active", < true | false >, "grouping_distance", < grouping_distance >, "vertices_removal_rule", < 1 | 2 | 3 >]
}

JSON example

CompressionDiagramLayout property set example

{
   "type": "PropertySet",
   "propertySetItems": [
    "are_containers_preserved",
    true,
    "is_active",
    false,
    "grouping_distance",
    20,
    "vertices_removal_rule",
    2
   ]
  }

ForceDirectedDiagramLayout property set object

The ForceDirectedDiagramLayout property set object provides the following information:

  • are_containers_preserved—Specifies whether the layout preserves the containers in the diagram (Boolean).
  • is_active—Specifies whether the layout is an active layout during diagram generation and update. This parameter is always ignored when performing the applyLayout operation.
  • iterations_number—The number of layout algorithm iterations to process (Long).
  • repel_factor—Increases diagram junctions displacement for junctions that are close together (Long).
  • degree_freedom—Limits the area used to move the diagram junctions during each algorithm iteration (Enum):
    • 1 for LOW
    • 2 for MEDIUM
    • 3 for HIGH
  • edge_display_type—The type of display for the diagram edges (Enum):
    • 0 for REGULAR_EDGES
    • 2 for CURVED_EDGES
  • breakpoint_position—A double between 0.15 and 0.40 that determines the relative position of the two inflexion points that will be inserted along the diagram edges to compute the curved edges geometry when edge_display_type=1 (Double). This parameter is ignored when edge_display_type=0.
Note:

This layout and its parameters are detailed in the Apply Force Directed Layout tool topic.

JSON syntax

ForceDirectedDiagramLayout property set syntax

{
  "type": "PropertySet",
  "propertySetItems": ["are_containers_preserved", < true | false >, "is_active", < true | false >, "iterations_number", < NumberOfIterations >, "repel_factor", < RepelFactor >, "degree_freedom", < 1 | 2 | 3 >, "edge_display_type", < 0 | 1 >, "breakpoint_position", < breakpointPosition >]
}

JSON example

ForceDirectedDiagramLayout property set example

{
   "type": "PropertySet",
   "propertySetItems": [
    "are_containers_preserved",
    false,
    "is_active",
    false,
    "iterations_number",
    20,
    "repel_factor",
    1,
    "degree_freedom",
    1,
    "edge_display_type",
    0,
    "breakpoint_position",
    0.29999999999999999
   ]
  }

GeoPositionsDiagramLayout property set object

The GeoPositionsDiagramLayout property set object provides the following information:

  • is_active—Specifies whether the layout is an active layout during diagram generation and update. This parameter is always ignored when performing the applyLayout operation.
  • restore_edges_geo_positions—Specifies whether the layout algorithm will process diagram edges and restore geographic vertices along them if possible (Boolean).
Note:

This layout and its parameters are detailed in the Apply Geo Positions Layout tool topic.

JSON syntax

GeoPositionsDiagramLayout property set syntax

{
   "type": "PropertySet",
   "propertySetItems": ["is_active", < true | false >, "restore_edges_geo_positions", < true | false >]
  }

JSON example

GeoPositionsDiagramLayout property set example

{
   "type": "PropertySet",
   "propertySetItems": [
    "is_active",
    false,
    "restore_edges_geo_positions",
    true
   ]
  }

GridDiagramLayout property set object

The GridDiagramLayout property set object provides the following information:

  • are_containers_preserved—Specifies whether the layout preserves the containers in the diagram (Boolean).
  • is_active—Specifies whether the layout is an active layout during diagram generation and update. This parameter is always ignored when performing the applyLayout operation.
  • cell_width—The width of each grid cell in the diagram coordinate system (Double).
  • cell_height—The height of each grid cell in the diagram coordinate system (Double).

Note:

This layout and its parameters are detailed in the Apply Grid Layout tool topic.

JSON syntax

GridDiagramLayout property set syntax

{
  "type": "PropertySet",
  "propertySetItems": ["are_containers_preserved", < true | false >, "is_active", < true | false >, "cell_width", < cell_width >, "cell_height", < cell_height >]
}

JSON example

GridDiagramLayout property set example

{
   "type": "PropertySet",
   "propertySetItems": [
    "are_containers_preserved",
    false,
    "is_active",
    false,
    "cell_width",
    2,
    "cell_height",
    2
   ]
  }

LinearDispatchDiagramLayout property set object

The LinearDispatchDiagramLayout property set object provides the following information:

  • is_unit_absolute—Specifies whether the layout parameters representing distances must be interpreted as linear units in the diagram coordinate system: True, or as relative units to an estimation of the average of the junctions sizes in the diagram when it's generated, or False (Boolean).
  • is_active—Specifies whether the layout is an active layout during diagram generation and update. This parameter is always ignored when performing the applyLayout operation.
  • junction_placement_type—Specifies how the layout algorithm will move the diagram junctions (Enum):
    • 1 for EQUAL_DISTANCE
    • 2 for USER_DEFINE_DISTANCE
    • 3 for ITERATIVE_DISTANCE
  • maximum_shift—The parameter expected when junction_placement_type = 3, which specifies the maximum distance that junctions with two connections can be spaced from the junctions to which they connect (Double).
  • minimum_shift—The parameter expected when junction_placement_type = 2, which specifies the minimum distance that will separate each junction with two connected edges from its two edges extremities after the layout applies (Double).
  • iterations_number—The number of layout algorithm iterations to process (Long).
  • is_path_preserved—Specifies whether the layout algorithm will preserve the vertices along edges when applying (Boolean).
  • are_leaves_moved—Specifies whether leaf junctions—that is, junctions with one connection—can be moved during the algorithm process (Boolean).
  • are_leaves_expanded—Specifies whether leaf junctions—that is, junctions with one connection—can be expanded during the algorithm process (Boolean).
  • expand_shift—The parameter expected when are_leaves_expanded = true, which specifies the maximum distance leaf junctions can be expanded (Double).

Note:

This layout and its parameters are detailed in the Apply Linear Dispatch Layout tool topic.

JSON syntax

LinearDispatchDiagramLayout property set syntax

{
  "type": "PropertySet",
  "propertySetItems": ["is_unit_absolute", < true | false >, "is_active", < true | false >, "junction_placement_type", < 1 | 2 | 3 >, "maximum_shift", < maximum_shift >, "minimum_shift", < minimum_shift >, "iterations_number", < iterations_number >, "is_path_preserved", < true | false >, "are_leaves_moved", < true | false >, "are_leaves_expanded", < true | false >, "expand_shift", < expand_shift >]
}

JSON example

LinearDispatchDiagramLayout property set example

{
   "type": "PropertySet",
   "propertySetItems": [
    "is_unit_absolute",
    false,
    "is_active",
    false,
    "junction_placement_type",
    1,
    "maximum_shift",
    2,
    "minimum_shift",
    2,
    "iterations_number",
    5,
    "is_path_preserved",
    true,
    "are_leaves_moved",
    false,
    "are_leaves_expanded",
    false,
    "expand_shift",
    2
   ]
  }

MainLineTreeDiagramLayout property set object

The MainLineTreeDiagramLayout property set object provides the following information:

  • are_containers_preserved—Specifies whether the layout preserves the containers in the diagram (Boolean).
  • is_active—Specifies whether the layout is an active layout during diagram generation and update. This parameter is always ignored when performing the applyLayout operation.
  • is_unit_absolute—Specifies whether the layout parameters representing distances must be interpreted as linear units in the diagram coordinate system: True, or as relative units to an estimation of the average of the junctions sizes in the diagram when it's generated, or False (Boolean).
  • tree_direction—The direction of the tree (Enum):
    • 0 for FROM_RIGHT_TO_LEFT
    • 1 for FROM_TOP_TO_BOTTOM
    • 2 for FROM_LEFT_TO_RIGHT
    • 3 for FROM_BOTTOM_TO_TOP
  • branches_placement—Specifies how branches from the mainline are placed (Enum):
    • 0 for LEFT_SIDE_OF_MAIN_LINE
    • 1 for RIGHT_SIDE_OF_MAIN_LINE
    • 2 for BOTH_SIDES_OF_MAIN_LINE
  • perpendicular—The spacing between diagram junctions that are displayed along the axis perpendicular to the mainline in the diagram coordinate system when is_unit_absolute = True or in proportional units when is_unit_absolute = False (Double).
  • along—The spacing between diagram junctions that are displayed along the mainline and diagram junctions that are displayed along the axis parallel to this mainline in the diagram coordinate system when is_unit_absolute = True or in proportional units when is_unit_absolute = False (Double).
  • disjoined_graph—The minimum spacing that must separate features belonging to disjoined graphs when the diagram contains such graphs in the diagram coordinate system when Absolute = True or in proportional units when is_unit_absolute = False (Double).
  • are_edges_orthogonal—Specifies whether the diagram edges related to the tree branches will display with right angles (Boolean).
    Note:

    This parameter is deprecated at ArcGIS Server 11.1. It is systematically ignored regardless of its value when the edge_display_type parameter is specified.

  • breakpoint_position—A double between 0 and 1 that determines the relative position of the break point on the diagram edges when edge_display_type=0 or edge_display_type=1. A double between 0.15 and 0.40 that determines the relative position of the two inflexion points that will be inserted along the diagram edges to compute the curved edges geometry when edge_display_type=2.
  • edge_display_type—The type of display for the diagram edges (Enum):
    • 0 for REGULAR_EDGES
    • 1 for ORTHOGONAL_EDGES
    • 2 for CURVED_EDGES
  • offset—The offset that separates overlapping segments when edge_display_type=1. It is a double between 0 and 10 percent of the smallest other spacing parameters.

Note:

This layout and its parameters are detailed in the Apply Mainline Tree Layout tool topic.

JSON syntax

MainLineTreeDiagramLayout property set syntax

{
  "type": "PropertySet",
  "propertySetItems": ["are_containers_preserved", < true | false >, "is_active", < true | false >, "is_unit_absolute", < true | false >, "tree_direction", < 0 | 1 | 2 | 3 >,  "branches_placement", < 0 | 1 | 2 >, "perpendicular", < perpendicular >, "along", < along >, "disjoined_graph", < disjoined_graph >, "are_edges_orthogonal", < true | false >, "breakpoint_position", < breakpoint_position >, "edge_display_type", < 0 | 1 | 2 >, "offset, < offset >]
}

JSON example

MainLineTreeDiagramLayout property set example

{
   "type": "PropertySet",
   "propertySetItems": [
    "are_containers_preserved",
    false,
    "is_active",
    false,
    "is_unit_absolute",
    false,
    "tree_direction",
    2,
    "branches_placement",
    2,
    "perpendicular",
    2,
    "along",
    2,
    "disjoined_graph",
    4,
    "are_edges_orthogonal",
    false,
    "breakpoint_position",
    0.29999999999999999,
    "edge_display_type",
    0,
    "offset",
    0
   ]
  }

MainRingDiagramLayout property set object

The MainRingDiagramLayout property set object provides the following information:

  • are_containers_preserved—Specifies whether the layout preserves the containers in the diagram (Boolean).
  • is_active—Specifies whether the layout is an active layout during diagram generation and update. This parameter is always ignored when performing the applyLayout operation.
  • is_unit_absolute—Specifies whether the layout parameters representing distances must be interpreted as linear units in the diagram coordinate system: True, or as relative units to an estimation of the average of the junctions sizes in the diagram when it's generated, or False (Boolean).
  • ring_type—The type of ring (Enum):
    • 0 for RECTANGLE
    • 1 for ELLIPSE
  • tree_type—Specifies how the trees coming out of the main ring's junctions will be positioned (Enum):
    • 0 for LEFT_SIDE
    • 1 for RIGHT_SIDE
    • 2 for BOTH_SIDES
    • 3 for COMPACT_TREE (This value is currently ignored; it will be interpreted as 4.)
    • 4 for SMART_TREE
  • edge_display_type—The type of display for the trees' diagram edges (Enum)
    • 0 for REGULAR_EDGES
    • 1 for ORTHOGONAL_EDGES
    • 2 for CURVED_EDGES
  • ring_width—The width of the ring in the diagram coordinate system when is_unit_absolute = True or in proportional units when is_unit_absolute = False (Double).
  • ring_height—The height of the ring in the diagram coordinate system when is_unit_absolute = True or in proportional units when is_unit_absolute = False (Double).
  • perpendicular—The spacing between diagram junctions that are displayed along the axis perpendicular to the tree direction in the diagram coordinate system when is_unit_absolute = True or in proportional units when is_unit_absolute = False (Double).
  • along—The spacing between diagram junctions that are displayed along the tree direction in the diagram coordinate system when is_unit_absolute = True or in proportional units when is_unit_absolute = False (Double).
  • breakpoint_position—A double between 0 and 1 that determines the relative position of the break point on the diagram edges when edge_display_type=0 or edge_display_type=1. A double between 0.15 and 0.40 that determines the relative position of the two inflexion points that will be inserted along the diagram edges to compute the curved edges geometry when edge_display_type=2.
  • offset—The offset that separates overlapping segments when edge_display_type=1. It is a double between 0 and 10 percent of the smallest other spacing parameters.

Note:

This layout and its parameters are detailed in the Apply Main Ring Layout tool topic.

JSON syntax

MainRingDiagramLayout property set syntax

{
   "type": "PropertySet",
   "propertySetItems": ["are_containers_preserved", < true | false >, "is_active", < true | false >, "is_unit_absolute", < true | false >,
    "ring_type",< 1 | 2 >, "tree_type", < 1 |2 |3 |4 >, "edge_display_type", < 0 |1 |2 >, "ring_width", < RingWidth >,
    "ring_height", < RingHeight >, "perpendicular", < perpendicular >, "along", < along >, "breakpoint_position", < breakPoint >, "offset", < offset >]
  }

JSON example

MainRingDiagramLayout property set example

{
   "type": "PropertySet",
   "propertySetItems": [
    "are_containers_preserved",
    false,
    "is_active",
    false,
    "is_unit_absolute",
    false,
    "ring_type",
    1,
    "tree_type",
    4,
    "edge_display_type",
    0,
    "ring_width",
    50,
    "ring_height",
    20,
    "perpendicular",
    2,
    "along",
    2,
    "breakpoint_position",
    0.29999999999999999,
    "offset",
    0
   ]
  }

PartialOverlappingEdgesDiagramLayout property set object

The PartialOverlappingEdgesDiagramLayout property set object provides the following information:

  • is_active—Specifies whether the layout is an active layout during diagram generation and update. This parameter is always ignored when performing the applyLayout operation.
  • buffer_width—The width of the buffer zone where you want the algorithm to search for collinear edge segments in the diagram coordinate system (Double).
  • offset—The distance that will separate the detected edge segments after the layout algorithm applies in the diagram coordinate system (Double).
  • optimize_edges—Specifies whether the layout algorithm will optimize the segment placement order in each set of detected collinear segments to avoid crossing (Boolean).

Note:

This layout and its parameters are detailed in the Apply Partial Overlapping Edges Layout tool topic.

JSON syntax

PartialOverlappingEdgesDiagramLayout property set syntax

{
  "type": "PropertySet",
  "propertySetItems": ["is_active", < true | false >, "buffer_width", < buffer_width >, "offset", < offset >, "optimize_edges", < true | false >]
}

JSON example

PartialOverlappingEdgesDiagramLayout property set example

{
   "type": "PropertySet",
   "propertySetItems": [
    "is_active",
    false,
    "buffer_width",
    1,
    "offset",
    0.5,
    "optimize_edges",
    false
   ]
  }

RadialTreeDiagramLayout property set object

The RadialTreeDiagramLayout property set object provides the following information:

  • are_containers_preserved—Specifies whether the layout preserves the containers in the diagram (Boolean).
  • is_active—Specifies whether the layout is an active layout during diagram generation and update. This parameter is always ignored when performing the applyLayout operation.
  • is_unit_absolute—Specifies whether the layout parameters representing distances must be interpreted as linear units in the diagram coordinate system: True, or as relative units to an estimation of the average of the junctions sizes in the diagram when it's generated, or False (Boolean).
  • initial_radius—The radius of the first concentric circle whose center is the radial tree root junction in the diagram coordinate system when is_unit_absolute = True or in proportional units when is_unit_absolute = False (Double).
  • disjoined_graph—The minimum spacing that must separate features belonging to disjoined graphs when the diagram contains such graphs in the diagram coordinate system when is_unit_absolute = True or in proportional units when is_unit_absolute = False (Double).
  • radius_factor—Represents the multiplicative factor used to increase or decrease the radius of each concentric circle (Double).

Note:

This layout and its parameters are detailed in the Apply Radial Tree Layout tool topic.

JSON syntax

RadialTreeDiagramLayout property set syntax

{
  "type": "PropertySet",
  "propertySetItems": ["are_containers_preserved", < true | false >, "is_active", < true | false >, "is_unit_absolute", < true | false >, "initial_radius", < initial_radius >, "disjoined_graph", < disjoined_graph >, "radius_factor", < radius_factor >]
}

JSON example

RadialTreeDiagramLayout property set example

{
   "type": "PropertySet",
   "propertySetItems": [
    "are_containers_preserved",
    false,
    "is_active",
    false,
    "is_unit_absolute",
    false,
    "initial_radius",
    5,
    "disjoined_graph",
    10,
    "radius_factor",
    1
   ]
  }

RelativeMainlineDiagramLayout property set object

The RelativeMainlineDiagramLayout property set object provides the following information:

  • is_active—Specifies whether the layout is an active layout during diagram generation and update. This parameter is always ignored when performing the applyLayout operation.
  • line_attribute—The name of the network attribute that will be used to identify the lines that compose the straight lines (String).
  • mainline_direction—The direction of the mainline (Enum):
    • 1 for FROM_TOP_TO_BOTTOM
    • 2 for FROM_LEFT_TO_RIGHT
  • offset_between_branches—The spacing between two adjacent branches along the axis perpendicular to the direction of the lines (Double).
  • breakpoint_angle—The angle that will be used to position the break point on the branches. It is a number between 30 and 90 degrees that is combined with the offset_between_branches parameter value to compute this position. When the break point angle value is 90 degrees, each branch displays orthogonally (Double).
  • type_attribute— The name of the network attribute that will be used to qualify the lines. This network attribute may exist on the utility network line classes. Its values allow lines to be typed. (String).
  • mainline_values—The type_attribute values that identify the main lines. When such values exist, they must be the same for any edge that composes the main lines regardless of their related utility network feature classes. In a list of values, each value is separated by a semicolon (;) character (String).
  • branch_values—The type_attribute values that identify the branches. In a list of values, each value is separated by a semicolon (;) character (String).
  • excluded_values—The type_attribute values that identify the edges that must be excluded from the straight lines, that is, crossovers or ladders. In a list of values, each value is separated by a semicolon (;) character (String).
  • is_compressing—Specifies whether the algorithm must compress the graph (Boolean).
  • compression_ratio— A number between 0 and 100 that is applied to the length of any edge after subtracting the minimal distance of its length. When compression_ratio is 100, the distance between each detected junction group is equal to the minimal distance (Double).
  • minimal_distance—The minimal distance that must be kept between two adjacent groups of neighbor junctions (Double).
  • alignment_attribute—The name of the network attribute that will be used to align lines that are split (Double).
  • length_attribute—The name of the network attribute from which the algorithm will assess the length of the diagram edges. This length determines the positions of the junctions along the direction. By default, without specifying the length_attribute property, the distances between the connected junctions along the direction are computed based on the current edge length and the length of the shortest edge. When length_attribute is specified, these distances are computed based on the values of this attribute for each edge (String).

Note:

This layout and its parameters are detailed in the Apply Relative Mainline Layout tool topic.

JSON syntax

RelativeMainlineDiagramLayout property set syntax

{
   "type": "PropertySet",
   "propertySetItems": [
    "is_active", < true | false >,
    "line_attribute", < line_attribute >,
    "mainline_direction", < 1 | 2 >,
    "offset_between_branches", < offset_between_branches >,
    "breakpoint_angle", < breakpoint_angle >,
    "type_attribute", < type_attribute >,
    "mainline_values",< mainline_values >,
    "branch_values",< branch_values >,
    "excluded_values",< excluded_values >,
    "is_compressing", < true | false >,
    "compression_ratio", < compression_ratio >,
    "minimal_distance", < minimal_distance >,
    "alignment_attribute", < alignment_attribute >,
    "length_attribute", < length_attribute >
   ]
  }

JSON example

RelativeMainlineDiagramLayout property set example

{
   "type": "PropertySet",
   "propertySetItems": [
    "is_active",
    false,
    "line_attribute",
    "",
    "mainline_direction",
    2,
    "offset_between_branches",
    2,
    "breakpoint_angle",
    45,
    "type_attribute",
    "",
    "mainline_values",
    "",
    "branch_values",
    "",
    "excluded_values",
    "",
    "is_compressing",
    false,
    "compression_ratio",
    0,
    "minimal_distance",
    0,
    "alignment_attribute",
    "",
    "length_attribute",
    ""
   ]
  }

ReshapeEdgesDiagramLayout property set object

The ReshapeEdgesDiagramLayout property set object provides the following information:

  • are_containers_preserved—Specifies whether the layout preserves the containers in the diagram (Boolean).
  • is_active—Specifies whether the layout is an active layout during diagram generation and update. This parameter is always ignored when performing the applyLayout operation.
  • reshape_type—The type of reshape operation the algorithm will process:
    • 1 for SQUARE_EDGES
    • 2 for REMOVE_VERTICES
    • 3 for SEPARATE_OVERLAPPING_EDGES
    • 4 for REDUCE_VERTICES_BY_ANGLE
    • 5 for MARK_CROSSING_EDGES
  • is_path_preserved—Specifies whether the layout algorithm will preserve the vertices along edges when it applies with reshape_type=1 (Boolean).
  • angle_threshold—The angle formed by the incident segments by which the vertex related to these segments is reduced when the layout runs with reshape_type=4 (Double).
  • shift_between_edge—The spacing that will separate two edges that have just been processed by the layout algorithm in the diagram coordinate system when it applies with reshape_type=3 (Double).
  • offset_between_segment—The spacing that will separate parallel segments of edges incident to a shared junction when those edges are squared, the distance being interpreted in the diagram coordinate system when the layout applies with ReshapeType=1 (Double).
  • breakpoint—The maximum distance between each junction to the first or last break point along edges incident to that junction when those edges are squared, the distance being interpreted in the diagram coordinate system when the layout applies with reshape_type=1 (Double).
  • circular_arc_radius—The radius of the circular arc that will be added at the crossing edge locations when the layout applies with reshape_type=5 (Double).
  • circular_arc_position—Specifies the segment on which the circular arc will be inserted when the layout applies with reshape_type=5:
    • 1 for LEFT_OF_VERTICAL_SEGMENT
    • 2 for RIGHT_OF_VERTICAL_SEGMENT
    • 3 for ABOVE_HORIZONTAL_SEGMENT
    • 4 for BELOW_HORIZONTAL_SEGMENT

Note:

This layout and its parameters are detailed in the Reshape Diagram Edges Layout tool topic.

JSON syntax

{
  "type": "PropertySet",
  "propertySetItems": ["are_containers_preserved", < true | false >, "is_active", < true | false >, "reshape_type", < 1 | 2 | 3 | 4 | 5 >, "is_path_preserved", < true | false >,
                       "angle_threshold", < angle_threshold >, "shift_between_edge", < shift_between_edge >, "offset_between_segment", < offset_between_segment >,
                       "breakpoint", < breakpoint >, "circular_arc_radius", < circular_arc_radius >, "circular_arc_position", < 1 | 2 | 3 | 4 >]
}

JSON example

{
   "type": "PropertySet",
   "propertySetItems": [
    "are_containers_preserved",
    false,
    "is_active",
    false,
    "reshape_type",
    1,
    "is_path_preserved",
    true,
    "angle_threshold",
    0,
    "shift_between_edge",
    0.5,
    "offset_between_segment",
    5,
    "breakpoint",
    8.6600000000000001,
    "circular_arc_radius",
    5,
    "circular_arc_position",
    2
   ]
  }

RotateTreeDiagramLayout property set object

The RotateTreeDiagramLayout property set object provides the following information:

  • are_containers_preserved—Specifies whether the layout preserves the containers in the diagram (Boolean).
  • angle—The angle in degrees that will be used to rotate the tree (Double).
  • rotation_junction—Specifies whether the algorithm adds up the angle parameter value to the Element rotation field value for each processed diagram junction (Boolean).

Note:

This layout and its parameters are detailed in the Apply Rotate Tree Layout tool topic.

JSON syntax

RotateTreeDiagramLayout property set syntax

{
  "type": "PropertySet",
  "propertySetItems": ["are_containers_preserved", < true | false >, "is_active", < true | false >, "rotation_angle", < rotation_angle >, "rotation_junction", < true | false >]
}

JSON example

RotateTreeDiagramLayout property set example

{
   "type": "PropertySet",
   "propertySetItems": [
    "are_containers_preserved",
    false,
    "is_active",
    false,
    "rotation_angle",
    45,
    "rotation_junction",
    false
   ]
  }

SeparateOverlappingEdgesDiagramLayout property set object

The SeparateOverlappingEdgesDiagramLayout property set object provides the following information:

  • are_containers_preserved—Specifies whether the layout preserves the containers in the diagram (Boolean).
  • is_active—Specifies whether the layout is an active layout during diagram generation and update. This parameter is always ignored when performing the applyLayout operation.
  • shift_between_edge—The absolute spacing that will separate two edges (Double).

Note:

This layout can also be applied using the ReshapeEdgesDiagramLayout property set object with reshape_type = 3.

JSON syntax

{
  "type": "PropertySet",
  "propertySetItems": ["are_containers_preserved", < true | false >, "is_active", < true | false >, "shift_between_edge", < shift_between_edge >]
}

JSON example

{
   "type": "PropertySet",
   "propertySetItems": [
    "are_containers_preserved",
    false,
    "is_active",
    false,
    "shift_between_edge",
    0.5
   ]
  }

SmartTreeDiagramLayout property set object

The SmartTreeDiagramLayout property set object provides the following information:

  • are_containers_preserved—Specifies whether the layout preserves the containers in the diagram (Boolean).
  • is_active—Specifies whether the layout is an active layout during diagram generation and update. This parameter is always ignored when performing the applyLayout operation.
  • is_unit_absolute—Specifies whether the layout parameters representing distances must be interpreted as linear units in the diagram coordinate system: True, or as relative units to an estimation of the average of the junctions sizes in the diagram when it's generated, or False (Boolean).
  • tree_direction—The direction of the tree (Enum):
    • 0 for FROM_RIGHT_TO_LEFT
    • 1 for FROM_TOP_TO_BOTTOM
    • 2 for FROM_LEFT_TO_RIGHT
    • 3 for FROM_BOTTOM_TO_TOP
  • subtree—The spacing between two neighboring subtrees in the diagram coordinate system when is_unit_absolute = True or in proportional units when is_unit_absolute = False (Double).
  • perpendicular —The spacing between diagram junctions that are displayed perpendicularly to the smart tree direction and that belong to the same subtree level in the diagram coordinate system when is_unit_absolute = True or in proportional units when is_unit_absolute = False (Double).
  • along—The spacing between diagram junctions that are displayed along the smart tree direction in the diagram coordinate system when is_unit_absolute = True or in proportional units when is_unit_absolute = False (Double).
  • disjoined_graph—The minimum spacing that must separate features belonging to disjoined graphs when the diagram contains such graphs in the diagram coordinate system when is_unit_absolute = True or in proportional units when is_unit_absolute = False (Double).
  • are_edges_orthogonal—Specifies whether the diagram edges related to the tree branches will display with right angles (Boolean).
    Note:

    This parameter is deprecated at ArcGIS Server 11.1. It is systematically ignored regardless of its value when the edge_display_type parameter is specified.

  • breakpoint_position—A double between 0 and 1 that determines the relative position of the break point on the diagram edges when edge_display_type=0 or edge_display_type=1. A double between 0.15 and 0.40 that determines the relative position of the two inflexion points that will be inserted along the diagram edges to compute the curved edges geometry when edge_display_type=2.
  • edge_display_type—The type of display for the diagram edges (Enum):
    • 0 for REGULAR_EDGES
    • 1 for ORTHOGONAL_EDGES
    • 2 for CURVED_EDGES
  • offset—The offset that separates overlapping segments when edge_display_type=1. It is a double between 0 and 10 percent of the smallest other spacing parameters.

Note:

This layout and its parameters are detailed in the Apply Smart Tree Layout tool topic.

JSON syntax

SmartTreeDiagramLayout property set syntax

{
  "type": "PropertySet",
  "propertySetItems": ["are_containers_preserved", < true | false >, "is_active", < true | false >, "is_unit_absolute", < true | false >, "tree_direction", < 0 |1 | 2 | 3 >, "subtree", < subtree >, "perpendicular", < perpendicular >, "along", < along >, "disjoined_graph", < disjoined_graph >, "are_edges_orthogonal", < true | false >, "breakpoint_position", < breakpoint_position >, "edge_display_type", < 0 | 1 | 2 >, "offset", < ooffset >]
}

JSON example

SmartTreeDiagramLayout property set example

{
   "type": "PropertySet",
   "propertySetItems": [
    "are_containers_preserved",
    false,
    "is_active",
    false,
    "is_unit_absolute",
    false,
    "tree_direction",
    2,
    "subtree",
    2,
    "perpendicular",
    2,
    "along",
    2,
    "disjoined_graph",
    4,
    "are_edges_orthogonal",
    false,
    "breakpoint_position",
    0.29999999999999999,
    "edge_display_type",
    0,
    "offset",
    0
   ]
  }

SpatialDispatchDiagramLayout property set object

The SpatialDispatchDiagramLayout property set object provides the following information:

  • are_containers_preserved—Specifies whether the layout preserves the containers in the diagram (Boolean).
  • is_active—Specifies whether the layout is an active layout during diagram generation and update. This parameter is always ignored when performing the applyLayout operation.
  • iterations_number—The number of layout algorithm iterations to process (Long).
  • maximum_shift_factor—The intensity of the diagram junctions' displacement for junctions that are very close together. The larger the shift factor, the larger the separation between the diagram junctions that almost overlap (Long).

Note:

This layout and its parameters are detailed in the Apply Spatial Dispatch Layout tool topic.

JSON syntax

SpatialDispatchDiagramLayout property set syntax

{
  "type": "PropertySet",
  "propertySetItems": ["are_containers_preserved", < true | false >, "is_active", < true | false >, "iterations_number", < iterations_number >, "maximum_shift_factor", < maximum_shift_factor >]
}

JSON example

SpatialDispatchDiagramLayout property set example

{
   "type": "PropertySet",
   "propertySetItems": [
    "are_containers_preserved",
    false,
    "is_active",
    false,
    "iterations_number",
    5,
    "maximum_shift_factor",
    2
   ]
  }