标注 | 说明 | 数据类型 |
输入工程 | 要打包的工程(.aprx 文件)。 | File |
输出文件 | 输出工程包(.ppkx 文件)。 | File |
在组织外共享 (可选) | 指定是针对内部环境合并工程,还是移动所有数据元素以便在外部共享工程。 注:如果工程通过本地路径(例如 c:\gisdata\landrecords.gdb\)引用数据和地图,则将对这些数据和地图进行合并和打包(不考虑该参数设置)。
| Boolean |
打包为模板 (可选) | 指定将创建工程模板还是工程包。 工程模板可以包含地图、布局、数据库和服务器的连接等。 使用工程模板,可以标准化不同工程的一系列地图并可确保正确的图层可供所有人直接用于他们的地图中。
| Boolean |
范围 (可选) | 指定用于选择或裁剪要素的范围。
| Extent |
仅将范围应用到企业级地理数据库图层 (可选) | 指定是将指定范围应用到所有图层,还是仅应用到企业级地理数据库图层。
| Boolean |
附加文件 (可选) | 将添加到包中的附加文件。 诸如 .doc、.txt、.pdf 等附加文件可用于提供有关打包内容和目的的详细信息。 | File |
摘要 (可选) | 将添加到包属性的摘要信息。 | String |
标签 (可选) | 将添加到包属性中的标签。 使用逗号或分号分隔多个标签。 | String |
包版本 (可选) | 指定将在结果包中创建的地理数据库版本。 指定版本可实现与较早版本的 ArcGIS 共享包,并可支持向后兼容。 注:保存为较早版本的包可能会丢失仅适用于较新版本的属性。
| String |
包括工具箱 (可选) | 指定是否合并工程工具箱以及工程工具箱中的工具所引用的数据并将其包括在输出包中。 所有工程都需要默认工具箱,因此无论如何设置,默认工具箱都将包括在内。 连接文件夹中的工具箱不会被视为工程工具箱,且不受此设置的影响。
| Boolean |
包括历史项目 (可选) | 指定是否合并地理处理历史项目并将其包括在输出包中。 包括的历史项目将合并重新处理历史项目所需的数据。
| String |
只读包 (可选) | 指定工程是否为只读状态。 无法修改或保存只读工程。
| Boolean |
仅保留与范围内要素相关的行 (可选) | 指定是否将指定的范围应用至相关数据源。
| Boolean |
保留移动地理数据库 (可选) | 指定输入移动地理数据库数据是保留在输出中还是写入文件地理数据库格式。 如果输入数据是移动地理数据库网络数据集,则输出将为移动地理数据库。
| Boolean |
摘要
将引用地图和数据的工程文件 (.aprx) 合并并打包到已打包的工程文件 (.ppkx) 中。
使用情况
将工程的所有元素合并到工程包 (.ppkx) 中,这些元素包括地图和 3D 视图、位于地图中的数据和图层、工具箱、地理处理历史项目、样式、布局以及文件夹或连接(服务器、工作流等)(如果适用)。
默认情况下,创建的工程包供内部使用。 在组织外共享参数可用于控制是创建供内部使用(组织网络内)的包,还是创建供外部使用的包。 如果选中在组织外共享,则通过 UNC 路径参考的企业级地理数据库图层和数据将包括在工程包内。
注:
必须通过企业级地理数据库或 UNC 文件路径引用数据源才能创建保持引用数据的内部包。 将始终合并和打包本地数据路径。 如果要在环境外部共享内部包(其中的数据仅供参考之用)或将其共享给不具有企业级地理数据库或 UNC 数据共享访问权限的同事,则在创建该包时将打开损坏的链接。
可使用打包为模板参数创建模板。 使用工程模板(.aptx 文件),可通过定义图层、地图和数据以及所需的连接来创建新工程。
在执行合并进程之前,将使用针对 Pro 分析工具工具分析属于工程组成部分的工具箱。 识别出的错误将停止合并进程。 您必须修复这些错误,或从工程中移除工具。 无论数据是否属于工程中的地图,都将合并工具所需的输入数据。 通过取消选中包括工具箱参数可以将工具箱从输出工程包中排除。
与工程工具箱类似,地理处理历史(来自运行地理处理工具的结果信息)将包含在包中。 处理历史项目所需的数据将包括在输出包中,而无论其是否存在于地图或场景中。 任何无效(在处理过程中失败)或者无法找到数据的历史项目都将导致打包过程停止。 您必须移除或修复有问题的历史项目。 通过取消选中包括历史项目参数可以将历史项目从输出工程包中排除。
连接(例如文件夹、服务器、数据库以及工作流)将仅包括在内部包中。 如果创建包的目的是要在组织外共享,则将移除这些项目。
如果项目(例如附件、样式和任务)为 UNC 路径中的工程的一部分,则将对内部包引用项目。 在所有其他情况下,都将对这些项目进行复制和打包。
对于要素图层,使用范围参数选择将要合并的要素。 对于栅格图层,使用范围参数裁剪栅格数据集。
记录地图和数据或提供详细信息的文件可包括在包中。 使用附加文件参数引用图像、PDF、Word 文档和 .zip 文件,可将其包括在包中。
警告:
只能通过 .ppkx 创建和打开工程包 (ArcGIS AllSource 文件)。
参数
arcpy.management.PackageProject(in_project, output_file, {sharing_internal}, {package_as_template}, {extent}, {apply_extent_to_arcsde}, {additional_files}, {summary}, {tags}, {version}, {include_toolboxes}, {include_history_items}, {read_only}, {select_related_rows}, {preserve_sqlite})
名称 | 说明 | 数据类型 |
in_project | 要打包的工程(.aprx 文件)。 | File |
output_file | 输出工程包(.ppkx 文件)。 | File |
sharing_internal (可选) | 指定是针对内部环境合并工程,还是移动所有数据元素以便在外部共享工程。
| Boolean |
package_as_template (可选) | 指定将创建工程模板还是工程包。 工程模板可以包含地图、布局、数据库和服务器的连接等。 使用工程模板,可以标准化不同工程的一系列地图并可确保正确的图层可供所有人直接用于他们的地图中。
| Boolean |
extent (可选) | 指定用于选择或裁剪要素的范围。
| Extent |
apply_extent_to_arcsde (可选) | 指定是将指定范围应用到所有图层,还是仅应用到企业级地理数据库图层。
| Boolean |
additional_files [additional_files,...] (可选) | 将添加到包中的附加文件。 诸如 .doc、.txt、.pdf 等附加文件可用于提供有关打包内容和目的的详细信息。 | File |
summary (可选) | 将添加到包属性的摘要信息。 | String |
tags (可选) | 将添加到包属性中的标签。 使用逗号或分号分隔多个标签。 | String |
version [version,...] (可选) | 指定将在结果包中创建的地理数据库版本。 指定版本可实现与较早版本的 ArcGIS 共享包,并可支持向后兼容。 注:保存为较早版本的包可能会丢失仅适用于较新版本的属性。
| String |
include_toolboxes (可选) | 指定是否合并工程工具箱并将其包括在输出包中。 所有工程都需要默认工具箱,因此无论如何设置,默认工具箱都将包括在内。
| Boolean |
include_history_items (可选) | 指定是否合并地理处理历史项目并将其包括在输出包中。 包括的历史项目将合并重新处理历史项目所需的数据。
| String |
read_only (可选) | 指定工程是否为只读状态。 无法修改或保存只读工程。
| Boolean |
select_related_rows (可选) | 指定是否将指定的范围应用至相关数据源。
| Boolean |
preserve_sqlite (可选) | 指定移动地理数据库数据是保留在输出中还是写入文件地理数据库格式。 如果输入数据是移动地理数据库网络数据集,则输出将为移动地理数据库。
| Boolean |
代码示例
以下 Python 脚本演示了如何在 Python 窗口中使用 PackageProject 函数。
import arcpy
p = arcpy.mp.ArcGISProject("CURRENT")
arcpy.management.PackageProject(p.filePath, 'E:\\gisShare\\projects\\Pipelines\\SE_Pipeline.ppkx', 'INTERNAL')
以下 Python 脚本将目录中文件名带有单词 oil 的所有工程转到工程包 (.ppkx) 中。
import os
import arcpy
enterpriseProjectDir = "\\\\centralFileServer\\gisData\\ArcGISProProjects"
sharedProjectDir = "c:\\publicFiles\\sharedProjects"
walk = arcpy.da.Walk(enterpriseProjectDir, datatype="Project")
for dirpath, dirnames, filenames in walk:
for filename in filenames:
if "oil" in filename.lower():
project = os.path.join(dirpath, filename)
outputFile = os.path.join(sharedProjectDir, os.path.splitext(os.path.basename(project))[0] + ".ppkx")
print("Packaging: {0} to {1}".format(project, outputFile))
arcpy.management.PackageProject(project, outputFile, "EXTERNAL")