Summary
Adds the Relative Mainline Layout algorithm to the list of layouts to be automatically chained at the end of the building of diagrams based on a given template. This tool also presets the Relative Mainline Layout algorithm parameters for any diagram based on that template.
This layout arranges the network diagram features in the active diagram along parallel straight lines, with all the connected edges having the same attribute value. It also places the branches from those lines, preserving their directions regarding the straight lines and the distances proportional to the initial distance and relative to each other.
This tool is a configuration and administration tool that must be run by the database owner of the utility network through a direct connection to the default version. In addition to that requirement, the connected portal account must be the owner of the utility network to perform this operation. This essentially forms two-factor authentication.
Usage
To preset the layout algorithm parameters for any diagram based on the diagram template, uncheck the Active parameter (is_active="INACTIVE" in Python).
Run the tool with Active set to True (the default) (is_active="ACTIVE" in Python) if you also want the layout algorithm to be added to the list of layouts that will be automatically chained at the end of diagram generation based on the input diagram template.
Syntax
AddRelativeMainlineLayout_un (in_utility_network, template_name, is_active, line_attribute, {mainline_direction}, {offset_between_branches}, {breakpoint_angle}, {type_attribute}, {mainline_values}, {branch_values}, {excluded_values}, {is_compressing}, {compression_ratio}, {minimal_distance}, {alignment_attribute}, {initial_distances}, {length_attribute})
Parameter | Explanation | Data Type |
in_utility_network | The utility network referencing the diagram template to modify. | Utility Network |
template_name | The name of the diagram template to modify. | String |
is_active | Specifies whether the layout algorithm is automatically executed when generating diagrams based on the specified template.
| Boolean |
line_attribute | The name of the network attribute that will be used to identify the lines that comprise the straight lines. This network attribute must exist in the utility network line classes. Its values should be the same for all the edges that comprise a straight line, for example, Line 1, Line 2, and so on | String |
mainline_direction (Optional) | The direction of the main line
| String |
offset_between_branches (Optional) | The spacing between two adjacent branches along the axis perpendicular to the direction of the lines. | Linear Unit |
breakpoint_angle (Optional) | The angle that will be used to position the break point on the branches. It is a value 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 (Optional) | The name of the network attribute that will be used to qualify the lines. This network attribute may exist in the utility network line classes. Note:The type_attribute and line_attribute network attributes can be the same. | String |
mainline_values [mainline_values,...] (Optional) | The type_attribute values that identify the main lines. When such values exist, they must be the same for any edge that comprises the main lines, regardless of their related utility network feature classes. | Value Table |
branch_values [branch_values,...] (Optional) | The type_attribute values that identify the branches. | Value Table |
excluded_values [excluded_values,...] (Optional) | The type_attribute values that identify the edges that must be excluded from the straight lines (crossovers or ladders). | Value Table |
is_compressing (Optional) | Specifies whether the graph will be compressed.
| Boolean |
compression_ratio (Optional) | A value 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 (Optional) | The minimal distance between two adjacent groups of neighbor junctions. This minimal distance is also used to group neighbor junctions regarding their projection along the direction axis. Two junctions projected on this axis will belong to the same group when the distance between the two projected points is less than this distance. | Linear Unit |
alignment_attribute (Optional) | The name of the network attribute that will be used to align lines that are split. The algorithm aligns the line with the same attribute value. | String |
initial_distances (Optional) | Specifies how the length of the diagram edges will be assessed. This length determines the positions of the junctions along the direction. The distances between the connected junctions along the direction are not equidistant; they are relative to each other and depend on the current edge length and the length of the shortest edge.
| String |
length_attribute (Optional) |
The network attribute from which the distances will be computed when initial_distances is FROM_ATTRIBUTE_EDGE. | String |
Derived Output
Name | Explanation | Data Type |
out_utility_network | The updated utility network. | Utility Network |
out_template_name | The name of the network template. | String |
Code sample
Add the Relative Mainline Layout as an automatic layout to the MyTemplate1 template in the utility network.
import arcpy
input_UtilityNetwork = "D:/MyProjectLocation/MyDatabaseConnection.sde/MyDatabase.MAP.Electric/MyDatabase.MAP.Electric"
input_DiagramTemplate = "MyTemplate1"
arcpy.AddRelativeMainlineLayout_un(input_UtilityNetwork, input_DiagramTemplate,
"ACTIVE", "LineTrack",
"FROM_LEFT_RIGHT", 2, 45)
Environments
Licensing information
- Basic: No
- Standard: Yes
- Advanced: Yes