Python Add-Ins for ArcGIS Pro

20925
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
DanielGreene

I sense that the organizations I work with are moving towards ArcGIS PRO.  It will be a shame if there is not a smooth transition for their applications if Python Add-Ins are not available.  I fail to understand why ESRI would not continue to support such a great and user friendly tool.  There may be another application path to take for the software migration other than python add-ons but I fear that it won't be pretty.  The lack of support for an Access DB will also be a problem since that is one way to communicate with other software.  I much prefer a file GDB but there are cases where an MDB is useful.  Some Oracle applications use MDBs as a repository for loading data.

I strongly feel that having Python ADD-IN capability will make ArcGIS PRO much more viable and greatly ease the transition for large organizations.  The ease and cost of transition for organizations dependent on ArcGIS will be a key decision point in making the move to PRO.

Today I have been testing a Visual Studio add-in created by another developer.  It was developed using ArcGIS 10.6.1.  However, the application has to run under ArcGIS 10.5.1.  I tested using 10.5.1 and it bombed ArcMap.  The only way I could get into ArcMap again was to manually delete the ADD-IN externally to ArcMap.  Now, for this developer to fix it I think it will require uninstalling 10.6.1, installing 10.5.1 and then also getting the 10.5.1 ArcMap external libraries needed for Visual Studio.  Whereas with python, my toolbox that the python scripts are in would likely be backwards compatible (no code changes for python) or I may have to use the existing ArcMap tool to make the toolbox compatible.  I'm guessing that the python Add-In that calls the tools in the toolbox would be just fine also.  If not, the redo would still be easier than with VS.  Yes, the python code will have to be cleaned up some when going to 3.x but as long as Desktop uses 2.x the code should be good.  It seems that with Visual Studio that the code needs to be changed with each new version of Visual Studio.  My reason for sharing this is simply to point out another reason why we need to be able to create python add-ins with ArcGIS PRO.

Dan

DylanHarwell

I would consider myself an intermediate Python programmer, and having just recently crossed over to the dark side of Visual Studio/.NET/C# and never having touched another programming language, the learning curve is pretty steep. I agree with others that adding Python addins to Pro opens the door to many more people to start customizing their GIS workflows/interfaces that are scared away by the .NET SDK.

TI
by

At all the organisations I've worked for where they use ArcGIS, they all use Python Add-Ins.  Only ONE of them uses VS/.NET add-ins, and they are transitioning away and replacing those add-ins with Python add-ins.  Why?  Because getting the VS/.NET add-ins maintained/updated requires hiring contractors, extensive periods of time for tiny changes, etc.  Python add-ins can be maintained by anybody with good knowledge of ArcGIS.

It baffles me that ESRI have to ask what functionality people would use Python Add-Ins for.  My answer would be the same functionality that people use VS/.NET add-ins for.  But just easier to build and maintain.

Yes, there are some things that can be done in .NET that cannot be done in Python (advanced GUI's in particular), but these limitations are simply a matter of where ESRI chooses to draw the line (although the GUI's issue is an architectural problem with how Python within ArcMap cannot run a separate GUI without high risk of crashing).

But since they asked, I will tick that box...

The Python Add-In here is for a toolbar that includes the following functionality (amongst others):

  • Select from a list of pre-defined and user-friendly-named query definitions which will then be applied to all layers currently in the map that include the field(s) used by that definition query AND applying that definition query to all such layers that get added to the map afterwards.
  • Adding predefined sets of layers to the map (basically just adding layer files, without the user having to trawl through the Catalog or Add Layers interfaces to find them) OR individual layers from within to sets without having to add the entire layer group first
  • Searching for layers that match a search string and adding them to the map
  • Running any of a set of common GP tools (the entire contents of a toolbox is automatically available in a combo-box menu).  Again, it avoids the need for the users to trawl through catalog or system tools.
  • Manage layout properties and elements.
  • Add company-standard fields to new feature classes.

I would like to switch our users to ArcGIS Pro some time.  But that's not going to happen without Python Add-Ins - at least not until something else forces our hand.  Our users are 100% reliant on the Python Add-In here.  Many of them use ArcGIS irregularly and are not expert users.  The Python Add-In consolidates and simplifies many of their day-to-day ArcMap tasks that would otherwise be much more difficult for them.

DanielGreene

"It baffles me that ESRI have to ask what functionality people would use Python Add-Ins for" - me too!

DanielGreene

Graphics:

Bighorn Sheep Python Add-In

HR = Home Range Analysis

FA = Foray Analysis

CA = Contact Analysis

R2Tools Python Add-In

SP - Create a database of selected polygons and points for historic CSE point data

QO - Query CSE Oracle database for historic tabular point data

HT - Calc tree cover percent for a polygon using historic CSE point data

NT - Calc tree cover percent for a polygon using new CSE linked point data

OG - Calc Oldgrowth Forest using CSE point data

WT - Calc Oldgrowth Forest from entered old growth survey walk-through data

VC - Copy Veg Cover Data (polygon attributes form) into the GDB loader format

CP - Copy Veg Cover data from a checkout or extract database into a GDB loader template or to Veg Cover files

RM - Run RMSTAND to generate reports based on a selection of polygons or points in a GeoDataBase

R2 - Run Calcs on the detailed vegetation by species data to populate the vegetation summary table in the GDB

RP - Generate a series of reports using an Oracle SDE database, or a checkout/extract to a File geodatabase

ES - Edit the plant species in the vegetation survey against the legal species list stored in an Oracle database

DarrylKlassen1

"It baffles me that ESRI have to ask what functionality people would use Python Add-Ins for" - me too!  I find this a bit condescending that ESRI would even ask us "why do we need it", as if we don't know our own workflows, since they are providing this ability already in ArcMap and the same ability in ArcGIS pro but with VS/.Net. 

ChrisSnyder

Conspiracy theory: ESRI is withholding Python AddIns in Pro to maximize Professional Services/Business Partner profits associated with the ArcGIS Desktop to ArcGIS Pro conver$ion.

Prove me wrong.  

DanielGreene

Hi Darryl,

I certainly did not mean to sound condescending by agreeing with the previous post and I have great respect for the ESRI staff and their abilities.  I just think that the Python Add-in capability is a great tool and corresponds to ESRI's choice of python as the language for most users.  It is good that the ADD-IN capability is still there in PRO with VS.NET but it seems silly for me to have to deal with Visual Studio only for the capability to generate an ADD-IN based on my python programs.  I guess I can do that if I have to.  I'm sure that ESRI has their reasons for not carrying the ADD-IN capability forward with PRO but at this point it baffles me.  Anyway, very sorry that you may have taken my comment as criticism of ESRI.  ESRI has made amazing progress since command line ArcInfo.  Python has filled the AML gap and beyond.  Python ADD-INs simply make it all better.

Dan

JohnMDye

I think he meant that Esri is being a bit condescending in their current stance of not offering Python Addins as a capability for Pro.

DarrylKlassen1

It is not a criticism of you, but of ESRI for even asking the question of "why we need it" in the first place.  The reason are obvious to me.  It is condescending of ESRI to ask the question, not of you to question them!  Sorry for the mis-understanding!  I have edited my comment to hopefully make this more clear!