添加力导向布局 (网络逻辑示意图)

摘要

用于将力导向布局算法添加到基于给定模板构建逻辑示意图结束时自动进行链接的布局列表中。此工具还会针对基于该模板的任意逻辑示意图预设力导向布局算法参数。

此布局算法使用物理模拟绘制图形,方法是通过标识在其中尝试使能量局部最小化的约束系统。 该算法会搜索约束系统的一种平衡状态,即各个逻辑示意图交汇点所对应的一个位置,在该位置处,每个交汇点的总约束为零。

了解有关力导向布局算法的详细信息

警告:

该工具为配置和管理工具。

注:

该工具会基于输入逻辑示意图模板影响任何现有逻辑示意图的一致性。 所有现有逻辑示意图都将变得不一致,并随附打开一致性警告图标 要更新的逻辑示意图,直至对其进行更新为止。

使用情况

  • 系统在使用公共设施网络或追踪网络服务时不支持此工具。 您必须使用文件或移动地理数据库中的公共设施网络或追踪网络,或者企业级地理数据库中公共设施网络或追踪网络的数据库连接。 使用企业级地理数据库时,需要满足以下要求:

  • 要基于逻辑示意图模板对逻辑示意图预设布局算法参数,请取消选中激活参数(Python 中为 is_active = "INACTIVE")。

  • 如果您想要将布局算法添加到基于输入逻辑示意图模板生成逻辑示意图结束时自动进行链接的布局列表,请在激活处于选中状态(Python 中为 is_active = "ACTIVE")的情况下运行此工具。

参数

标注说明数据类型
输入网络

包含要修改的逻辑示意图模板的公共设施网络或追踪网络。

Utility Network; Trace Network
输入逻辑示意图模板

要修改的逻辑示意图模板名称

String
激活

指定是否将在基于指定模板生成逻辑示意图时自动运行布局算法。

  • 选中 - 添加的布局算法会在基于输入逻辑示意图模板参数值生成任何逻辑示意图的过程中自动运行。 这是默认设置。

    为布局算法指定的参数值是在生成逻辑示意图的过程中用于运行布局的参数值。 如果要对基于输入模板的任何逻辑示意图运行此算法,则还会默认加载这些参数值。

  • 未选中 - 如果要对基于输入模板的任何逻辑示意图运行此算法,则还将默认加载当前为添加的布局逻辑示意图指定的所有参数值。

Boolean
保留容器布局
(可选)

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

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

Boolean
迭代次数
(可选)

要处理的迭代次数。默认值为 20。

Long
排斥系数
(可选)

用于在接近的逻辑示意图交汇点之间添加距离。排斥系数越大,则将在接近重叠的逻辑示意图交汇点之间添加的距离越大。默认值为 1。

Double
自由度
(可选)

指定每次算法迭代过程中,用于移动逻辑示意图交汇点的面积。

  • 用于移动逻辑示意图交汇点的面积将受到限制。这是默认设置。
  • 用于移动逻辑示意图交汇点的面积将比较大。
  • 用于移动逻辑示意图交汇点的面积将为中等大小。
String
中断点相对位置 (%)
(可选)

边显示类型设置为弯曲边(Python 中的 edges_display_type = "CURVED_EDGES")时,将沿逻辑示意图边插入的用于计算弯曲边几何的两个拐点的相对位置。以介于 15 和 40 之间的百分比表示;默认值为 30。例如,如果中断点相对位置 (%) 参数值为介于 15 和 40 之间的 N,则以下情况适用:

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

注:

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

边显示类型参数设置为规则边(Python 中的 edges_display_type = "REGULAR_EDGES")时,将忽略该参数。

Double
边显示类型
(可选)

指定逻辑示意图边的显示类型。

  • 规则边所有逻辑示意图边均显示为直线。这是默认设置。
  • 弯曲边所有逻辑示意图边均显示为曲线。
String

派生输出

标注说明数据类型
输出网络

已更新的 utility network or trace network

公共设施网络;追踪网络
输出逻辑示意图模板

逻辑示意图模板的名称。

字符串

arcpy.nd.AddForceDirectedLayout(in_utility_network, template_name, is_active, {are_containers_preserved}, {iterations_number}, {repel_factor}, {degree_freedom}, {breakpoint_position}, {edge_display_type})
名称说明数据类型
in_utility_network

包含要修改的逻辑示意图模板的公共设施网络或追踪网络。

Utility Network; Trace Network
template_name

要修改的逻辑示意图模板名称

String
is_active

指定是否将在基于指定模板生成逻辑示意图时自动运行布局算法。

  • ACTIVE添加的布局算法将在基于 template_name 参数值生成任何逻辑示意图的过程中自动运行。 这是默认设置。为布局算法指定的参数值是在生成逻辑示意图的过程中用于运行布局的参数值。 如果要对基于输入模板的任何逻辑示意图运行此算法,则还会默认加载这些参数值。
  • INACTIVE如果要对基于输入模板的任何逻辑示意图运行此算法,则还将默认加载当前为添加的布局逻辑示意图指定的所有参数值。
Boolean
are_containers_preserved
(可选)

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

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

要处理的迭代次数。默认值为 20。

Long
repel_factor
(可选)

用于在接近的逻辑示意图交汇点之间添加距离。排斥系数越大,则将在接近重叠的逻辑示意图交汇点之间添加的距离越大。默认值为 1。

Double
degree_freedom
(可选)

指定每次算法迭代过程中,用于移动逻辑示意图交汇点的面积。

  • LOW用于移动逻辑示意图交汇点的面积将受到限制。这是默认设置。
  • HIGH用于移动逻辑示意图交汇点的面积将比较大。
  • MEDIUM用于移动逻辑示意图交汇点的面积将为中等大小。
String
breakpoint_position
(可选)

边显示类型设置为弯曲边(Python 中的 edges_display_type = "CURVED_EDGES")时,将沿逻辑示意图边插入的用于计算弯曲边几何的两个拐点的相对位置。以介于 15 和 40 之间的百分比表示;默认值为 30。例如,如果中断点相对位置 (%) 参数值为介于 15 和 40 之间的 N,则以下情况适用:

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

注:

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

边显示类型参数设置为规则边(Python 中的 edges_display_type = "REGULAR_EDGES")时,将忽略该参数。

Double
edge_display_type
(可选)

指定逻辑示意图边的显示类型。

  • REGULAR_EDGES所有逻辑示意图边均显示为直线。这是默认设置。
  • CURVED_EDGES所有逻辑示意图边均显示为曲线。
String

派生输出

名称说明数据类型
out_utility_network

已更新的 utility network or trace network

公共设施网络;追踪网络
out_template_name

逻辑示意图模板的名称。

字符串

代码示例

AddForceDirectedLayout 示例(Python 窗口)

将“力导向布局”算法作为自动布局添加到与输入网络相关的 MyTemplate1 模板。

import arcpy
input_Network = "D:/MyProjectLocation/MyDatabaseConnection.sde/MyDatabase.MAP.Electric/MyDatabase.MAP.Electric"
input_DiagramTemplate = "MyTemplate1"
arcpy.AddForceDirectedLayout_nd(input_Network, "MyTemplate1", "ACTIVE", 
                                "PRESERVE_CONTAINERS", 20, 1, "LOW", "25", 
                                "CURVED_EDGES")

环境

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

许可信息

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

相关主题