Add Reduce Junction By Category Rule (Network Diagram)

Summary

Adds a diagram rule to automatically reduce junctions during the building of diagrams based on an existing template. This reduction depends on whether the junctions are tagged with specific network categories.

Learn more about the reduction of junctions in diagrams

Caution:

This tool is a configuration and administration tool.

Note:

This tool impacts the consistency of any existing diagrams based on the input diagram template. All of the existing diagrams become inconsistent and open with a consistency warning icon Diagram to update until they are updated.

Note:

This tool only applies to diagram templates in Utility Network version 7 and later.

Usage

  • This tool is not supported when working with a utility network service. You must use either a utility network in a file or mobile geodatabase, or a database connection to a utility network in an enterprise geodatabase. When working with an enterprise geodatabase, the following are requirements:

    • The Input Network parameter value must be from a database connection established as the database utility network owner.
    • The connected ArcGIS Enterprise portal account must be the portal utility network owner.
    • This tool must be connected to the default version, which is expected to be public and not protected.

  • The Reduce Junction rule is used to simplify the diagram graph while preserving the topology.

    The Reduce Junction rule is used to simplify the diagram graph while preserving the topology by reducing junctions according to the number of their adjacent junctions—that is, the number of junctions to which they are connected and, optionally, to particular attributes on their adjacent edges. This tool allows you to configure the Reduce Junction rule to run by network categories. This means that you can configure the reduction of junctions in the generated diagrams depending on whether they are tagged with specific network categories.

    Learn more about reductions in diagrams

  • Starting at ArcGIS Pro 3.4, when working in Utility Network version 7 with a partitioned tier definition and configuring this tool to reduce junctions with three connections or more, you can have the rule consider flow direction based on the digitized direction to identify the single upstream or single downstream junction to which the junction will be reduced. In earlier versions, the upstream and downstream trace operations could only consider flow direction based on the subnetwork controller locations.

Parameters

LabelExplanationData Type
Input Network

The utility network containing the diagram template that will be modified.

Utility Network
Input Diagram Template

The name of the diagram template that will be modified.

String
Active

Specifies whether the rule will be active when generating and updating diagrams based on the specified template.

  • Checked—The added rule will become active during the generation and update of any diagrams based on the input template. This is the default.
  • Unchecked—The added rule will not become active during the generation or update of any diagrams based on the input template.

Boolean
Rule Process

Specifies how the junctions that are tagged with the specified network categories will be reduced.

  • Exclude categoriesJunctions that are tagged with the specified network categories will not be reduced, while other junctions will be reduced. This is the default.
  • Include categoriesJunctions that are tagged with the specified network categories will be reduced.
String
Categories

The network categories that will be excluded or included depending on the Rule Process parameter value.

If the Rule Process parameter is set to Include categories, one or more network categories must be specified. All junctions that are tagged with the specified categories will be reduced in the generated diagrams.

If the Rule Process parameter is set to Exclude categories, the junctions that are tagged with the specified categories will not be reduced in the generated diagrams, while junctions that are not tagged with the specified categories will be reduced.

String
Reduce Junctions With
(Optional)

Specifies the number of junction connections that will be considered for reduction.

  • Maximum two connected junctionsJunctions with two or fewer connections will be considered. In this case, a specific process will be run according to the number of candidate junction connections that will be reduced. This is the default.
  • Minimum three connected junctionsJunctions with three or more connections will be considered. In a network with a hierarchical tier definition, such a junction will be reduced to any other junction it is connected to, except when it is connected to a single junction. In a network with a partitioned tier definition, upstream and downstream traces will be run to determine the single upstream or downstream junction to which it will be reduced.
String
Reduce if unconnected
(Optional)

Specifies whether each unconnected network diagram junction candidate will be reduced. This parameter is only active when the Reduce Junctions With parameter is set to Maximum two connected junctions.

  • Checked—Unconnected network diagram junction candidates will be reduced. Each junction will be removed.
  • Unchecked—Unconnected network diagram junction candidates will not be reduced; they will be kept. This is the default.

Boolean
Reduce if connected to a single junction
(Optional)

Specifies whether each network diagram junction reduction candidate that is connected to a single junction will be reduced. This parameter is only active when the Reduce Junctions With parameter is set to Maximum two connected junctions.

  • Checked—Network diagram junction reduction candidates that are connected to a single junction will be reduced. Each junction and its incident edge will be reduced onto its single connected junction.
  • Unchecked—Network diagram junction reduction candidates that are connected to a single junction will not be reduced; they will be kept. This is the default.

Boolean
Reduce if connected to 2 different junctions
(Optional)

Specifies whether each network diagram junction reduction candidate that is connected to two other junctions will be reduced. This parameter is only active when the Reduce Junctions With parameter is set to Maximum two connected junctions.

  • Checked—Network diagram junction reduction candidates that connect to two other junctions will be reduced. Each junction and its incident edges will be reduced onto a super span edge (the reduction edge). This is the default.
  • Unchecked—Network diagram junction reduction candidates that connect to two other junctions will not be reduced; they will be kept.

Boolean
Edge Attribute Names
(Optional)

The alias of the edge attributes adjacent to the junction reduction candidate.

The junction will be reduced only when all of its adjacent edges have the same values for each specified attribute alias.

String
Description
(Optional)

The description of the rule.

String
Use Digitized Direction

Specifies whether the digitized direction will be used when reducing junctions with three or more connections.

This parameter is only active when the Reduce Junctions With parameter is set to Minimum three connected junctions.

  • Checked—The reduction process will consider flow direction based on the digitized direction to identify the single upstream or single downstream junction to which the junction will be reduced.
  • Unchecked—The reduction process will consider flow direction based on the location of subnetwork controllers to identify the single upstream or single downstream junction to which the junction will be reduced. This is the default.

Boolean

Derived Output

LabelExplanationData Type
Output Network

The updated utility network.

Utility Network
Output Diagram Template

The name of the diagram template.

String

arcpy.nd.AddReduceJunctionByCategoryRule(in_utility_network, template_name, is_active, inverse_category_selection, category, {connectivity_options}, {unconnected_junctions}, {one_connected_junction}, {two_connected_junctions}, {edges_attributes}, {description}, use_digitized_direction)
NameExplanationData Type
in_utility_network

The utility network containing the diagram template that will be modified.

Utility Network
template_name

The name of the diagram template that will be modified.

String
is_active

Specifies whether the rule will be enabled when generating and updating diagrams based on the specified template.

  • ACTIVEThe added rule will become enabled during the generation and update of any diagrams based on the input template. This is the default.
  • INACTIVEThe added rule will not become enabled during the generation or update of any diagrams based on the input template.
Boolean
inverse_category_selection

Specifies how the junctions that are tagged with the specified network categories will be reduced.

  • EXCLUDE_CATEGORIESJunctions that are tagged with the specified network categories will not be reduced, while other junctions will be reduced. This is the default.
  • INCLUDE_CATEGORIESJunctions that are tagged with the specified network categories will be reduced.
String
category
[category,...]

The network categories that will be excluded or included depending on the inverse_category_selection parameter value.

If the inverse_category_selection parameter is set to INCLUDE_CATEGORIES, one or more network categories must be specified. All junctions that are tagged with the specified categories will be reduced in the generated diagrams.

If the inverse_category_selection parameter is set to EXCLUDE_CATEGORIES, the junctions that are tagged with the specified categories will not be reduced in the generated diagrams, while junctions that are not tagged with the specified categories will be reduced.

String
connectivity_options
(Optional)

Specifies the number of junction connections that will be considered for reduction.

  • MAX_2_CONNECTED_JUNCTIONSJunctions with two or fewer connections will be considered. In this case, a specific process will be run according to the number of candidate junction connections that will be reduced. This is the default.
  • MIN_3_CONNECTED_JUNCTIONSJunctions with three or more connections will be considered. In a network with a hierarchical tier definition, such a junction will be reduced to any other junction it is connected to, except when it is connected to a single junction. In a network with a partitioned tier definition, upstream and downstream traces will be run to determine the single upstream or downstream junction to which it will be reduced.
String
unconnected_junctions
(Optional)

Specifies whether each unconnected network diagram junction candidate will be reduced. This parameter is only enabled when the connectivity_options parameter is set to MAX_2_CONNECTED_JUNCTIONS.

  • REDUCE_UNCONNECTED_JCTUnconnected network diagram junction candidates will be reduced. Each junction will be removed.
  • KEEP_UNCONNECTED_JCTUnconnected network diagram junction candidates will not be reduced; they will be kept. This is the default.
Boolean
one_connected_junction
(Optional)

Specifies whether each network diagram junction reduction candidate that is connected to a single junction will be reduced. This parameter is only enabled when the connectivity_options parameter is set to MAX_2_CONNECTED_JUNCTIONS.

  • REDUCE_JCT_TO_1JCTNetwork diagram junction reduction candidates that are connected to a single junction will be reduced. Each junction and its incident edge will be reduced onto its single connected junction.
  • KEEP_JCT_TO_1JCTNetwork diagram junction reduction candidates that are connected to a single junction will not be reduced; they will be kept. This is the default.
Boolean
two_connected_junctions
(Optional)

Specifies whether each network diagram junction reduction candidate that is connected to two other junctions will be reduced. This parameter is only enabled when the connectivity_options parameter is set to MAX_2_CONNECTED_JUNCTIONS.

  • REDUCE_JCT_TO_2JCTSNetwork diagram junction reduction candidates that connect to two other junctions will be reduced. Each junction and its incident edges will be reduced onto a super span edge (the reduction edge). This is the default.
  • KEEP_JCT_TO_2JCTSNetwork diagram junction reduction candidates that connect to two other junctions will not be reduced; they will be kept.
Boolean
edges_attributes
[edges_attributes,...]
(Optional)

The alias of the edge attributes adjacent to the junction reduction candidate.

The junction will be reduced only when all of its adjacent edges have the same values for each specified attribute alias.

String
description
(Optional)

The description of the rule.

String
use_digitized_direction

Specifies whether the digitized direction will be used when reducing junctions with three or more connections.

This parameter is only enabled when the connectivity_options parameter is set to MIN_3_CONNECTED_JUNCTIONS.

  • USE_DIGITIZED_DIRECTIONThe reduction process will consider flow direction based on the digitized direction to identify the single upstream or single downstream junction to which the junction will be reduced.
  • IGNORE_DIGITIZED_DIRECTIONThe reduction process will consider flow direction based on the location of subnetwork controllers to identify the single upstream or single downstream junction to which the junction will be reduced. This is the default.
Boolean

Derived Output

NameExplanationData Type
out_utility_network

The updated utility network.

Utility Network
out_template_name

The name of the diagram template.

String

Code sample

AddReduceJunctionByCategoryRule example (Python window)

Add a Reduce Junction rule to the MyTemplate1 template that exists for a given network to systematically reduce any junctions that are not tagged as Subnetwork Controller or Switch network categories regardless of their connectivity options.

import arcpy

input_Network = 'D:/MyProjectLocation/MyDatabaseConnection.sde/MyDatabase.MAP.Electric/MyDatabase.MAP.Electric'
input_DiagramTemplate = 'MyTemplate1'
input_Category1 = 'Subnetwork Controller'
input_Category2 = 'Switch'

arcpy.nd.AddReduceJunctionRule(
    input_Network, input_DiagramTemplate, 'ACTIVE', 'EXCLUDE_CATEGORIES',
    [input_Category1, input_Category2], 'MAX_2_CONNECTED_JUNCTIONS',
    'REDUCE_UNCONNECTED_JCT', 'REDUCED_JCT_TO_1JCT', 'REDUCE_JCT_TO_2JCTS')

Environments

This tool does not use any geoprocessing environments.

Licensing information

  • Basic: No
  • Standard: Yes
  • Advanced: Yes

Related topics