ArcGISProject

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

Объект ArcGISProject обеспечивает доступ к методам и свойствам проекта ArcGIS Pro. Ссылка на этот объект существенна для большинства автоматизированных рабочих процессов для карты.

Обсуждение

Объект ArcGISProject обычно является одним из первых объектов, на которые дается ссылка в скрипте автоматизации карты, потому что он является основной точкой входа для доступа к большинству других объектов в ArcGIS Pro. Ссылки на проект даются с помощью функции ArcGISProject. Ее свойства позволяют получать или задавать параметры проекта, такие как defaultGeodatabase, defaultToolbox, documentVersion, filePath и др. Ее методы позволяют управлять такими элементами проекта, как updateFolderConnections, updateDatabases, createMap и createLayout, а также копировать или удалять некоторые элементы проекта, используя методы copyItem или deleteItem, соответственно.

Метод updateConnectionProperties удобен для замены источников данных в проекте. Источники данных могут быть заменены в объектах ArcGISProject, Map, Layer или Table. Более подробную информацию и примеры кода см. в разделе справки Обновление и исправление источников данных.

Метод importDocument позволяет вам импортировать документы карты (.mxd), глобуса (.3dd) и сцены (.sxd) в проект. Это обеспечивает механизм для автоматизации преобразования этих типов документов в проект ArcGIS Pro. Метод importDocument также позволяет импортировать файлы карт (.mapx), файлы компоновок (.pagx) и файлы отчетов (.rptx) в имеющийся проект.

Получив ссылку на объект ArcGISProject, вы можете перейти к другим объектам, используя различные функции списка. Например, вы можете получить доступ к объекту Map с помощью метода listMaps или к объекту Layout и к объекту Report с помощью методов listLayouts и listReports, соответственно.

На следующей диаграмме, в левой части, показано использование функций списков для навигации и ссылок на объекты в проекте. Диаграмма является лишь примером и не отображает полный набор объектов и методов списков.

Пример диаграммы объектной модели ArcGIS Project, иллюстрирующей использование функций list и create.

На диаграмме выше, в правой части, показано использование многих функций создания объектов. Например, вы можете использовать createMap для создания объекта Map или createLayout для создания объекта Layout.

Примечание:

Методы createGraphicElement, createGroupElement, createPictureElement и createTextElement также доступны в объекте ArcGISProject, поскольку они позволяют создавать элементы либо в объекте Layout, либо графический слой в объекте Map.

Подсказка:

При создании элементов в графическом слое на карте, графические слои ограничены заданным количеством объектов и общим размером. Дополнительные сведения см. в разделе Работа с графическими слоями.

Есть несколько методов и свойств, работающих только со скриптами, которые запускаются внутри приложения, например со скриптами, выполняемыми в окне Python, в блокноте или со скриптами, связанными с инструментами-скриптами. Это и свойства activeMap и activeView, и сам метод closeViews(). Свойство activeMap возвращает объект Map, связанный либо с активным видом карты или с активным фреймом карты в активном виде компоновки. Если эти условия не соблюдаются, будет возвращен NoneType. Свойство activeView возвращает объект MapView, если активен вид карты, или объект Layout, если активен вид компоновки. Если не активен ни один из видов, оба свойства вернут значение None. Эти свойства всегда возвращают значение None, если скрипт запущен за пределами приложения, так как виды релевантны только в случае, когда приложение открыто. Объект MapView, возвращаемый свойством activeView, является единственным методом изменения экстента, связанного с видом карты. В классе MapView доступно множество функций, позволяющих вам изменить экстент, такие как camera, panToExtent, ZoomToAllLayers и ZoomToBookmarks. Функция closeViews полезна для закрытия определенных типов видов в приложении. Чтобы сосредоточить внимание на определенном виде, закройте все виды и используйте метод openView в классе Layout, Map или Report.

Примечание:

На проекты можно ссылаться несколько раз, но только первая ссылка может быть сохранена напрямую, поскольку остальные ссылки будут открыты только для чтения. У объекта ArcGISProject есть свойство isReadOnly, которое можно использовать для определения состояния чтения проекта перед вызовом метода, такого как saveACopy вместо save.

Свойства

СвойствоОписаниеТип данных
activeMap
(только чтение)

Возвращает объект карты, связанный с видом, на котором сфокусировано приложение. Если вид компоновки активен, будет возвращена карта, связанная с активным фреймом карты.

Примечание:

Это свойство предназначено для выполнения из приложения с помощью инструмента-скрипта, окна Python или блокнота. Если скрипт выполняется вне приложения, всегда будет возвращен None.

Map
activeView
(только чтение)

Возвращает Вид карты или Компоновку в зависимости от текущего вида. Если проект ArcGIS Pro не имеет открытых видов или если активный вид является чем-то иным, чем вид карты или вид компоновки (например, диаграмма, таблица, вид Model Builder и т. д.), будет возвращен None.

Примечание:

Это свойство предназначено для выполнения из приложения с помощью инструмента-скрипта, окна Python или блокнота. Если скрипт выполняется вне приложения, всегда будет возвращен None.

Object
databases
(только чтение)

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

List
dateSaved
(только чтение)

Возвращает объект Python datetime, который сообщает дату последнего сохранения проекта.

DateTime
defaultGeodatabase
(чтение и запись)

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

Примечание:

Это свойство может быть заблокировано системными администраторами через Настройки приложения.

String
defaultToolbox
(чтение и запись)

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

Примечание:

Это свойство может быть заблокировано системными администраторами через Настройки приложения.

String
documentVersion
(только чтение)

Возвращает версию документа на основе времени последнего сохранения. Выполнение save или saveACopy приводит к обновлению версии документа, в соответствии с версией приложения.

String
filePath
(только чтение)

Возвращает строковое значение, содержащее полное имя и путь к проекту.

String
folderConnections
(только чтение)

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

List
homeFolder
(чтение и запись)

Местоположение домашней папки проекта. Строка должна включать полный путь к требуемому местоположению.

Примечание:

Это свойство может быть заблокировано системными администраторами через Настройки приложения.

String
isReadOnly
(только чтение)

Возвращает True, если проект уже был открыт в другом экземпляре приложения или на него ссылался другой скрипт. Знание текущего состояния позволяет вам определить, можете ли вы save проект или вместо этого вам нужно вызвать saveACopy.

Boolean
metadata
(чтение и запись)

Получение или установка класса информации Метаданные проекта. Примечание: настройка метаданных зависит от значения свойства isReadOnly.

Metadata

Обзор метода

МетодОписание
closeViews ({view_type})

Закройте панели видов, открытых в данный момент в ArcGIS Pro.

copyItem (project_item, {new_name})

Создает копию существующего элемента проекта layout, map или report.

createGraphicElement (container, geometry, {style_item}, {name}, {lock_aspect_ratio})

Метод createGraphicElement, который создает GraphicElement в определенном container.

createGroupElement (container, element_list, {name})

Метод createGroupElement создает GroupElement в указанном container.

createLayout (page_width, page_height, page_units, {name})

Метод createLayout создает Layout, которая автоматически добавляется на панель Каталог.

createMap ({name}, {map_type})

Этот метод создает карту, которая автоматически добавляется на панель Каталог.

createPictureElement (container, geometry, path, {name}, {lock_aspect_ratio})

Метод createPictureElement, который создает PictureElement в определенном container.

createPredefinedGraphicElement (container, geometry, shape_type, {style_item}, {name}, {lock_aspect_ratio})

Метод createPredefinedGraphicElement, который создает GraphicElement в определенном container.

createTextElement (container, geometry, text_type, text, {text_size}, {font_family_name}, {font_style_name}, {style_item}, {name}, {lock_aspect_ratio})

Метод createTextElement, который создает объект TextElement в определенном container.

deleteItem (project_item)

Удаляет элементы проекта: компоновка, карта или отчет.

importDocument (document_path, {include_layout}, {reuse_existing_maps})

Импортирует документы карты (.mxd), глобуса (.3dd) и сцены (.sxd) в проект ArcGIS Pro. Также может импортировать содержание файлов карт (.mapx), файлов компоновки (.pagx) и файлов отчетов (.rptx).

listBasemaps ({wildcard})

Метод listBasemaps ссылается на базовые карты, доступные в проекте.

listBrokenDataSources ()

Возвращает список объектов Python Слой (Layer) и/или Таблица (Table), которые имеют поврежденные подключения к оригинальным исходным данным для всех карт проекта.

listColorRamps ({wildcard})

Метод listColorRamps ссылается на цветовые схемы, доступные в проекте.

listLayouts ({wildcard})

Возвращает список Python объектов Layout (Компоновка) в проекте ArcGIS (.aprx).

listMaps ({wildcard})

Возвращает список Python объектов Map (Карта) в проекте ArcGIS (.aprx).

listReports ({wildcard})

Возвращает список Python объектов Отчет в проекте ArcGIS (.aprx).

listStyleItems (style, style_class, {wildcard})

Метод listStyleItems ссылается на системные, персональные и пользовательские стили, доступные в проекте.

save ()

Сохраняет изменения в ArcGISProject (.aprx).

saveACopy (file_name)

Сохраняет ArcGISProject (.aprx) в новом месте или с другим именем.

updateConnectionProperties (current_connection_info, new_connection_info, {auto_update_joins_and_relates}, {validate}, {ignore_case})

Метод updateConnectionProperties заменяет свойства подключения, используя словарь либо путь к рабочей области.

updateDatabases (databases, {validate})

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

updateFolderConnections (folder_connections, {validate})

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

Методы

closeViews ({view_type})
ПараметрОписаниеТип данных
view_type

A constant that determines the type of views to be closed in the application.

  • LAYOUTSClose all open layout view panes.
  • MAPSClose all open map view panes.
  • MAPS_AND_LAYOUTSClose all open layout and map view panes.
  • REPORTSClose all open report view panes.

(Значение по умолчанию — MAPS_AND_LAYOUTS)

String

Иногда бывает полезно очистить множество открытых видов в приложении, прежде чем открывать определенный вид, чтобы сфокусировать внимание на результирующем виде. Этот метод закрывает только панели видов, связанные с компоновкой, картой или отчетом. Этот метод также закроет виды таблиц, связанные с "MAP".

Примечание:

Этот метод предназначен для выполнения из приложения с помощью инструмента-скрипта, блокнота или окна Python. Он не будет действовать, если выполнить его вне приложения.

copyItem (project_item, {new_name})
ПараметрОписаниеТип данных
project_item

An object reference that represents a supported project item to be copied.

Object
new_name

An optional string that represents the name of the new project item. If a name is not provided, the default name will follow the sequencing nomenclature, for example, Map, Map1, Map2.

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

Если указана ссылка на переменную, возвращаемый объект будет содержать элемент проекта layout, map или report.

Этот метод подходит, если вы хотите изменить копию существующего элемента проекта, не внося изменений в исходный элемент. Можно копировать элемент проекта layout, map или report.

createGraphicElement (container, geometry, {style_item}, {name}, {lock_aspect_ratio})
ПараметрОписаниеТип данных
container

A reference to a Layout object, a graphics layer in a Map object, or a GroupElement object in a layout or a graphics layer.

Object
geometry

The appropriate Point, Polyline, or Polygon object that will be used to construct the graphic element. Page units should be used for layouts and map units should be used for elements in a graphics layer.

Object
style_item

An optional reference to a StyleItem. The style's intended geometry must match the geometry input parameter. If a style_item value is not specified, a default style item will be applied.

String
name

An optional string that represents the name of the new GraphicElement. If a name is not provided, the default name value will follow the automatic sequencing nomenclature, for example, Point, Point 1, Point 2, and so on.

String
lock_aspect_ratio

An optional Boolean that controls how the element can be resized. For example, if the value is True, setting the elementHeight value will also set the elementWidth value proportionally.

(Значение по умолчанию — True)

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

Если указана переменная, она будет ссылаться на вновь возращенный объект GraphicElement.

Этот метод находится в объекте ArcGISProject, поскольку свойство container позволяет создавать графические элементы либо в объекте Layout, графический слой в объекте Map или объект GroupElement в компоновке или графическом слое.

Если элемент создается с помощью точечной геометрии, местоположение точки будет содержать позицию anchor, а размер будет задан по умолчанию. Позже вы можете изменить размер элемента, используя свойства elementWidth и elementHeight. Метод createPredefinedGraphicElement схож, но позволяет вам создавать стандартные, предопределенные формы.

Обратитесь к разделу справки по классу GraphicElement для получения дополнительной информации и примеров кода.

createGroupElement (container, element_list, {name})
ПараметрОписаниеТип данных
container

A reference to a Layout object, a graphics layer in a Map object, or a GroupElement object in a layout or a graphics layer.

Object
element_list
[element_list,...]

A list of elements that will be placed in the newly created group.

Примечание:

You can not create an empty group element, there must be existing elements to place in the group.

List
name

An optional string that represents the name of the new GroupElement. If a name is not provided, the default name value will follow the automatic sequencing nomenclature, for example, Group Element, Group Element 1, Group Element 2, and so on.

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

Если указана переменная, она будет ссылаться на вновь возращенный объект GroupElement.

Этот метод находится в объекте ArcGISProject, поскольку свойство container позволяет создавать графические элементы либо в объекте Layout, графический слой в объекте Map или объект GroupElement в компоновке или графическом слое.

Вы не можете создать пустой элемент группы. Вместо этого вам нужны существующие элементы для встраивания в элемент группы. Если контейнер представляет собой компоновку или графический слой, группа будет создана на корневом уровне. Если контейнер ссылается на существующий элемент группы, будет создан элемент подгруппы. Первый элемент в списке будет первым элементом в группе, следующий элемент в списке появится под первым элементом на панели содержания и так далее.

Обратитесь к разделу справки по классу GroupElement для получения дополнительной информации и примеров кода.

createLayout (page_width, page_height, page_units, {name})
ПараметрОписаниеТип данных
page_width

A double that specifies the width of a layout and is based on the page_units.

Double
page_height

A double that specifies the height of a layout and is based on the page_units.

Double
page_units

One of the following page units must be provided to describe the page_width and page_height values.

  • CENTIMETERPage units are in centimeters.
  • INCHPage units are in inches.
  • MILLIMETERPage units are in millimeters.
  • POINTPage units are in points where 72 points is 1 inch or 2.54 centimeters.
String
name

A string that represents the name of the new layout. If a name is not provided, the default name will follow the sequencing nomenclature, for example, Layout, Layout1, Layout2.

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

Если дополнительно указана ссылка на переменную, она будет представлять собой ссылку на новый объект Layout.

Этот метод возвращает ссылку на новый объект Layout. Если вы хотите просмотреть компоновку и активировать ее в виде, вызовите метод openView в Layout. Следующими шагами будет заполнение его новыми элементами компоновки с использованием различных методов построения классов Layout или ArcGISProject.

createMap ({name}, {map_type})
ПараметрОписаниеТип данных
name

A string that represents the name of the new map. If a name is not provided, the default name will follow the sequencing nomenclature, for example, Map, Map1, Map2.

String
map_type

The type of map to be created and are defined by the keywords below.

  • GLOBEA new global scene
  • MAPA new map
  • SCENEA new local scene

(Значение по умолчанию — Map)

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

Если указана ссылка на переменную, она будет представлять один из поддерживаемых объектов map_type.

Этот метод возвращает ссылку на новый класс map. Если скрипт запущен в приложении, будет применена базовая карта, указанная в настройках проекта. Если скрипт запускается автономно, топографическая базовая карта будет добавлена автоматически.

createPictureElement (container, geometry, path, {name}, {lock_aspect_ratio})
ПараметрОписаниеТип данных
container

A reference to a Layout object, a graphics layer object in a Map, or a GroupElement object in a layout or a graphics layer.

Object
geometry

The appropriate Point, or Polygon object that will be used to construct the picture element. Page units should be used for layouts and map units should be used for elements in a graphics layer.

Object
path

A string that represents the full path and file name of the location of the picture.

String
name

An optional string that represents the name of the new PictureElement. If a name is not provided, the default name value will follow the automatic sequencing nomenclature, for example, Picture, Picture 1, Picture 2, and so on.

String
lock_aspect_ratio

A Boolean that controls how the picture is inserted into the envelope. If set to False, the image will be stretched to fill the entire area of the envelope.

(Значение по умолчанию — True)

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

Если указана переменная, она будет ссылаться на вновь возращенный объект PictureElement.

Этот метод находится в объекте ArcGISProject, поскольку свойство container позволяет создавать графические элементы либо в объекте Layout, графический слой в объекте Map или объект GroupElement в компоновке или графическом слое.

Если элемент создается с помощью точечной геометрии, местоположение точки будет содержать положение anchor и элемент будет добавлен в полном размере на основе его числа пикселов. Позже вы можете изменить размер элемента, используя свойства elementWidth и elementHeight. Если создается рисунок с помощью не прямоугольного полигона, вместо него будет использоваться минимальный конверт, охватывающий все координаты.

Обратитесь к разделу справки по классу PictureElement для получения дополнительной информации и примеров кода.

createPredefinedGraphicElement (container, geometry, shape_type, {style_item}, {name}, {lock_aspect_ratio})
ПараметрОписаниеТип данных
container

A reference to a Layout object, a graphics layer in a Map object, or a GroupElement object in a layout or a graphics layer.

Object
geometry

The appropriate Point or Polygon object that will be used to construct the predefined GraphicElement object. Page units should be used for layouts and map units should be used for elements in a graphics layer.

Object
shape_type

A string constant that represents the predefined shape that will be created. The following is a list of valid values:

  • CIRCLEA predefined circle shape will be created.
  • CLOUDA predefined cloud shape will be created.
  • CROSSA predefined cross shape will be created.
  • ELLIPSEA predefined ellipse shape will be created.
  • HALF_CIRCLEA predefined half circle shape will be created.
  • RECTANGLEA predefined rectangle shape will be created.
  • RIGHT_TRIANGLEA predefined right triangle shape will be created.
  • ROUNDED_RECTANGLEA predefined rounded rectangle shape will be created.
  • TRIANGLEA predefined triangle shape will be created.
  • XA predefined X shape will be created.
String
style_item

An optional reference to a StyleItem. The style's intended geometry must match the geometry input parameter. If a style_item value is not specified, a default style item will be applied.

String
name

An optional string that represents the name of the new GraphicElement. If a name is not provided, the default name value will follow the automatic sequencing nomenclature, for example, Circle, Circle 1, Circle 2, and so on.

String
lock_aspect_ratio

An optional Boolean that controls how the element can be resized. For example, if the value is True, setting the elementHeight value will also set the elementWidth value proportionally.

(Значение по умолчанию — True)

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

Если указана переменная, она будет ссылаться на вновь возращенный объект GraphicElement.

Этот метод находится в объекте ArcGISProject, поскольку свойство container позволяет создавать графические элементы либо в объекте Layout, графический слой в объекте Map или объект GroupElement в компоновке или графическом слое.

Если элемент создается с помощью точечной геометрии, местоположение точки будет содержать позицию anchor, а размер будет задан по умолчанию. Позже вы можете изменить размер элемента, используя свойства elementWidth и elementHeight. Метод createGraphicElement схож, но позволяет вам создавать пользовательские формы.

Обратитесь к разделу справки по классу GraphicElement для получения дополнительной информации и примеров кода.

createTextElement (container, geometry, text_type, text, {text_size}, {font_family_name}, {font_style_name}, {style_item}, {name}, {lock_aspect_ratio})
ПараметрОписаниеТип данных
container

A Layout object, a graphics layer in a Map object, or a GroupElement object in a layout or a graphics layer.

Object
geometry

The appropriate Point, Polyline, or Polygon object that will be used to construct the text element. Use page units for layouts and map units for elements in a graphics layer.

Object
text_type

Specifies the type of text that will be created. The following is a list of valid values:

  • CIRCLECircle paragraph text will be created.
  • ELLIPSEEllipse paragraph text will be created.
  • LINEText along a polyline will be created.
  • POINTStraight text will be created.
  • POLYGONRectangle or polygon paragraph text will be created.
String
text

The text string associated with the element.

String
text_size

The size of the text in points.

Double
font_family_name

The text symbol font associated with the element.

Примечание:

The value that appears in the Font name drop-down list on the ribbon does not always match the font_style_name property. Variable fonts contain named instances of font styles and also allow customization. Before setting a value, you can set it on the ribbon and verify the property value returned.

String
font_style_name

The font style name. Depending on the font, the style may include regular, bold, italic, any combination of these, or an extended list.

Примечание:

The value that appears in the Font style drop-down list on the ribbon does not always match the font_style_name property. Variable fonts contain named instances of font styles and also allow customization. Before setting a value, you can set it on the ribbon and verify the property value returned.

String
style_item

A StyleItem object. The style's intended geometry must match the geometry input parameter. If a style_item value is not provided, a default style item will be applied.

String
name

The new TextElement name. If no name is provided, the default name value will follow the automatic sequencing nomenclature, for example, Point, Point 1, Point 2, and so on.

String
lock_aspect_ratio

Specifies whether the element can be resized. For example, if the value is True, setting the elementHeight value will also set the elementWidth value proportionally. This setting does not apply to point text.

(Значение по умолчанию — True)

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

Если указана переменная, она будет ссылаться на вновь возращенный объект TextElement.

Этот метод находится в объекте ArcGISProject, поскольку свойство container позволяет создавать групповые элементы в объекте Layout, графический слой в объекте Map или объект GroupElement в компоновке или в графическом слое.

Если текстовой элемент использует точечную геометрию, местоположение точки будет содержать позицию anchor, а размер будет задан по умолчанию. Вы можете изменить размер элемента, используя свойства elementWidth и elementHeight.

См. раздел справки TextElement с дополнительной информацией и примерами кода.

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

An object that represents a supported project item to be deleted.

Object

Элемент удаляется из проекта не полностью. Удаление элемента может повлиять на другие элементы. Например, если вы удалите карту, которая используется в компоновке, MapFrame, ссылающийся на карту, также потеряет ссылку на карту, и для свойства map будет установлено значение None.

importDocument (document_path, {include_layout}, {reuse_existing_maps})
ПараметрОписаниеТип данных
document_path

A string that includes the system path and name of a document (.mxd, .3dd, or .sxd) or a map file (.mapx), layout file ( .pagx), or report file (.rptx).

String
include_layout

A Boolean parameter indicating whether the layout from a map document (.mxd) is imported. If set to True, the layout and all data frames are imported. If set to False, only the data frames are imported. This parameter is ignored for other file types.

(Значение по умолчанию — True)

Boolean
reuse_existing_maps

A Boolean parameter to prevent the creation of duplicate maps in the project. If reuse_existing_maps is set to True, it checks the project for the maps referenced in the imported file and only copies maps that don't already exist in the project. There may be cases in which maps have the same name in different imported sources, so you may want to set this value to False.

(Значение по умолчанию — False)

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

При импорте документа карты (.mxd), если include_layout равно True, возвращается ссылка на компоновку. Если include_layout равно False, возвращается первая карта документа. Импортируется только одна карта документа глобуса (.3dd) или сцены (.sxd). Соответствующая компоновка возвращается с файлом .pagx и отчетом с файлом .rptx.

Данный метод импортирует один документ за один раз. Для импорта нескольких документов, выполните данный метод для каждого документа. Документ карты (.mxd) всегда содержит компоновку. Если при перемещении документов карты вам не нужно импортировать компоновку, задайте include_layout=False.

listBasemaps ({wildcard})
ПараметрОписаниеТип данных
wildcard

A wildcard is based on the label as it appears in the basemap gallery in the application and is not case sensitive. A combination of asterisks (*) and characters can be used to help limit the resulting list.

(Значение по умолчанию — None)

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

Возвращает список Python объектов String.

Метод listBasemaps возвращает список объектов, даже если возвращается только одна базовая карта, поэтому вместо этого используйте номер индекса для возвращения String. Выходные данные из listBasemaps затем могут быть использованы в методе addBasemap класса Map.

Следующий скрипт добавляет на карту базовую карту.


p = arcpy.mp.ArcGISProject('current')
bm = p.listBasemaps('National Geographic*')[0]
m = p.listMaps('Yosemite National Park')[0]
m.addBasemap(bm)
listBrokenDataSources ()
Возвращаемое значение
Тип данныхОписание
List

Список объектов Python Слой (Layer) и/или Таблица (Table).

Метод listBrokenDataSources всегда возвращает объект списка Python, даже если возвращается только один поврежденный слой или таблица.

listColorRamps ({wildcard})
ПараметрОписаниеТип данных
wildcard

Подстановочный символ основан на имени цветовой схемы, как оно выглядит в приложении. Для наложения ограничений на результирующий список можно использовать сочетание звездочек (*) и символов.

(Значение по умолчанию — None)

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

Возвращает список объектов ColorRamp.

В проекте могут находиться несколько цветовых схем с одинаковым именем. Важно разрабатывать проект, используя такие имена цветовых схем, которые легко найти по уникальному имени. Для возвращения определенной цветовой схемы можно использовать значение индекса. Например, следующая строка позволит вернуть первый объект цветовой схемы в списке: cr = aprx.listColorRamps("Black*")[0].

listLayouts ({wildcard})
ПараметрОписаниеТип данных
wildcard

Групповой символ базируется на имени компоновки и не является чувствительным к регистру. Для наложения ограничений на результирующий список можно использовать сочетание звездочек (*) и символов.

(Значение по умолчанию — None)

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

Список Python объектов Layout (Компоновка) в проекте ArcGIS.

Возвращает список Python объектов Layout (Компоновка) в проекте ArcGIS (.aprx).

listMaps ({wildcard})
ПараметрОписаниеТип данных
wildcard

Групповой символ базируется на имени карты и не является чувствительным к регистру. Для наложения ограничений на результирующий список можно использовать сочетание звездочек (*) и символов.

(Значение по умолчанию — None)

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

Список Python объектов Map (Карта) в проекте ArcGIS.

Возвращает список Python объектов Map (Карта) в проекте ArcGIS (.aprx).

listReports ({wildcard})
ПараметрОписаниеТип данных
wildcard

Групповой символ базируется на имени отчета и не является чувствительным к регистру. Для наложения ограничений на результирующий список можно использовать сочетание звездочек (*) и символов.

(Значение по умолчанию — None)

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

Список Python объектов Отчет в проекте ArcGIS.

Возвращает список Python объектов Отчет в проекте ArcGIS (.aprx).

listStyleItems (style, style_class, {wildcard})
ПараметрОписаниеТип данных
style

A string that represents either a system style name such as ArcGIS 2D, a personal style such as Favorites, or a custom .stylx file.

Примечание:

Styles must exist in the project before they can be referenced using listStyleItems. Custom .stylx files must be loaded and saved in a project. They are referenced by passing in their full path and filename, not by their name only such as with system styles.

(Значение по умолчанию — None)

String
style_class

A string that represents the class of the style items that will be created or modified as they will appear in the Catalog View window.

  • LEGENDLegend elements will be created or modified.
  • LINEPolyline graphic elements will be created or modified.
  • NORTH_ARROWNorth arrow map surround elements will be created or modified.
  • POINTPoint graphic elements will be created or modified.
  • POLYGONPolygon graphic elements will be created or modified.
  • SCALE_BARNorth arrow map surround elements will be created or modified.
  • TEXTText graphic elements will be created or modified.

(Значение по умолчанию — None)

String
wildcard

A wildcard based on the style item name as it appears in the application. A combination of asterisks (*) and characters can be used to limit the length of the resulting list.

(Значение по умолчанию — None)

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

Возвращает список объектов StyleItem.

В проекте могут находиться несколько элементов стилей с одинаковым именем. Если это так, то в дополнение к параметру wildcard вы также можете использовать такие свойства, как category и tags, чтобы быть уверенным в том, что у вас есть нужный элемент стиля. См. пример кода в разделе справки, посвященном классу StyleItem.

save ()

Сохраняет изменения в ArcGISProject (.aprx). Проект сохраняется и переменная проекта продолжает ссылаться на исходный объект ArcGISProject.

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

Строка используется для сохранения ArcGISProject (.aprx) в новом месте или с новым именем.

String

Данный метод создает новый выходной файл проекта, но переменная проекта продолжает ссылаться на исходный объект ArcGISProject. При этом все содержание в папке проекта не дублируется.

updateConnectionProperties (current_connection_info, new_connection_info, {auto_update_joins_and_relates}, {validate}, {ignore_case})
ПараметрОписаниеТип данных
current_connection_info

A string that represents the workspace path or a Python dictionary that contains connection properties to the source you want to update. If an empty string or None is used in current_connection_info, all connection properties will be replaced with the new_workspace_info, depending on the value of the validate parameter.

String
new_connection_info

A string that represents the workspace path or a Python dictionary that contains connection properties with the new source information.

String
auto_update_joins_and_relates

If set to True, the updateConnectionProperties method will also update the connections for associated joins or relates.

(Значение по умолчанию — True)

Boolean
validate

If set to True, the connection properties will only be updated if the new_connection_info value is a valid connection. If it is not valid, the connection will not be replaced. If set to False, the method will set all connections to match the new_connection_info value, regardless of a valid match. In this case, if a match does not exist, the data sources would be broken.

(Значение по умолчанию — True)

Boolean
ignore_case

Determines whether searches will be case sensitive. By default, queries are case sensitive. To perform queries that are not case sensitive, set ignore_case to True.

(Значение по умолчанию — False)

Boolean

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

updateDatabases (databases, {validate})
ПараметрОписаниеТип данных
databases
[databases,...]

A list of Python dictionaries that each contain properties to an individual database. The dictionary keys are defined below.

  • databasePathA local or UNC path to a database.
  • isDefaultDatabaseThe default geodatabase. One valid geodatabase must be set to True.
    Примечание:

    This property can be locked by systems administrators through Application settings.

List
validate

If set to True, the database will only be added if the databasePath is a valid database. If it is not valid, the database will not be added and the function will return the dictionary as an invalid database. If set to False, the method will add all the databases to the project, regardless of whether the database can be connected to.

(Значение по умолчанию — True)

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

Список некорректных баз.

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

updateFolderConnections (folder_connections, {validate})
ПараметрОписаниеТип данных
folder_connections
[folder_connections,...]

A list of Python dictionaries that each contain connection properties to an individual folder. The dictionary keys are defined below.

  • connectionStringA local or UNC path to a system folder.
  • aliasAn alternative label for a folder connection. If left as an empty string, the alias will match the connectionString value.
  • isHomeFolderThe default home folder. One folder must be set to True.
    Примечание:

    This property can be locked by systems administrators through Application settings.

List
validate

If set to True, the folder will only be added if the connectionString is a valid path. If it is not valid, the folder will not be added and the function will return the dictionary as an invalid folder. If set to False, the method will add all the folders to the project, regardless of whether the folder is valid.

(Значение по умолчанию — True)

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

Список папок, которые не имеют допустимых подключений.

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

Пример кода

ArcGISProject, пример 1

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

import arcpy
#Reference a blank, template project on disk
p = arcpy.mp.ArcGISProject(r"C:\Projects\blank.aprx")

#Import documents set up default GDB and toolbox
p.importDocument(r"C:\Projects\YosemiteNP\Documents\Yosemite.mxd")
p.importDocument(r"C:\Projects\YosemiteNP\Documents\Yosemite_3DViews.3dd")

#Set up default GDB and toolbox
p.defaultGeodatabase = r"C:\Projects\YosemiteNP\Data_Vector\YosemiteData.gdb"
p.defaultToolbox = r"C:\Projects\YosemiteNP\Analysis\AnalysisTools.tbx"

#Save out to a new, different project
p.saveACopy(r"C:\Projects\YosemiteNP\Yosemite.aprx")
ArcGISProject, пример 2

Следующий скрипт печатает имя объектов в проекте. Он использует ключевое слово CURRENT, поэтому он должен быть запущен из окна Python. Скрипт печатает имя каждой карты со списком ее слоев. Затем он печатает название каждой компоновки вместе с информацией о размере страницы.

p = arcpy.mp.ArcGISProject('CURRENT')

#Project information
print(f'Project: {p.filePath}')
print(f' Version: {p.filePath}')
print(f' Last saved: {p.dateSaved}')

#Loop through each map
print('Maps and Layers:')
for m in p.listMaps():
    print(' Map: ' + m.name)
    for lyr in m.listLayers():
        print('  Layer: ' + lyr.name)
        
#Loop through each layout
print('Layouts:')
for lyt in p.listLayouts():
    print(f' Name: {lyt.name}')
    print(f'  W/H: {lyt.pageWidth} x {lyt.pageHeight}')
    print(f'  Units: {lyt.pageUnits}')
ArcGISProject, пример 3

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

p = arcpy.mp.ArcGISProject('CURRENT')

#Create a copy of an existing map
existingMap = p.listMaps('Yosemite National Park')[0]
rangerMap = p.copyItem(existingMap, new_name='Ranger Stations')

#Add ranger stations layer file
lyrx = arcpy.mp.LayerFile(r'C:\Projects\YosemiteNP\LayerFiles\Ranger Stations.lyrx')
rangerMap.addLayer(lyrx)

#Close any current layout or map views
p.closeViews('MAPS_AND_LAYOUTS')

#Set the default map camera to the extent of the park boundary before opening the new view
#default camera only affects newly opened views
lyr = rangerMap.listLayers('*Park Boundary')[1]
rangerMap.defaultCamera.setExtent(arcpy.Describe(lyr).extent)
rangerMap.openView()

#export the newly opened active view to PDF, then delete the new map
mv = p.activeView
mv.exportToPDF(r'C:\Temp\RangerStations.pdf', width=700, height=500, resolution=96)

#Optionally delete the temporary map when the export is complete
p.deleteItem(rangerMap)
ArcGISProject, пример 4

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

import arcpy, os
p = arcpy.mp.ArcGISProject(r'C:\Projects\YosemiteNP\Yosemite.aprx')

#Check project read-state before continuing
if p.isReadOnly:
  print('WARNING: project is already opened. Exiting.')
  exit

folderList = [p.homeFolder]
for m in p.listMaps():
  for l in m.listLayers():
    if not l.isWebLayer:
      if not l.isBasemapLayer:
        if l.supports('DATASOURCE'):
          dirPath = os.path.dirname(l.dataSource)
          #Parce out GDB folders
          pathParts = dirPath.split(os.sep)
          for part in pathParts:
            if part.endswith(".gdb"):
              gdbName = part
              dirPath = dirPath.split("\\"+gdbName, 1)[0]
          #Add unique path to list
          if dirPath not in folderList:
            folderList.append(dirPath)
folderList.sort()
for f in folderList:
    print(f)
print(f'Total Unique Folders: {len(folderList)}')

#Add each folder connection from FolderList, there MUST be one default folder.

fcList = []
for folder in folderList:
  if folder == r'C:\Projects\YosemiteNP':
    defName2 = r'Default Folder'
    fcDict = {'connectionString':folder, 'alias':defName2, 'isHomeFolder':True}

  else:
    fcDict = {'connectionString':folder, 'alias':'', 'isHomeFolder':False}

  fcList.append(fcDict)

bfc = p.updateFolderConnections(fcList, validate=False)
print(f'Broken folder connections: {len(bfc)}')

p.saveACopy(r'C:\Projects\YosemiteNP\Yosemite_Output.aprx')
ArcGISProject, пример 5

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

import arcpy, os
path = r'C:\Projects\YosemiteNP'

p = arcpy.mp.ArcGISProject(os.path.join(path, 'Yosemite.aprx'))
#Check project read-state before continuing
if p.isReadOnly:
  print('WARNING: project is already opened. Exiting.')
  exit

db = p.databases

#Append new fGDBs in addition to the already existing default database
db.append({'databasePath' : os.path.join(path, r'Data_Geology\Geology.gdb'),
           'isDefaultDatabase': False})
db.append({'databasePath' : os.path.join(path, r'Data_Elev\Elevation.gdb'),
           'isDefaultDatabase': False})
db.append({'databasePath': os.path.join(path, r'\Data_LandCover\LandCover.gdb'),
           'isDefaultDatabase': False})

p.updateDatabases(db, True)
p.saveACopy(os.path.join(path, 'Yosemite_newGDBs.aprx'))
ArcGISProject, пример 6

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

def MakeRec_LL(llx, lly, w, h):
    xyRecList = [[llx, lly], [llx, lly+h], [llx+w,lly+h], [llx+w,lly], [llx,lly]]
    xyRecList = [[1,1],[1, 2], [2.75, 2], [2.75, 1], [1, 1]]
    array = arcpy.Array([arcpy.Point(*coords) for coords in xyRecList])
    rec = arcpy.Polygon(array)
    return rec

p = arcpy.mp.ArcGISProject('CURRENT')
lyt = p.createLayout(6, 3, 'INCH', 'New Layout with Rectangles')

#Construct a pre-defined rectangle graphic element using a system style item
# and a rectangle function that takes x/y min/max and a width/height
# using the lower left corner as a start location

polyStyle = p.listStyleItems('ArcGIS 2D', 'Polygon', 'Orchard')[0]

p.createPredefinedGraphicElement(lyt, MakeRec_LL(1, 1, 1.75, 1), 'RECTANGLE',
                                 polyStyle, 'ArcPy_Rectangle_Env',
                                 lock_aspect_ratio=False)

#Construct the same element above using a point location
rec = p.createPredefinedGraphicElement(lyt, arcpy.Point(3, 1), 'RECTANGLE',
                                       polyStyle, 'ArcPy_Rectangle_Pt',
                                       lock_aspect_ratio=False)
rec.elementWidth = 1.75
rec.elementHeight = 1

lyt.openView()
ArcGISProject, пример 7

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

def MakeRec_UL(ulx, uly, w, h):
    xyRecList = [[ulx, uly], [ulx+w, uly], [ulx+w,uly-h], [ulx,uly-h], [ulx,uly]]
    array = arcpy.Array([arcpy.Point(*coords) for coords in xyRecList])
    rec = arcpy.Polygon(array)
    return rec
        
p = arcpy.mp.ArcGISProject('current')
m = p.createMap('New Map', 'Map') #WGS 1984 Web Mercator (auxiliary sphere)
gl = m.createGraphicsLayer('New Graphics Layer')

###Replace with pictures of YOUR favorite pets!
picPath1 = r'C:\Projects\Fenway.jpg'
picPath2 = r'C:\Projects\Chowdah.png'

x = -13000000; y = 5000000; w = 1000000; h = 1500000

pic1 = p.createPictureElement(gl, MakeRec_UL(x, y, w, h), picPath1, 'Fenway')
pic2 = p.createPictureElement(gl, MakeRec_UL(x+3000000, y, w, h), picPath2, 'Chowdah')
m.openView()

newGroup = p.createGroupElement(gl, [pic1, pic2], 'Favorite Pets')