Project packages (.ppkx files) allow you to share projects. A project package is a file that contains all maps and the data referenced by its layers, as well as folder connections, toolboxes, geoprocessing history, and attachments.
You can use project packages to share projects between colleagues in a work group, across departments in an organization, or with any other ArcGIS users through ArcGIS Online or ArcGIS Enterprise. You can also package projects to create an archive or snapshot of a particular project in its current state.
Create a project package
When sharing content within your organization, it's likely that enterprise databases, UNC path data, styles, and connections are accessible to those using the project package. In this case, unchecking the Share outside of organization option limits access to these resources. Enterprise database data, UNC path data, styles, and connections in your map are referenced rather than copied to the project package.
However, when sharing content outside your organization, enterprise databases, UNC path data, styles, and connections to folders, servers, and databases are not accessible. You can check the Share outside of organization option to include the data in your package. If you check this option, data from enterprise databases, UNC path folders, and feature services is extracted and copied to file geodatabases. Styles are copied and all connections are removed.
Project item | Share inside organization | Share outside of organization | Notes |
---|---|---|---|
Consolidate local data, reference UNC path and enterprise geodatabase data. | Consolidate local data, UNC path, enterprise geodatabase, and feature service data. | Data that is reused is only copied to the project package once. | |
Included | Included | ||
Included | Included | ||
Consolidate local data, reference UNC path and enterprise geodatabase data. | Consolidate local data, UNC path, enterprise geodatabase, and feature service data. | Input, output, and intermediate data is not copied. Model project data is copied, but input data is not. The default toolbox is always copied to the project package. See additional considerations below. To exclude all toolboxes from the package except the default project toolbox, uncheck the Include Toolboxes option. | |
Included | Included | Geoprocessing history is copied as well as all resources (models, scripts, data, layers, and files) needed to rerun tools. To exclude all geoprocessing history from the package, uncheck the Include History Items option. | |
Data Connections | Consolidate local data and remove connections from the Catalog pane. Maintain UNC path connections. Maintain enterprise geodatabase connections. Copy the project default.gdb. | Consolidate local data, UNC path, and enterprise geodatabase data. Remove all connections from the Catalog pane. Copy the project default.gdb. | |
Consolidate local attachments. Reference UNC path attachments. | Consolidate local attachments. Consolidate UNC path attachments. | When a project package is extracted, attachments are stored in <extracted location>\commondata\userdata. For more information about where projects are extracted, see Open a project. | |
Consolidate local styles. Reference UNC path styles. | Consolidate local styles. Consolidate UNC path styles. | ||
Included | Included | ||
Consolidate local data, reference UNC path and enterprise geodatabase data. | Consolidate local data, UNC path, and enterprise geodatabase data. | ||
Included | Removed | Items in the connection are not copied. | |
Included | Removed | Items in the connection are not copied. | |
Included | Removed | Items in the connection are not copied. | |
Included | Removed | Items in the connection are not copied. | |
Consolidate local data, reference UNC path and enterprise geodatabase data. | Consolidate local data, UNC path, and enterprise geodatabase data. | All result sessions are included. | |
Included | Included |
- On the ribbon, click the Disseminate tab. In the Share group, click Project Package .
The Package Project pane appears.
- Specify where to save your package, either to your online account or as a file on disk.
- Provide the name and, if saving the package to a file, the location for your new package on disk.
- Optionally, complete the Summary and Tags fields.
The fields are populated with information from the project metadata, which can be found on the Info page in the ArcGIS AllSource settings.
A summary and tags are required when sharing to an ArcGIS Enterprise 10.9 or earlier portal.
You can enter a maximum of 128 tags.
- Optionally, check the Share outside of organization option to copy data from enterprise databases, UNC path folders, and feature services to file geodatabases, include styles, and remove connections to folders, servers, and databases.
If this option is not checked, enterprise database data, UNC path data, styles, and connections will continue to be referenced once the project is unpacked.
- Optionally, check the Include Toolboxes option to include all project toolboxes and the data referenced by their tools.
If this option is not checked, project toolboxes, except the default toolbox, are not included. Toolboxes in connected folders are not considered project toolboxes and are not impacted by this setting.
- Optionally, check the Include History Items option to include all geoprocessing history items and the data required to rerun the history item.
If this option is not checked, none of the project's geoprocessing history items are included. If history items are included, ensure that all data required to rerun the tool still exists and is accessible. If it's not, packaging will not be successful.
- If you are uploading your package to an online account, use the Folder menu to specify where the package will be stored in your portal content. The package is stored in the root of your content by default. Optionally, click the Browse button to create a folder or choose an existing one. You can also type the name of the desired folder in the text box.
- If you're uploading your package to an online account, specify how it will be shared:
- Everyone—Share your content with the public. Anyone can access and see it.
- My Organization—Share your content with all authenticated users in the organization. This option is available when you are signed in with an organizational account.
- Groups—Share your content with groups to which you belong and their members.
Leave all options unchecked to set the sharing level to the owner of the item.
- Add the items you want to include to Attachments. This option allows you to include other content, such as detailed documentation, reports, and graphs. The following types of files cannot be included: .js, .vbs, .py, .pyc, .pyo, .bat, and .ocx. Also, only signed .dll and .exe files are allowed.
- Under Finish Sharing, click Analyze to review for potential problems.
Errors and warnings are listed on the Messages tab. Right-click a message to open its help topic or take corrective action in the software. Errors must be resolved before you can share your GIS resource. Resolving warnings is recommended but not required.
- Once the package is validated, click Package to create your package.
See Open a project to learn how to unpack your project package.
Geoprocessing considerations
A project package includes any tool (model or script) contained in a toolbox that has been added to the project. The tools and any data required to run them are included in the project package. This is similar to tools in the project geoprocessing history; any tool that has been run is packaged, including any data required to rerun the tool. A common practice when building script tools is to build paths to datasets using a relative path from the toolbox location. With a project, you can reference data based on the .asrx project file location, rather than the toolbox location. Consolidating and packaging a project moves items relative to the .asrx file. Use the following approach to build paths to datasets:
import os
prjLocation = arcpy.mp.ArcGISProject("CURRENT").homeFolder
oilwells = os.path.join(prjLocation, "data\\oil.gdb\\wells")
print (oilwells)
# 'C:\\MyProjects\\OilExploration\\SouthWestWells.asrx\\data\\oil.gdb\\wells'