Удаляет из слоя все объекты, входящие в группу.
Visual Basic:
Function DeleteSelectedElements() As Boolean
Группа слоя — это его выделенные объекты, свойство Selection. Удаляются только они; мишень (TargetSelection) метод не трогает.
После вызова группа становится пустой.
Метод возвращает True, в том числе когда группа пуста и удалять нечего.
Visual Basic:
Sub Layer_DeleteSelectedElements 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active Set R = L.GetBoundsRectangle D = (R.Xmax - R.Xmin) / 10 Set St = CreateObject("ZuluLib.ElemStyle") 'Добавляем правее слоя две простые линии и выделяем их L.Selection.Clear For i = 1 To 2 Set PL = CreateObject("ZuluLib.PolyLine") PL.AddPoint R.Xmax + D, R.Ymin + i * D PL.AddPoint R.Xmax + 2 * D, R.Ymin + i * D L.Selection.AddElem L.AddPolyLine(PL, St, -1, -1) Next S = "В группе " & L.Selection.ElementKeys.Count & " объектов" 'Удаляем группу S = S & vbCrLf & "DeleteSelectedElements = " & L.DeleteSelectedElements S = S & vbCrLf & "В группе осталось " & L.Selection.ElementKeys.Count & " объектов" MsgBox S End SubPython:
import zulu def Macro_Layer_DeleteSelectedElements(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active R = L.GetBoundsRectangle() d = (R.Xmax - R.Xmin) / 10 St = zulu.ElemStyle() # Добавляем правее слоя две простые линии и выделяем их L.Selection.Clear() for i in (1, 2): PL = zulu.PolyLine() PL.AddPoint(R.Xmax + d, R.Ymin + i * d) PL.AddPoint(R.Xmax + 2 * d, R.Ymin + i * d) L.Selection.AddElem(L.AddPolyLine(PL, St, -1, -1)) print("В группе", L.Selection.ElementKeys.Count, "объектов") # Удаляем группу print("DeleteSelectedElements =", L.DeleteSelectedElements()) print("В группе осталось", L.Selection.ElementKeys.Count, "объектов")