GetShortWayTreeEx method (Layer)

Возвращает объект NetworkTree, содержащий дерево кратчайших путей от указанного узла.

Применяется к:

Layer

Синтаксис:

Visual Basic:

Function GetShortWayTreeEx(StartNodeID As Long, Flags As Long) As NetworkTree

StartNodeID - узел, задаваемый в качестве корня дерева.

Flags - битовые флаги построения дерева:

0 - строит дерево с учетом состояний отсекающих устройств.

1 - считает все состояния отсекающих устройств выключенными. Без этого флага строит дерево с учетом состояний отсекающих устройств.

2 - строит дерево от узла по направлению участков от начала к концу.

4 - строит дерево от узла против направлений участков (от конца к началу).

8 - учитывает только направления участков, связанных с начальным узлом (начальное направление).

16 - строит дерево минимальной высоты (путь наименьший не по длине, а по количеству узлов пути).

Описание:

От метода GetShortWayTree отличается только флагами: при Flags = 0 деревья совпадают. Флаги направления (2 и 4) оставляют в дереве только ту часть сети, которая достижима от корня по направлению участков или против него, поэтому такое дерево обычно меньше.

Устройство дерева, нумерация узлов и получение пути описаны на странице метода GetShortWayTree.

Пример:

Visual Basic:

Sub Layer_GetShortWayTreeEx
'Берем активный слой тепловой сети
Set L = Zulu.ActiveMapDoc.Layers.Active
'Одно и то же дерево от узла 2 при разных флагах
S = ""
For Each F In Array(0, 1, 2, 4, 8, 16)
  Set Tree = L.GetShortWayTreeEx(2, F)
  S = S & "флаг " & F & ": узлов " & Tree.Count & vbCrLf
Next
MsgBox S
End Sub

Python:

import zulu

def Macro_Layer_GetShortWayTreeEx():
    # Берем активный слой тепловой сети
    L = zulu.App.ActiveMapDoc.Layers.Active
    # Одно и то же дерево от узла 2 при разных флагах
    for f in (0, 1, 2, 4, 8, 16):
        print("флаг", f, ": узлов", L.GetShortWayTreeEx(2, f).Count)