Удаляет из слоя символьные объекты группы, соединенные с двумя участками, и объединяет эти участки.
Visual Basic:
Function ExcludeSymbols() As Long
Метод действует так же, как вызов Layer.ExcludeSymbol для каждого символа группы: символ, к которому подключены ровно два участка, удаляется, а участки объединяются в один, так что связность сети сохраняется. Остальные объекты группы не меняются. Ключи удаленных объектов остаются в группе. Изменения сразу вносятся в слой.
Метод возвращает 0, если удален хотя бы один символ, и -1, если удалять нечего (в том числе у пустой группы). Исключать символы только заданных типов и режимов позволяет метод ExcludeSymbolsEx.
Пример выделяет все объекты активного слоя, исключает из сети символы между двумя участками и сообщает число объектов слоя до и после.
Visual Basic:
Sub Selection_ExcludeSymbols 'Берем активный слой карты и его группу Set L = Zulu.ActiveMapDoc.Layers.Active Set S = L.Selection S.SelectAll N = L.ElementKeys.Count Res = S.ExcludeSymbols S.Clear MsgBox "Результат " & Res & vbCrLf & "объектов в слое: " & N & " -> " & L.ElementKeys.Count End SubPython:
import zulu def Macro_Selection_ExcludeSymbols(): # Берем активный слой карты и его группу L = zulu.App.ActiveMapDoc.Layers.Active S = L.Selection S.SelectAll() n = L.ElementKeys.Count res = S.ExcludeSymbols() S.Clear() print("Результат", res, ", объектов в слое:", n, "->", L.ElementKeys.Count)