Skip To Content

Package Project


Consolidates and packages a project (.aprx file) of referenced maps and data to a packaged project file (.ppkx).


  • All elements of a project are consolidated into the project package (.ppkx), including maps and 3D views, the data and layers in the maps, toolboxes, geoprocessing history items, styles, layouts, and folders or connections (server, workflow, and so on) when appropriate.

  • Project packages, by default, are created for internal use. The Share outside of organization parameter allows you to control if a package is to be created for either internal (inside your organizations network) or external use. When Share outside of organization is checked, enterprise geodatabase layers and data referenced from a UNC path will be included in the project package.


    Data sources must be referenced from either an enterprise geodatabase or UNC file path to create an internal package where the data remains referenced. Local data paths will always be consolidated and packaged. Creating an internal package where data is only referenced will open with broken links if shared outside your environment or to colleagues who do not have access to either the enterprise geodatabase or the UNC data shares.

  • Templates can be created using the Package as template parameter. A project template (.aptx file) can help you create a new project by defining layers, maps, and data as well as required connections.

    Learn more about project templates

  • Toolboxes that are part of a project are analyzed using the Analyze Tools for Pro tool before the consolidation process is performed. Identified errors will stop the consolidation process. You will need to either fix those errors or remove the tool from the project. Input data used by the tool will be consolidated, regardless of whether the data is part of a map in the project. Toolboxes can be excluded from the output project package by unchecking the Include Toolboxes parameter.

  • Similar to project toolboxes, geoprocessing history (the result information from executing a geoprocessing tool) will be included in the package. Data required to execute the history item will be included in the output package regardless of whether it exists in a map or scene. Any history items that are invalid (failed during execution) or where data cannot be found will cause the packaging process to halt. You will need to remove or fix the history item in question. History items can be excluded from a project package by unchecking the Include History Items parameter.

  • Connections—such as folder, server, database and workflow—will only be included in an internal package. These items are removed if the package is created to be shared outside your organization.

  • Items such as attachments, styles, and tasks will be referenced for internal packages if they were part of the project from a UNC path. These items will be copied and packaged in all other situations.

  • For feature layers, the Extent parameter is used to select the features that will be consolidated. For raster layers, the Extent parameter is used to clip the raster datasets.

  • Files that document maps and data or provide additional information can be included in the package. Images, PDFs, word documents, and .zip files can be included in the package by referencing them with the Additional Files parameter.

  • Caution:

    Project packages (.ppkx files) can only be created and opened with ArcGIS Pro.


PackageProject_management (in_project, output_file, {sharing_internal}, {package_as_template}, {extent}, {apply_extent_to_arcsde}, {additional_files}, {summary}, {tags}, {version}, {include_toolboxes}, {include_history_items})
ParameterExplanationData Type

The project (.aprx file) to be packaged.


The output project package (.ppkx file).


Specifies whether the project will be consolidated for your internal environment or will move all data elements so it can be shared externally.

  • INTERNAL Enterprise data sources, such as enterprise geodatabases and data from a UNC path, will not be copied to the local folder. This is the default.
  • EXTERNALData formats will be copied and preserved when possible.

Specifies whether to create a project template or a project package. Templates can include maps, layouts, connections to databases and servers, and so on. A project template makes it easy to standardize a series of maps for different projects and to ensure the correct layers are immediately available for everyone to use in their maps.

Learn more about project templates

  • PROJECT_PACKAGE A normal project package will be created. This is the default.
  • PROJECT_TEMPLATEA project template (.aptx file) will be created

Specifies the extent by manually entering the coordinates in the extent parameter using the format X-Min Y-Min X-Max Y-Max. To use the extent of a specific layer, specify the layer name.

  • MAXOFUnion of inputs
  • MINOFIntersection of inputs
  • DISPLAYSame extent as current display
  • <Layer>Same extent as specified layer

Determines whether the specified extent will be applied to all layers or only to enterprise geodatabase layers.

  • ALL Specified extent will be applied to all layers. This is the default.
  • ENTERPRISE_ONLYSpecified extent will be applied to enterprise geodatabase layers only.

Adds additional files to a package. Additional files, such as .doc, .txt, .pdf, and so on, are used to provide more information about the contents and purpose of the package.


Adds summary information to the properties of the package.


Adds tag information to the properties of the package. Multiple tags can be added or separated by a comma or semicolon.


Specifies the version of the geodatabases that will be created in the resulting package. Specifying a version allows packages to be shared with previous versions of ArcGIS and supports backward compatibility.


A package saved to a previous version may lose properties available only in the newer version.

  • ALL Package will contain geodatabases and maps compatible with all versions. (ArcGIS Pro 1.2 and later)
  • CURRENT Package will contain geodatabases and maps compatible with the version of the current release.
  • 2.xPackage will contain geodatabases and maps compatible with version 2.0 and later.
  • 1.2 Package will contain geodatabases and maps compatible with version 1.2 and later.

Determines whether project toolboxes will be consolidated and included in the output package. All projects require a default toolbox, and the default toolbox will be included regardless of this setting.

  • TOOLBOXESProject toolboxes will be included in the output package. This is the default.
  • NO_TOOLBOXESProject toolboxes will be excluded from the output package.

Determines whether geoprocessing history items will be consolidated and included in the output package. Included history items will consolidate the data required to re-execute said history item.

  • HISTORY_ITEMSHistory items will be included in the output package. This is the default.
  • NO_HISTORY_ITEMSHistory items will be excluded from the output package.
  • VALID_HISTORY_ITEMS_ONLYOnly valid history items will be included in the output package. History items are invalid if any of the original input layers or tools cannot be found.

Code sample

PackageProject example 1 (Python window)

The following Python script demonstrates how to use the PackageProject tool from the Python window.

import arcpy
arcpy.PackageProject_management(p.filePath, 'E:\\gisShare\\projects\\Pipelines\\SE_Pipeline.ppkx', 'INTERNAL')
PackageProject example 2 (stand-alone script)

The following Python script turns all projects from a directory, with the word oil in the file name, into a project package (.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.upper():
            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.PackageProject_management(project, outputFile, "EXTERNAL")


Licensing information

  • ArcGIS Desktop Basic: Yes
  • ArcGIS Desktop Standard: Yes
  • ArcGIS Desktop Advanced: Yes

Related topics