-
Notifications
You must be signed in to change notification settings - Fork 120
Home
Extend ArcGIS Pro with ArcGIS Pro SDK for .NET. ArcGIS Pro SDK for .NET is based on the add-in and configurations extensibility pattern. Leverage modern .NET features and patterns such as Task Asynchronous Programming (TAP), LINQ, WPF Binding, and MVVM to write integrated 2D/3D add-ins using Pro’s new APIs.
In this topic
- Requirements
- Installing ArcGIS Pro SDK for .NET
- ArcGIS Pro SDK for .NET components
- Getting started
- ProSnippets
- ArcGIS Pro API
- Release notes
- Previous versions
- Resources
The requirements for the machine on which you develop your ArcGIS Pro add-ins are listed here.
- ArcGIS Pro 2.1
- Windows 10 (Home, Pro, Enterprise) (64 bit)
- Windows 8.1 (Pro, and Enterprise) (64 bit)
- Windows 7 SP1 (Ultimate, Professional and Enterprise) (64 bit)
- Microsoft .NET Framework 4.6.1 Developer Pack
- Visual Studio 2017 (Professional, Enterprise, and Community Editions)
- Visual Studio 2015 (Professional, Enterprise, and Community Editions)
Note: ArcGIS Pro system requirements
ArcGIS Pro SDK for .NET can be downloaded and installed from within Visual Studio.
Read the ProGuide: Installation and Upgrade for detailed installation instructions.
The following table summarizes the functionality of each .vsix file included in the SDK download:
Name | File | Functionality |
---|---|---|
ArcGIS Pro SDK for .NET | proapp-sdk-templates.vsix | A collection of project and item templates to create ArcGIS Pro add-ins |
ArcGIS Pro SDK for .NET (Utilities) | proapp-sdk-utilities.vsix | A collection of utilities to help create ArcGIS Pro add-ins |
Package: proapp-sdk-templates.vsix
ArcGIS Pro SDK for .NET provides the following project and item templates:
C# | VB | Name |
---|---|---|
ArcGIS Pro Module Add-in Project template | ||
ArcGIS Pro Managed Configurations Project template | ||
ArcGIS Pro Backstage Tab | ||
ArcGIS Pro Button | ||
ArcGIS Pro Button Palette | ||
ArcGIS Pro Combo Box | ||
ArcGIS Pro Construction Tool | ||
ArcGIS Pro Custom Control | ||
ArcGIS Pro Dockpane | ||
ArcGIS Pro Dockpane with Burger Button | ||
ArcGIS Pro Drop Handler | ||
ArcGIS Pro Embeddable Control | ||
ArcGIS Pro Gallery | ||
ArcGIS Pro Inline-Gallery | ||
ArcGIS Pro Map Pane Impersonation | ||
ArcGIS Pro Map Tool | ||
ArcGIS Pro Menu | ||
ArcGIS Pro Pane | ||
ArcGIS Pro Property Sheet | ||
ArcGIS Pro Split Button |
In general, there is a one-to-one correspondence between a framework UI element extensibility point (e.g. button, tool, menu, dockpane, etc) and an item template. Use the relevant item template to add the corresponding extensibility point to your Add-in.
Note: For the following item templates a further description may be useful:
The ArcGIS Pro Framework supports drag and drop via two virtual functions: OnDragOver topic10438.html and OnDrop topic10439.html. Use the Drop Handler template to add basic implementations of these methods to your add-in to help get you stared with drag and drop support for your custom panes and dockpanes.
Excel Drop Handler sample
Use the Embeddable Control template to add a pop-up or similar UI to your custom map tools. When a map tool is activated, its associated embeddable control (if it has one) is displayed on-top-of the active map view. When the map tool is de-activated, the embeddable control is hidden.
ProGuide: Using Embeddable Controls
Basic Map Tool sample
Map Tool with OverlayControl Sample
If you want your custom pane to "use" the map TOC content control (and not a custom content control) then you must "impersonate" the map pane. Run this template to generate the necessary code to implement a custom pane with map pane impersonation.
ProGuide: Map Pane Impersonation
ImpersonateMapPane Sample
Package: proapp-sdk-utilities.vsix
ArcGIS Pro SDK for .NET (Utilities) provides the following utilities that extend the Visual Studio environment:
Name | Description |
---|---|
Pro Fix References utility | Fixes broken references in an ArcGIS Pro add-in. Broken references can be caused when you share add-ins with other colleagues or download add-ins where the ArcGIS Pro assembly references point to a different location from where you installed them. |
Pro Generate DAML Ids utility | Converts all of the ArcGIS Pro Desktop Application Markup Language (DAML) string IDs into static string properties organized by DAML element types (for example, Button, Dockpane, Tool, Condition, and so on). This allows you to use the IntelliSense feature of Visual Studio within your source code file to add IDs, rather than having to manually type DAML string IDs). |
See ProGuide: Build your first add-in for step-by-step instructions on creating a basic button that appears on the ArcGIS Pro ribbon.
ProSnippets are ready-made snippets of code you can quickly insert into your ArcGIS Pro add-in. List of available ProSnippets.
The ArcGIS Pro APIs are managed .NET assemblies. Intermediary assemblies containing .NET metadata or PIAs (Primary Interop Assemblies) are not required.
Add any of the ArcGIS Pro managed assemblies that comprise its API as references directly in your Visual Studio add-in projects
A complete list of the ArcGIS Pro assemblies in the public API is provided below:
Core assemblies are located in the {ArcGIS Pro Installation folder}\bin.
Assembly | Description |
---|---|
ArcGIS.Core.dll | Provides CIM, Geodatabase, Geometry and Utility Network APIs. |
ArcGIS.CoreHost.dll | Provides Host.Initialize to initialize ArcGIS.Core.dll for stand-alone use. |
ArcGIS.Desktop.Framework.dll | Provides the application framework to include add-in contracts, DAML support, and base classes. This assembly must be referenced by every add-in. |
Major subsystems within ArcGIS Pro are organized into units called extensions. Extension assemblies are located in the {ArcGIS Pro Installation folder}\bin\Extensions folder in their own individual subfolder. Extension subfolder names are logically named for the unit of functionality they represent, for example, Mapping, Editing, Layout, and so on.
Assembly | Description |
---|---|
ArcGIS.Desktop.Catalog.dll | Provides access to project content items (map items, layout items, style items, folder items, and so on). |
ArcGIS.Desktop.Core.dll | Provides functionality to create and manage projects, access to events associated with the current project, and the ability to execute geoprocessing tools. |
ArcGIS.Desktop.DataReviewer.dll | Provides functionality to establish and manage Reviewer results, sessions, and batch jobs in a project. |
ArcGIS.Desktop.Editing.dll | Provides access to the editing environment and core editing functionality required for custom edit tool implementations. |
ArcGIS.Desktop.Extensions.dll | Provides extension methods for other ArcGIS Pro classes. Provides a base class for custom map tools. |
ArcGIS.Desktop.Geoprocessing.dll | Provides access to geoprocessing history items stored in the project. (Note: Adds a reference to ArcGIS.Desktop.Core.dll to execute geoprocessing tools.) |
ArcGIS.Desktop.Layouts.dll | Provides functionality for manipulating elements on a layout and exporting to a variety of image formats. |
ArcGIS.Desktop.Mapping.dll | Provides types to create maps and layers, label features, perform query operations, and visualize them in 2D or 3D. Provides a raster API to create raster layers and customize raster rendering, and an API to manage styles, style items, and symbols. |
ArcGIS.Desktop.TaskAssistant.dll | Provides the Tasks framework, allowing developers to access, open, close, or export task items. |
ArcGIS.Desktop.Workflow.dll | Provides functionality to create, configure, and execute Workflow Manager jobs and queries. Provides functionality to retrieve configuration information from the Workflow Manager database. |
There are extension assemblies in {ArcGIS Pro Installation folder}\bin\Extensions subfolders) that do not have a public API. They are currently for Esri internal use only.
- ArcGIS.Desktop.Analyst3D.dll
- ArcGIS.Desktop.Aviation.dll
- ArcGIS.Desktop.BusinessAnalyst.Common.dll
- ArcGIS.Desktop.BusinessAnalyst.DataBrowser.dll
- ArcGIS.Desktop.BusinessAnalyst.DataCollection.dll
- ArcGIS.Desktop.BusinessAnalyst.dll
- ArcGIS.Desktop.BusinessAnalyst.GPControls.dll
- ArcGIS.Desktop.BusinessAnalyst.MvvmUtils.dll
- ArcGIS.Desktop.BusinessAnalyst.WpfCommon.dll
- ArcGIS.Desktop.Charts.dll
- ArcGIS.Desktop.DataSourcesRaster.dll
- ArcGIS.Desktop.DefenseMapping.dll
- ArcGIS.Desktop.Editing.PushPull.dll
- ArcGIS.Desktop.FullMotionVideo.dll
- ArcGIS.Desktop.GAWizard.dll
- ArcGIS.Desktop.Geostatistics.dll
- ArcGIS.Desktop.LocationReferencing.dll
- ArcGIS.Desktop.Metadata.dll
- ArcGIS.Desktop.NetworkAnalysis.Facility.dll
- ArcGIS.Desktop.NetworkAnalysis.NetworkDiagrams.dll
- ArcGIS.Desktop.NetworkAnalysis.Transportation.dll
- ArcGIS.Desktop.Search.dll
- ArcGIS.Desktop.Sharing.dll
- ArcGIS.Desktop.TerritoryDesign.dll
Note: Static string resource properties and image resources included within the public API assemblies are for Esri internal use only. They are not intended for use in third-party add-ins.
These release notes describe details of the ArcGIS Pro 2.1 SDK for .NET release. Here you will find information about available functionality as well as known issues and limitations.
The following functionality is available at the ArcGIS Pro 2.1 SDK for .NET release:
Annotation API:
- Create and edit annotation features
- Assign and manage annotation geometries
Content API:
- Working with Metadata
- Portal API enhancements
Layout API:
- Create new layouts from scratch with dynamic settings
- Author layout element types
- Interact with layout views and manage element selections
Utility Network API:
- Create custom utility network traces
- Develop tools for utility-focused workflows
For a detailed list of changes to the ArcGIS Pro API refer to the What's new for developers at 2.1 topic in the ArcGIS Pro API Reference Guide.
There are many new ProConcepts, ProGuide, ProSnippets, and samples to help you get up and running with the new SDK features including:
- The ProConcepts: Annotation which goes over the fine-grained Annotation API.
- The ProConcepts: Layouts which goes over managing layouts, layout elements and working with layout views. This includes creating new layouts and layout elements, modifying existing elements, managing selections, and layout view control and navigation.
- The ProConcepts: Utility Network which goes over the comprehensive framework of functionality in ArcGIS for modeling utility systems such as electric, gas, water, storm water, wastewater, and telecommunications.
- The ProGuide: Annotation Construction Tools and ProGuide: Annotation Editing Tools.
- The API Changes section of the What’s New for Developers 2.1 page.
- The Pro Community Samples and Snippets have new samples and snippets.
Home | API Reference | Requirements | Download | Samples
- Overview of the ArcGIS Pro SDK
- What's New for Developers at 3.4
- Installing ArcGIS Pro SDK for .NET
- Release notes
- Resources
- Pro SDK Videos
- ProSnippets
- ArcGIS Pro API
- ProGuide: ArcGIS Pro Extensions NuGet
Migration
- ProSnippets: Framework
- ProSnippets: DAML
- ProConcepts: Framework
- ProConcepts: Asynchronous Programming in ArcGIS Pro
- ProConcepts: Advanced topics
- ProGuide: Custom settings
- ProGuide: Command line switches for ArcGISPro.exe
- ProGuide: Reusing ArcGIS Pro Commands
- ProGuide: Licensing
- ProGuide: Digital signatures
- ProGuide: Command Search
- ProGuide: Keyboard shortcuts
Add-ins
- ProGuide: Installation and Upgrade
- ProGuide: Your first add-in
- ProGuide: ArcGIS AllSource Project Template
- ProConcepts: Localization
- ProGuide: Content and Image Resources
- ProGuide: Embedding Toolboxes
- ProGuide: Diagnosing ArcGIS Pro Add-ins
- ProGuide: Regression Testing
Configurations
Customization
- ProGuide: The Ribbon, Tabs and Groups
- ProGuide: Buttons
- ProGuide: Label Controls
- ProGuide: Checkboxes
- ProGuide: Edit Boxes
- ProGuide: Combo Boxes
- ProGuide: Context Menus
- ProGuide: Palettes and Split Buttons
- ProGuide: Galleries
- ProGuide: Dockpanes
- ProGuide: Code Your Own States and Conditions
Styling
- ProSnippets: Content
- ProSnippets: Browse Dialog Filters
- ProConcepts: Project Content and Items
- ProConcepts: Custom Items
- ProGuide: Custom Items
- ProGuide: Custom browse dialog filters
- ArcGIS Pro TypeID Reference
- ProSnippets: Editing
- ProConcepts: Editing
- ProConcepts: COGO
- ProConcepts: Annotation Editing
- ProConcepts: Dimension Editing
- ProGuide: Editing Tool
- ProGuide: Sketch Tool With Halo
- ProGuide: Construction Tools with Options
- ProGuide: Annotation Construction Tools
- ProGuide: Annotation Editing Tools
- ProGuide: Knowledge Graph Construction Tools
- ProGuide: Templates
3D Analyst Data
Plugin Datasources
Topology
Linear Referencing
Object Model Diagram
- ProSnippets: Geometry
- ProSnippets: Geometry Engine
- ProConcepts: Geometry
- ProConcepts: Multipatches
- ProGuide: Building Multipatches
Relational Operations
- ProSnippets: Knowledge Graph
- ProConcepts: Knowledge Graph
- ProGuide: Knowledge Graph Construction Tools
Reports
- ProSnippets: Map Authoring
- ProSnippets: Annotation
- ProSnippets: Charts
- ProSnippets: Labeling
- ProSnippets: Renderers
- ProSnippets: Symbology
- ProSnippets: Text Symbols
- ProConcepts: Map Authoring
- ProConcepts: Annotation
- ProConcepts: Dimensions
- ProGuide: Tray buttons
- ProGuide: Custom Dictionary Style
- ProGuide: Geocoding
3D Analyst
CIM
Graphics
Scene
Stream
Voxel
- ProSnippets: Map Exploration
- ProSnippets: Custom Pane with Contents
- ProConcepts: Map Exploration
- ProGuide: Map Pane Impersonation
- ProGuide: TableControl
Map Tools
- ProGuide: Feature Selection
- ProGuide: Identify
- ProGuide: MapView Interaction
- ProGuide: Embeddable Controls
- ProGuide: Custom Pop-ups
- ProGuide: Dynamic Pop-up Menu
Network Diagrams
- ArcGIS Pro API Reference Guide
- ArcGIS Pro SDK (pro.arcgis.com)
- arcgis-pro-sdk-community-samples
- ArcGISPro Registry Keys
- ArcGIS Pro DAML ID Reference
- ArcGIS Pro Icon Reference
- ArcGIS Pro TypeID Reference
- ProConcepts: Distributing Add-Ins Online
- ProConcepts: Migrating to ArcGIS Pro
- FAQ
- Archived ArcGIS Pro API Reference Guides
- Dev Summit Tech Sessions