Python Add-Ins for ArcGIS Pro

21330
76
03-23-2015 02:06 PM
Status: Closed
Labels (1)
BryanChastain
New Contributor III

We're just now getting the full functionality of Python in ArcMap via Python Add-Ins, but now everything is moving to ArcGIS Pro and I noticed that there are not any plans to include Python Add-Ins for Pro as well. I do like the new mapping module for Pro, but please also give us the ability to create Add-Ins with Python as well.

 

76 Comments
KoryKramer

Hi John Dye‌.  Sorry for the frustration.  I'm looking into this with the corresponding development teams now so that we can provide an accurate response.  I hope to have an update soon for you.  Thank you.

MikeLachance1

An update on how we are using Python add-ins since I last posted: I have gotten much more proficient with Python and as a result have leveraged Python Add-ins even more. In addition to our Filter Tool (which allows a user to select from a list of attributes and then builds and applies a definition query to many data layers) we are now using Add-Ins to generate letters and forms with real data as well as streamline tools that require multiple geo-processing steps.

Our letter generation add-in uses a mail-merge module to populate letter templates with data when the user enters a unique ID. This has been saving us a ton of time and improves accuracy. Does it use GIS data layers? No, it takes the user input and queries a SQL database to get the information to populate the letter, but since we have ArcMap open all day anyways it's very convenient to be able to add a toolbar to our window that helps us do all our work in one place.

I recently began prototyping an add-in that allows a user to select a stream segment and then select, merge, and buffer all related stream segments into one polygon given a user supplied buffer amount. Yes, I could do this with model builder or a Python script, but the user interface is simpler and faster (don't even get me started on how this goes in Pro, the GP times in Pro are abyssal and haven't gotten better for us no matter what we do since all our data is on a network and not local).**

**I have tried using Tasks in Pro in order to replicate what I am doing with add-ins and the performance is always better in Desktop than Pro. I believe this is because Desktop seems to handle data layers being on a network better than Pro does. Also, I have found that quick and easy basic tasks like Data > Export Data in ArcMap have become cumbersome and clunky when they were converted to run as a geo-processing tool in Pro.

I like to work smarter and Add-Ins allow me to do that and flex some creative problem solving skills.

JohnMDye

While this is terrible to hear officially, it is not surprising to me. Thank you for the thorough response Kory Kramer‌. 

I can’t speak for the rest of the community but for me personally, it spells the end of my enamorment with ESRI. This was an important capability to me and many others and ESRI has made a choice not to support it. As a result, QGIS has been introduced to my desktop. With time and patience, I will wean myself off of ESRI. First myself, then my organization.

TI
by

I'm in a similar situation.  We have some current projects which are highly dependant on ArcMap and Python Add-Ins.  When they are completed (~3 years time?), I will consider whether we go to ArcGIS Pro without Python Add-Ins or whether we move to QGIS.  It's too difficult to make a decision right now, of course, and will require a thorough investigation of the pros and cons.  But right now, it looks like ESRI is heading in a different direction to our GIS.

MikeLachance1

Same here. We have been exploring QGIS for some of our users working remotely and found that the Python integration in QGIS  is 100% what we need. We were already able to write and setup our Python Add Ins to be QGIS Plug-Ins. With respect, it always feels like ESRI is telling you what you need to do with GIS instead of prioritizing what the users are asking for. This is just one more example. It took them 5 years (?!?) to say it's not a priority? Ouch.

KoryKramer
Status changed to: Closed

We appreciate the time that many of you have invested in explaining how you currently use Python add-ins in ArcMap, and why they are important to your organizations. Currently, there are no plans for Esri Development to work on Python add-ins for ArcGIS Pro. 

Python is the primary language used to build custom geoprocessing tools and scripts to perform and automate spatial analysis, data management, and extensive data processing workflows across the ArcGIS platform. This is a long-term vision for Python and ArcGIS going back more than a decade, which will continue going forward.  

The use of Python in ArcGIS has grown exponentially in recent years, through projects like the ArcGIS API for PythonArcGIS NotebooksConda environment management, and developments and enhancements for ArcPy such as the new ArcGIS Pro modules arcpy.mparcpy.metadata, and arcpy.nax 

The primary drive for Python in ArcGIS for the foreseeable future will be the following: 

  • Advancing spatial data science through new modules and data objects 
  • Bringing a powerful Python Notebook experience to the ArcGIS platform 
  • Enabling scientific, machine learning, deep learning, and other third-party library integrations 
  • Continuing to support and enhance the automation of GIS tasks through the comprehensive ArcPy library 

Python capabilities for application GUI customization, like ArcMap Python add-ins, have not been and will not be prioritized in the immediate future. The ArcGIS Pro add-in and SDK technology and developer story is considerably different than it was in ArcMap, redesigned for the new application built on new technology and paradigms. This means that developing Python add-ins for ArcGIS Pro would require a complete rewrite of the Python add-in framework Python’s use as an add-in language would be very challenging in an asynchronous and multi-threaded application like ArcGIS Pro due to the Python Global Interpreter Lock (GIL), which prevents multiple threads from executing Python code at once. 

On a related topic, custom ArcObjects and .NET-based geoprocessing tools (libraries with custom GPFunction and GPFunctionFactory) are not supported in ArcGIS Pro. Developers who previously wrote tools with ArcObjects have had to transition to Python, which has added a significant demand on providing more capabilities in ArcPy. The goal is for ArcPy to provide a complete API for data management and data processing. 

There are new capabilities you can take advantage of in the latest releases of ArcGIS Pro to accomplish several of the workflows you described as requiring or benefiting from Python add-ins, including:  

  • The arcpy.mp module provides access to the ArcGIS Pro CIM (Cartographic Information Model), giving you full control of the project, maps, and layers through Python code. This code can make changes to the current ArcGIS Pro project and active map, and can run through the Python window, a notebook within ArcGIS Pro, or as a geoprocessing script tool.  https://pro.arcgis.com/en/pro-app/arcpy/mapping/python-cim-access.htm 
  • You can deploy Python capabilities through geoprocessing toolboxes as a Python module, to make complex solutions easily accessible to your users, and allow these geoprocessing tools to be available by default from the Geoprocessing pane without needing to manually add them. This module can be distributed through a Conda channel so when the library is added to a system’s Python environment the tools will be available by default. https://pro.arcgis.com/en/pro-app/arcpy/geoprocessing_and_python/extending-geoprocessing-through-pyt... 
  • If novice or inexperienced users need to follow a directed series of steps to complete a task, ArcGIS Pro Tasks provides the ability to author steps through a wizard-like window to perform steps like selecting features, choosing options in a choicelist, running geoprocessing tools, and other easily configured actions and commands. https://pro.arcgis.com/en/pro-app/help/tasks/whatistask.htm 

We understand that this message may be disappointing or frustrating, but we heard you when you asked for clearer communication about this functionality’s future in ArcGIS Pro.  Though Python add-ins will not be coming to ArcGIS Pro, Esri continues to see Python as the language for data processing and spatial data science and analysis across the ArcGIS platform.  We hope that sharing these details about the Esri Python development team’s priorities and direction helps you plan your work and adjust as necessary.