I am using ArcGIS Pro v2.9 and XTools Pro v22. I can successfully access XTools when scripting by making calls such as

arcpy.xtagp.PolygonsToPolylinesTool(infeats, outfeats)

xtagp is the alias for the XTools Pro.pyt toolbox. However, I need to use the XTools Center Lines tool. This tool and others are available via the GUI ribbon, yet they are not visible within the XTools toolbox when expanded in ArcCatalog. I have also opened the toolbox code in my IDE, and I find the following:

imported_tools = []
if clr_is_imported and python_validated:
        from Tools.FeaturesToPointsTool import *
        from Tools.ConvexHullTool import ConvexHullTool
        from Tools.SplitPolylinesTool import SplitPolylinesTool
        from Tools.SplitPolygonsTool import SplitPolygonsTool
        from Tools.DivideOverlappingPolygonsTool import DivideOverlappingPolygonsTool
        from Tools.PolygonsToPolylinesTool import PolygonsToPolylinesTool
        from Tools.ConcaveHullTool import ConcaveHullTool
        from Tools.ExportToFileTool import ExportToFileTool
        from Tools.PolygonsFromPointsTool import PolygonsFromPointsTool
        from Tools.PolylinesFromPointsTool import PolylinesFromPointsTool
        from Tools.ExportToExcelTool import ExportToExcelTool
        from Tools.PolylinesToPolygonsTool import PolylinesToPolygonsTool
        from Tools.IdentityTool import IdentityTool
        from Tools.EraseFeaturesTool import EraseFeaturesTool
        from Tools.UpdatePolygonFeaturesTool import UpdatePolygonFeaturesTool
        from Tools.AttractFeaturesTool import AttractFeaturesTool
        from Tools.ExportToExcelMultipleTool import ExportToExcelMultipleTool
        from Tools.ExportToKmlTool import ExportToKmlTool
        from Tools.ImportFromKmlTool import ImportFromKmlTool
        from Tools.CalculateGeometryTool import CalculateGeometryTool
        from Tools.AddXYZTool import AddXYZTool

imported_tools = [FeaturesToPointsTool, FeaturesToPoints_EqPointsNumberTool, 
                  FeaturesToPoints_EqPointsIntervalTool, ConvexHullTool,
                  SplitPolylinesTool, SplitPolygonsTool, DivideOverlappingPolygonsTool, 
                  PolygonsToPolylinesTool, ConcaveHullTool,ExportToFileTool, 
                  PolylinesFromPointsTool, PolygonsFromPointsTool, 
                  ExportToExcelTool, PolylinesToPolygonsTool,
                  IdentityTool, EraseFeaturesTool, UpdatePolygonFeaturesTool, 
                  AttractFeaturesTool, ExportToExcelMultipleTool,ExportToKmlTool, 
                  ImportFromKmlTool, CalculateGeometryTool, AddXYZTool]

Just above this code several .dlls are loaded. I am not a developer, but I glean from this perhaps that from the full suite of tools which are compiled in the .dll, only a handful are loaded into the toolbox, and it is from the toolbox that I have access to these when scripting. So am I just SOL as far as accessing the Center Line tool which is not being pre-loaded for me, though clearly it is loaded for use in XTools, since I can use it from the GUI ribbon? Also, I tried editing the list of tools above by intelligently guessing at the CenterLineTool name, but I work in a large institution and do not have permissions to edit these resources installed deep in the Program Files directory on the C:

1 Answer 1


It's not hidden. It's just not available as a Geoprocessing tool. Not all tools and features are.

If you look at the the left nav menu of the help doc you'll see a Tools and features section that lists tools available from the ribbon and a Geoprocessing tools section that lists tools that you can use from the Toolbox.

  • What is the distinction between a 'Tool' and a 'Geoprocessing Tool?' It's all geoprocessing. What an odd distinction, if the former is accessible through a GUI ribbon, and the latter through a callable API. It's all code functions, so why not just make them all transparent? Very disappointing, but I just had XTools confirm this through their support channels.
    – lumbrjak
    Feb 9 at 17:48
  • XTools may have what's known as technical debt.
    – user2856
    Feb 9 at 23:59
  • "It's all code functions" - yes and no. Different coding is needed to develop a tool for the ribbon vs the GP framework to handle different input and output methods. It might be difficult or time consuming to modify their existing code developed for the ribbon UI to work with GP framework so XTools may be only slowly making existing functionality available as GP tools (I don't use XTools so don't know for sure). That said, functionality in a well designed piece of software should self contained enough that you can switch out the input/output as the core analysis shouldn't change.
    – user2856
    Feb 10 at 1:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.