arcpy.management.ChangeVersion(in_features, version_type, {version_name}, {date}, {include_participating})
|
Имя
|
Объяснение
|
Тип данных
|
|
in_features
|
Слой или представление таблицы для подключения к заданной версии.
Примечание:
Подслои слоя топологии, слои участков, слои инженерной сети или слои сети трассировки не являются допустимыми входными данными.
|
Feature Layer; Table View; Topology Layer; Parcel Layer; Utility Network Layer; Trace Network Layer
|
|
version_type
|
Задает тип версии, к которой выполняется подключение входного векторного слоя.
TRANSACTIONAL–Подключитесь к определённому состоянию базы данных (традиционная версия).
HISTORICAL–Подключиться к версии, представляющей определенный момент во времени, который часто задается Маркером времени или Маркером истории.
BRANCH–Подключение к сервис-ориентированной версии.
|
String
|
|
version_name
(Дополнительный)
|
Имя версии, к которой выполняется подключение входного векторного слоя. Этот параметр является необязательным, если вы используете историческую версию.
|
String
|
|
date
(Дополнительный)
|
Дата исторической версии, к которой выполняется подключение входного векторного слоя.
|
Date
|
|
include_participating
(Дополнительный)
|
Указывает, будет ли также изменяться рабочая область участвующих классов.
Этот параметр применим только в том случае, если входным слоем является слой топологии, слой участков, слой инженерной сети или слой сети трассировки.
INCLUDE–Версия участвующих классов набора данных контроллера изменится, если они находятся в той же рабочей области, что и набор данных контроллера.
EXCLUDE–Изменится только версия набора данных контроллера.
|
Boolean
|
Производные выходные данные
|
Имя
|
Объяснение
|
Тип данных
|
|
out_feature_layer
|
Обновленный входной набор данных.
|
Feature Layer
|
Пример кода
ChangeVersion, пример 1 (окно Python)
В следующем скрипте окна Python показано, как используется функция ChangeVersion в режиме прямого запуска.
import arcpy
arcpy.env.workspace = r'c:\Connections\toolbox.sde'
arcpy.management.MakeFeatureLayer(r'TOOLBOX.Redlands\TOOLBOX.street','RedlandsStreets')
arcpy.management.MakeFeatureLayer(r'TOOLBOX.Redlands\TOOLBOX.streams','RedlandsStreams')
arcpy.management.MakeFeatureLayer(arcpy.management.SelectLayerByLocation("RedlandsStreams","WITHIN_A_DISTANCE","RedlandsStreets","100 Meters","NEW_SELECTION",'#'),
'StreamsNearStreets','','','')
arcpy.management.ChangeVersion('RedlandsStreets','TRANSACTIONAL', 'TOOLBOX.proposedStreets2k9','')
arcpy.management.MakeFeatureLayer(arcpy.management.SelectLayerByLocation("RedlandsStreams","WITHIN_A_DISTANCE","RedlandsStreets","100 Meters","NEW_SELECTION",'#'),
'NewStreamsNearStreets','','','')
ChangeVersion, пример 2 (автономный скрипт)
Использует функцию ChangeVersion в обычном рабочем процессе анализа версий.
# Name: ChangeVersion.py
# Description: Use the ChangeVersion tool in a typical versioned analysis workflow.
# Quick check of additional streams within a pre-determined distance
# of new proposed street development.
# Import system modules
import arcpy
import sys
import os
# Set environments
arcpy.env.workspace = sys.path[0] + os.sep + "toolbox.sde"
# Create the layers
arcpy.management.MakeFeatureLayer(r'TOOLBOX.Redlands\TOOLBOX.street','RedlandsStreets')
arcpy.management.MakeFeatureLayer(r'TOOLBOX.Redlands\TOOLBOX.streams','RedlandsStreams')
# Perform analysis on the Default version to determine
# current number of streams within 100 meters of streets.
selection1 = arcpy.management.SelectLayerByLocation("RedlandsStreams",
"WITHIN_A_DISTANCE",
"RedlandsStreets",
"100 Meters",
"NEW_SELECTION",
'#')
arcpy.management.MakeFeatureLayer(selection1,'StreamsNearStreets','','','')
print("Streams within 100 Meters of current streets: {}".format(
arcpy.management.GetCount("StreamsNearStreets")[0]))
# Change to the development version
arcpy.management.ChangeVersion('RedlandsStreets',
'TRANSACTIONAL',
'TOOLBOX.proposedStreets2k9',
'')
# Perform the same analysis on the development version to see the effect of the proposed changes.
selection2 = arcpy.management.SelectLayerByLocatio("RedlandsStreams",
"WITHIN_A_DISTANCE",
"RedlandsStreets",
"100 Meters",
"NEW_SELECTION",
'#')
arcpy.management.MakeFeatureLayer(selection2,'NewStreamsNearStreets','','','')
print("Streams projected to be within 100 Meters of streets after proposed street additions: {}".format(
arcpy.management.GetCount("NewStreamsNearStreets")[0]))
ChangeVersion, пример 3 (автономный скрипт)
Использует функцию ChangeVersion для изменения слоя сервиса объектов в именованной разветвленной версии.
# Name: ChangeVersionBranchVersioning.py
# Description: Use the ChangeVersion tool to change the branch version of a feature service
# layer that has the version management capability enabled.
# Import system modules
import arcpy
# Sign into ArcGIS Enterprise
arcpy.SignInToPortal("https://myserver.mydomain.com/portal", 'portaladmin', 'my.password')
# Create a variable for the feature service URL
myFS = "https://myserver.mydomain.com/server/rest/services/BranchVersioningData/FeatureServer/0"
# Create the layers
arcpy.management.MakeFeatureLayer(myFS, 'myFSLayer')
# Change to a branch version named myVersion
arcpy.management.ChangeVersion('myFSLayer', "BRANCH", "portaladmin.myVersion")