Инструменты добавляются в файл .pyt в виде классов. Каждый класс инструмента должен включать, как минимум, методы __init__ и execute. Дополнительно вы можете использовать методы getParameterInfo, isLicensed, updateParameters и updateMessages, чтобы добавить контроль над поведением инструмента.
Методы, которые используются для определения класса работающего инструмента
| Метод инструмента | Обязательные или дополнительные | Описание | 
|---|---|---|
__init__  | Обязательный  | Инициализирует класс инструмента.  | 
Дополнительный  | Определяет параметры инструмента.  | |
Дополнительный  | Показывает, есть ли у инструмента лицензия на запуск.  | |
Дополнительный  | Вызывается при каждом изменении пользователем параметра в диалоговом окне инструмента. После возврата из updateParameters, геообработка вызовет программу внутренней проверки.  | |
Дополнительный  | Вызывается после возврата из стандартной внутренней проверки. Вы можете просмотреть сообщения, созданные внутренней проверкой, и при необходимости изменить их.  | |
Обязательный  | Исходный код инструмента.  | |
Дополнительный  | Вызывается по окончании метода execute, выходные данные обрабатываются и добавляются к изображению.  | 
Настройка метода класса __init__
Метод __init__ в классе инструмента - это стандартный метод инициализации класса Python. Для инструмента в наборе инструментов Python метод __init__ используется для настройки свойств инструмента, включая свойства label и description инструмента. Имя инструмента определяется, как имя класса (в примере ниже имя инструмента - CalculateSinuosity)
Метод __init__ определяет свойства инструмента, такие как надпись и описание. Ниже создается инструмент под названием CalculateSinuosity.
class CalculateSinuosity(object):
    def __init__(self):
        self.label = "Calculate Sinuosity"
        self.description = "Sinuosity measures the amount that a river meanders within its valley, " + \
                           "calculated by dividing total stream length by valley length."Примечание:
Правила синтаксиса Python будут следовать большинству конвенций при наименовании класса инструментов в наборе инструментов Python. Однако следует избегать нижний подчеркиваний в имени класса инструмента, поскольку они вызывают ошибки при запуске инструментов из ArcGIS Server.
В методе инструмента __init__ можно задать следующие свойства:
| Свойство | Описание | 
|---|---|
category  | Имя группы инструментов, в которой находится инструмент. Группа инструментов - это способ организации инструментов в наборе. Чтобы вложить наборы инструментов, разделите их имена последовательными обратными косыми чертами, например: self.category = "Toolset 1\\Toolset 2".  | 
description  | Описание для инструмента.  | 
label  | Надпись - это отображаемое имя инструмента, которое показывается на панели Геообработка.  |