IsBeingEdited

Краткая информация

Определяет, находится ли данный набор данных или рабочая область в сеансе редактирования.

Обсуждение

Для того, чтобы проверить, находится ли источник данных в данный момент в сеансе редактирования, можно использовать метод IsBeingEdited. Это аналогично свойству isEditing класса Editor, но не требует создания объекта Editor. Это может быть полезно при работе с источниками данных, в которых несколько пользователей или автоматизированных скриптов пытаются выполнить редактирование одновременно.

Синтаксис

IsBeingEdited (dataset)
ПараметрОписаниеТип данных
dataset

The input dataset or workspace to be checked for an ongoing edit session.

String
Возвращаемое значение
Тип данныхОписание
Boolean

True, если входной набор данных или рабочая область находятся в сеансе редактирования.

Пример кода

IsBeingEdited, пример 1

Следующий код проверяет, находится ли уже данная рабочая область в сеансе редактирования, прежде чем запускать новый.

import arcpy

arcpy.env.workspace = r"C:\data\myGDB.gdb"

if not arcpy.IsBeingEdited(arcpy.env.workspace):
    edit = arcpy.da.Editor(arcpy.env.workspace)
    edit.startEditing()
IsBeingEdited, пример 2

Следующий код содержит список всех пространственных слоев карты, которые предстоит редактировать.

import arcpy

aprx = arcpy.mp.ArcGISProject("CURRENT")
map = aprx.listMaps()[0]

for lyr in map.listLayers():
    if lyr.isFeatureLayer and arcpy.IsBeingEdited(lyr):
        print(lyr.name)