应用智能树布局 (网络逻辑示意图)

摘要

用于按等级排列逻辑示意图要素并将其置于智能树中。

了解有关智能树布局算法的详细信息

警告:

如果您具有处于打开状态的编辑会话,则在运行此工具前,必须先保存您的编辑内容。 从而确保逻辑示意图可反映对数据库中网络拓扑所做的最新更改。 如果保存编辑内容失败,则编辑内容不会反映在逻辑示意图中。

注:

各布局算法均包括默认参数值。 除非另行指定,否则将使用默认参数值。 如果输入网络逻辑示意图基于模板且已使用其他参数值来配置此布局,则会使用该值。

使用情况

  • 在与企业级地理数据库中的公共设施网络或追踪网络数据库连接搭配使用时,系统不支持此工具。 您必须使用相关的已发布公共设施网络或追踪网络服务或文件或移动地理数据库中的公共设施网络或追踪网络。

  • 输入网络逻辑示意图图层必须来自文件或移动地理数据库中的公共设施网络或追踪网络或者网络逻辑示意图服务。

  • 此布局算法会对逻辑示意图要素进行等级排列,并根据指定的方向和间距将它们置于智能树中。 默认情况下,树分支按照在应用布局之前它们彼此之间的相对位置进行排序。 自 ArcGIS Pro 3.6ArcGIS Enterprise 12.0 版本起,树分支也可以根据分支上的属性值进行排序;也就是说,根据线或者分支末端交汇点上存在的属性进行排序。

  • 如果在逻辑示意图中指定根交汇点,则智能树布局算法将构建从交汇点开始的智能树。

    如果在逻辑示意图中指定多个根交汇点,则这些根交汇点沿垂直于树方向的同一个轴对齐,并显示为逻辑示意图树分支的不同起始点。

    如果未指定根交汇点,则算法将识别与最小网络拓扑索引关联的逻辑示意图交汇点,并将此交汇点用作根交汇点。

  • 当处理非常大的逻辑示意图时,请考虑在服务器上以异步模式应用布局

参数

标注说明数据类型
输入网络逻辑示意图图层

将应用布局的网络逻辑示意图。

Diagram Layer
保留容器布局
(可选)

指定算法将如何处理容器。

  • 选中 - 对逻辑示意图的上方图应用布局算法,以保留容器。
  • 未选中 - 对逻辑示意图中的内容要素和非内容要素应用布局算法。 这是默认设置。

Boolean
树方向
(可选)

指定绘制树的方向。

  • 从左到右将从左到右绘制树。 这是默认设置。
  • 从右到左将从右到左绘制树。
  • 从下到上将从下到上绘制树。
  • 从上到下将从上到下绘制树。
String
间距值解释为逻辑示意图坐标系中的绝对单位
(可选)

指定将如何解释表示距离的参数。

  • 选中 - 布局算法会按线性单位来解释距离值。
  • 未选中 - 布局算法会将距离值解释为当前逻辑示意图范围内交汇点大小的估算平均值的相对单位。 这是默认设置。

Boolean
子树之间的间距
(可选)

两个相邻子树之间的间距。即,垂直于智能树方向显示并且属于不同子树的逻辑示意图交汇点之间的间距。 默认值为逻辑示意图坐标系中的单位。 此参数只能与绝对单位搭配使用。

Linear Unit
子树之间的间距
(可选)

两个相邻子树之间的间距。即,垂直于智能树方向显示并且属于不同子树的逻辑示意图交汇点之间的间距。 默认值为 2。 此参数只能与比例单位搭配使用。

Double
交汇点之间的间距垂直于方向
(可选)

垂直于智能树方向显示,并且属于相同子树级别的逻辑示意图交汇点之间的间距。 默认值为逻辑示意图坐标系中的 2 个单位。 此参数只能与绝对单位搭配使用。

Linear Unit
交汇点之间的间距垂直于方向
(可选)

垂直于智能树方向显示,并且属于相同子树级别的逻辑示意图交汇点之间的间距。 默认值为 2。 此参数只能与比例单位搭配使用。

Double
交汇点之间的间距沿着方向
(可选)

沿智能树方向显示的逻辑示意图交汇点之间的间距。 默认值为逻辑示意图坐标系中的 2 个单位。 此参数只能与绝对单位搭配使用。

Linear Unit
交汇点之间的间距沿着方向
(可选)

沿智能树方向显示的逻辑示意图交汇点之间的间距。 默认值为 2。 此参数只能与比例单位搭配使用。

Double
不相交图形之间
(可选)

当逻辑示意图包含不相交图形时,属于此类图形的要素之间的最小间距。 此参数与绝对单位搭配使用。 默认值为逻辑示意图坐标系中的 4 个单位。

Linear Unit
不相交图形之间
(可选)

当逻辑示意图包含不相交图形时,属于此类图形的要素之间的最小间距。 此参数与比例单位搭配使用。 默认值为 4。

Double
正交显示的边
(可选)
Boolean
中断点相对位置 (%)
(可选)

边显示类型设置为规则边(在 edge_display_type = "REGULAR_EDGES" 中为 Python)或边显示类型设置为正交边(在 edge_display_type = "ORTHOGONAL_EDGES" 中为 Python)时,将沿逻辑示意图边插入的中断点的相对位置。 以 0 至 100 之间的百分比来表示。

  • 当中断点相对位置 (%) 的值为 0 时,中断点位于边的自交汇点的 x 坐标,以及水平树边的至交汇点的 y 坐标。 中断点位于边的自交汇点的 y 坐标,以及垂直树边的至交汇点的 x 坐标。
  • 当中断点相对位置 (%) 的值为 100 时,即表示未在逻辑示意图边上插入任何中断点;每条逻辑示意图边直接连接其自和至交汇点。
  • 当中断点相对位置 (%) 的值为介于 0 至 100 之间的 N 时,中断点位于 [XY] 线段长度的 N%,其中 X 表示边的自交汇点的 x 坐标,Y 表示水平树边的至交汇点的 y 坐标。 中断点位于 [YX] 线段长度的 N%,其中 Y 表示边的自交汇点的 y 坐标,X 表示垂直树边的至交汇点的 x 坐标。

边显示类型设置为弯曲边(在 edge_display_type = "CURVED_EDGES" 中为 Python)时,将沿逻辑示意图边插入、用于计算弯曲边几何的两个拐点的相对位置。 以 15 至 40 之间的百分比来表示。 如果中断点相对位置 (%) 值为介于 15 至 40 之间的 N:

  • X 为边的自交汇点的 x 坐标,Y 为水平树边的至交汇点的 y 坐标:
    • 第一个拐点将定位在 [XY] 线段长度的 N%。
    • 第二个拐点将定位在 [XY] 线段长度的 (100 - N)%。
  • Y 为边的自交汇点的 y 坐标,X 为垂直树边的至交汇点的 x 坐标:
    • 第一个拐点将定位在 [YX] 线段长度的 N%。
    • 第二个拐点将定位在 [XY] 线段长度的 (100 - N)%。

注:

上述自和至交汇点的概念与树方向相关;它与网络中的边要素或边对象的真实拓扑无关。

Double
边显示类型
(可选)

指定与树分支相关的逻辑示意图边的显示类型。

  • 规则边与树分支相关的所有逻辑示意图边将不会显示为直角。 这是默认设置。
  • 正交边与树分支相关的所有逻辑示意图边将显示为直角。
  • 弯曲边与树分支相关的所有逻辑示意图边将显示为曲线。
String
在服务器上以异步模式运行
(可选)

指定布局算法在服务器上将异步运行还是同步运行。

  • 选中 - 布局算法将在服务器上异步运行。 服务器资源可通过该选项来运行超时较长的布局算法。 对于应用于大型逻辑示意图(超过 25,000 个要素)的耗时且可能导致服务器超时的布局(例如,部分重叠边),建议进行异步运行。
  • 未选中 - 布局算法将在服务器上同步运行。 如果超过服务默认超时值(600 秒),则布局算法可能失败,无法完成。 这是默认设置。

Boolean
绝对偏移
(可选)

在使用绝对单位,并且边显示类型设置为正交边时,将使用此偏移分隔重叠线段。 该值不能超过为其他间距参数指定的最小值的 10%。 默认值为 0。

Linear Unit
比例偏移
(可选)

在使用比例单位,并且边显示类型设置为正交边时,将使用此偏移分隔重叠线段。 它是一个双精度值,不能超过为其他间距参数指定的最小值的 10%。 默认值为 0。

Double
根据属性排列树分支
(可选)

指定是否根据属性排列树分支。

  • 选中 - 根据属性排列树分支。
  • 未选中 - 根据应用布局时分支末端交汇点的当前位置排列树分支。 这是默认设置。

    例如,考虑到树方向,如果分支 A 在应用布局之前,就已经在逻辑示意图中展示为在分支 B 之上,则任何以交汇点 A 结束的分支都将被置于以交汇点 B 结束的分支上方。

Boolean
属性可用性
(可选)

指定所要考虑的属性在逻辑示意图交汇点或逻辑示意图边缘上是否可用。

  • 在交汇点上搜索属性所要考虑的属性在逻辑示意图交汇点上可用。 这是默认设置。
  • 在边缘上搜索属性所要考虑的属性在逻辑示意图边缘上可用。
String
属性名称
(可选)

当属性字段存在时将用于排列树分支的字段的名称或别名。 当属性可用性参数值是在交汇点上搜索属性时,将在分支末端交汇点上查询此顺序属性。 当属性可用性参数值是在边缘上搜索属性时,将在分支末端边缘上查询此顺序属性。

String
属性排序顺序
(可选)

用于确定树布局分支排列位置的排序顺序。

对于垂直树布局(即当树方向参数值为从上到下从下到上时),排序始终从左首分支到右尾分支。 对于水平树布局(即当树方向参数值为从左到右从右到左时),排序则从顶首分支到底尾分支。

  • 升序树分支将基于属性字段值按照升序排序。 这是默认设置。
  • 降序树分支将基于属性字段值按照降序排序。
String

派生输出

标注说明数据类型
输出网络逻辑示意图

更新的网络逻辑示意图图层。

Diagram Layer

arcpy.nd.ApplySmartTreeLayout(in_network_diagram_layer, {are_containers_preserved}, {tree_direction}, {is_unit_absolute}, {subtree_absolute}, {subtree_proportional}, {perpendicular_absolute}, {perpendicular_proportional}, {along_absolute}, {along_proportional}, {disjoined_graph_absolute}, {disjoined_graph_proportional}, {are_edges_orthogonal}, {breakpoint_position}, {edge_display_type}, {run_async}, {offset_absolute}, {offset_proportional}, {order_tree_branches}, {attribute_availability}, {attribute_name}, {attribute_sort_order})
名称说明数据类型
in_network_diagram_layer

将应用布局的网络逻辑示意图。

Diagram Layer
are_containers_preserved
(可选)

指定算法将如何处理容器。

  • PRESERVE_CONTAINERS对逻辑示意图的上方图应用布局算法,以保留容器。
  • IGNORE_CONTAINERS对逻辑示意图中的内容要素和非内容要素应用布局算法。 这是默认设置。
Boolean
tree_direction
(可选)

指定绘制树的方向。

  • FROM_LEFT_TO_RIGHT将从左到右绘制树。 这是默认设置。
  • FROM_RIGHT_TO_LEFT将从右到左绘制树。
  • FROM_BOTTOM_TO_TOP将从下到上绘制树。
  • FROM_TOP_TO_BOTTOM将从上到下绘制树。
String
is_unit_absolute
(可选)

指定将如何解释表示距离的参数。

  • ABSOLUTE_UNIT布局算法会按线性单位来解释距离值。
  • PROPORTIONAL_UNIT布局算法会将距离值解释为当前逻辑示意图范围内交汇点大小的估算平均值的相对单位。 这是默认设置。
Boolean
subtree_absolute
(可选)

两个相邻子树之间的间距。即,垂直于智能树方向显示并且属于不同子树的逻辑示意图交汇点之间的间距。 默认值为逻辑示意图坐标系中的单位。 此参数只能与绝对单位搭配使用。

Linear Unit
subtree_proportional
(可选)

两个相邻子树之间的间距。即,垂直于智能树方向显示并且属于不同子树的逻辑示意图交汇点之间的间距。 默认值为 2。 此参数只能与比例单位搭配使用。

Double
perpendicular_absolute
(可选)

垂直于智能树方向显示,并且属于相同子树级别的逻辑示意图交汇点之间的间距。 默认值为逻辑示意图坐标系中的 2 个单位。 此参数只能与绝对单位搭配使用。

Linear Unit
perpendicular_proportional
(可选)

垂直于智能树方向显示,并且属于相同子树级别的逻辑示意图交汇点之间的间距。 默认值为 2。 此参数只能与比例单位搭配使用。

Double
along_absolute
(可选)

沿智能树方向显示的逻辑示意图交汇点之间的间距。 默认值为逻辑示意图坐标系中的 2 个单位。 此参数只能与绝对单位搭配使用。

Linear Unit
along_proportional
(可选)

沿智能树方向显示的逻辑示意图交汇点之间的间距。 默认值为 2。 此参数只能与比例单位搭配使用。

Double
disjoined_graph_absolute
(可选)

当逻辑示意图包含不相交图形时,属于此类图形的要素之间的最小间距。 此参数与绝对单位搭配使用。 默认值为逻辑示意图坐标系中的 4 个单位。

Linear Unit
disjoined_graph_proportional
(可选)

当逻辑示意图包含不相交图形时,属于此类图形的要素之间的最小间距。 此参数与比例单位搭配使用。 默认值为 4。

Double
are_edges_orthogonal
(可选)

指定将如何显示与树分支相关的逻辑示意图边。

旧版本:

此参数已在 ArcGIS Pro 3.6 中弃用。 如果指定了 edge_display_type 参数,则无论其值是多少,都会被系统忽略。 但是,为了保持与 ArcGIS Pro 2.1 的兼容性,如果未指定 edge_display_type 参数,则其将保持启用状态。

  • ORTHOGONAL_EDGES与树分支相关的所有逻辑示意图边将显示为直角。
  • SLANTED_EDGES与树分支相关的所有逻辑示意图边将不会显示为直角。 这是默认设置。
Boolean
breakpoint_position
(可选)

边显示类型设置为规则边(在 edge_display_type = "REGULAR_EDGES" 中为 Python)或边显示类型设置为正交边(在 edge_display_type = "ORTHOGONAL_EDGES" 中为 Python)时,将沿逻辑示意图边插入的中断点的相对位置。 以 0 至 100 之间的百分比来表示。

  • 当中断点相对位置 (%) 的值为 0 时,中断点位于边的自交汇点的 x 坐标,以及水平树边的至交汇点的 y 坐标。 中断点位于边的自交汇点的 y 坐标,以及垂直树边的至交汇点的 x 坐标。
  • 当中断点相对位置 (%) 的值为 100 时,即表示未在逻辑示意图边上插入任何中断点;每条逻辑示意图边直接连接其自和至交汇点。
  • 当中断点相对位置 (%) 的值为介于 0 至 100 之间的 N 时,中断点位于 [XY] 线段长度的 N%,其中 X 表示边的自交汇点的 x 坐标,Y 表示水平树边的至交汇点的 y 坐标。 中断点位于 [YX] 线段长度的 N%,其中 Y 表示边的自交汇点的 y 坐标,X 表示垂直树边的至交汇点的 x 坐标。

边显示类型设置为弯曲边(在 edge_display_type = "CURVED_EDGES" 中为 Python)时,将沿逻辑示意图边插入、用于计算弯曲边几何的两个拐点的相对位置。 以 15 至 40 之间的百分比来表示。 如果中断点相对位置 (%) 值为介于 15 至 40 之间的 N:

  • X 为边的自交汇点的 x 坐标,Y 为水平树边的至交汇点的 y 坐标:
    • 第一个拐点将定位在 [XY] 线段长度的 N%。
    • 第二个拐点将定位在 [XY] 线段长度的 (100 - N)%。
  • Y 为边的自交汇点的 y 坐标,X 为垂直树边的至交汇点的 x 坐标:
    • 第一个拐点将定位在 [YX] 线段长度的 N%。
    • 第二个拐点将定位在 [XY] 线段长度的 (100 - N)%。

注:

上述自和至交汇点的概念与树方向相关;它与网络中的边要素或边对象的真实拓扑无关。

Double
edge_display_type
(可选)

指定与树分支相关的逻辑示意图边的显示类型。

  • REGULAR_EDGES与树分支相关的所有逻辑示意图边将不会显示为直角。 这是默认设置。
  • ORTHOGONAL_EDGES与树分支相关的所有逻辑示意图边将显示为直角。
  • CURVED_EDGES与树分支相关的所有逻辑示意图边将显示为曲线。
String
run_async
(可选)

指定布局算法在服务器上将异步运行还是同步运行。

  • RUN_ASYNCHRONOUSLY布局算法将在服务器上异步运行。 服务器资源可通过该选项来运行超时较长的布局算法。 对于应用于大型逻辑示意图(超过 25,000 个要素)的耗时且可能导致服务器超时的布局(例如,部分重叠边),建议进行异步运行。
  • RUN_SYNCHRONOUSLY布局算法将在服务器上同步运行。 如果超过服务默认超时值(600 秒),则布局算法可能失败,无法完成。 这是默认设置。
Boolean
offset_absolute
(可选)

此偏移用于在 is_unit_absolute = "ABSOLUTE_UNIT"edge_display_type = "ORTHOGONAL_EDGES" 时分隔重叠线段。 该值不能超过为其他间距参数指定的最小值的 10%。 默认值为 0。

Linear Unit
offset_proportional
(可选)

此偏移用于在 is_unit_absolute = "PROPORTIONAL_UNIT"edge_display_type = "ORTHOGONAL_EDGES" 时分隔重叠线段。 它是一个双精度值,不能超过为其他间距参数指定的最小值的 10%。 默认值为 0。

Double
order_tree_branches
(可选)

指定是否根据属性排列树分支。

  • USE_ORDER_ATTRIBUTE根据属性排列树分支。
  • USE_CURRENT_GEOMETRY根据应用布局时分支末端交汇点的当前位置排列树分支。 这是默认设置。例如,考虑到树方向,如果分支 A 在应用布局之前,就已经在逻辑示意图中展示为在分支 B 之上,则任何以交汇点 A 结束的分支都将被置于以交汇点 B 结束的分支上方。
Boolean
attribute_availability
(可选)

指定所要考虑的属性在逻辑示意图交汇点或逻辑示意图边缘上是否可用。

  • JUNCTION所要考虑的属性在逻辑示意图交汇点上可用。 这是默认设置。
  • EDGE所要考虑的属性在逻辑示意图边缘上可用。
String
attribute_name
(可选)

当属性字段存在时将用于排列树分支的字段的名称或别名。 当 attribute_availability 参数值是 JUNCTION,将在分支末端交汇点上查询此顺序属性。 当 attribute_availability 参数值是 EDGE,将在分支末端边缘上查询此顺序属性。

String
attribute_sort_order
(可选)

用于确定树布局分支排列位置的排序顺序。

对于垂直树布局(即当 tree_direction 参数值为 FROM_TOP_TO_BOTTOMFROM_BOTTOM_TO_TOP 时),排序始终从左首分支到右尾分支。 对于水平树布局(即当 tree_direction 参数值为 FROM_LEFT_TO_RIGHTFROM_RIGHT_TO_LEFT 时),排序则从顶首分支到底尾分支。

  • ASCENDING树分支将基于属性字段值按照升序排序。 这是默认设置。
  • DESCENDING树分支将基于属性字段值按照降序排序。
String

派生输出

名称说明数据类型
out_network_diagram_layer

更新的网络逻辑示意图图层。

Diagram Layer

代码示例

ApplySmartTreeLayout 示例(Python窗口)

本示例将智能树布局算法应用于名为 Temporary Diagram 的逻辑示意图。

import arcpy
arcpy.nd.ApplySmartTreeLayout("Temporary Diagram", "PRESERVE_CONTAINERS", 
                              "FROM_LEFT_TO_RIGHT", "PROPORTIONAL_UNIT", 
                              "", 8, "", 5, "", 5, "", 15, "", 70, 
                              "REGULAR_EDGES", "RUN_SYNCHRONOUSLY", "USE_CURRENT_GEOMETRY")

环境

此工具不使用任何地理处理环境。

许可信息

  • Basic: 否
  • Standard: 是
  • Advanced: 是

相关主题