Возвращает коллекцию NetworkWeightSets весовых коэффициентов графа сети данного слоя.
Visual Basic:
Property NetworkWeightSets As NetworkWeightSets
read-only
Набор весов - это отдельный файл слоя (с расширением .w00 и далее), в котором для объектов сети хранятся два числа: вес в прямом и в обратном направлении. Если наборов у слоя нет, Count равен 0, а Active - -1, то есть активного набора нет.
Набор заводится методом AddItem(название) - он возвращает ID нового набора (у первого это 0). Дальше веса пишутся методом SetItem(ID объекта, прямой вес, обратный) и читаются методом GetItem: он возвращает объект NetworkWeight со свойствами Forward и Reverse. Набор удаляется методом RemoveItem(ID).
У самого набора (NetworkWeightSet) UserName - название, заданное при создании, а Name - путь к файлу. Нумерация в Item идет с нуля, а по ID набор берется свойством ItemById.
Пример заводит свой набор весов, пишет в него вес одного объекта, читает его обратно и удаляет набор.
Visual Basic:
Sub Layer_NetworkWeightSets 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active Set WS = L.NetworkWeightSets S = "Наборов весов: " & WS.Count & ", активный: " & WS.Active 'Заводим свой набор и пишем вес первого объекта слоя Id = WS.AddItem("Проба весов") Set W = WS.ItemById(Id) Key = L.ElementKeys.Item(1) W.SetItem Key, 10, 20 S = S & vbCrLf & "новый набор " & Id & ": " & W.UserName S = S & vbCrLf & "объект " & Key & ": вперед " & W.GetItem(Key).Forward & _ ", назад " & W.GetItem(Key).Reverse 'Убираем за собой WS.RemoveItem Id S = S & vbCrLf & "после удаления наборов: " & WS.Count MsgBox S End SubPython:
import zulu def Macro_Layer_NetworkWeightSets(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active ws = L.NetworkWeightSets print("Наборов весов:", ws.Count, ", активный:", ws.Active) # Заводим свой набор и пишем вес первого объекта слоя ident = ws.AddItem("Проба весов") w = ws.ItemById(ident) key = L.ElementKeys.Item(1) w.SetItem(key, 10, 20) print("новый набор", ident, ":", w.UserName) print("объект", key, ": вперед", w.GetItem(key).Forward, ", назад", w.GetItem(key).Reverse) # Убираем за собой ws.RemoveItem(ident) print("после удаления наборов:", ws.Count)