← К списку публикаций
Разработка ГГИС · 09.11.2026

Объектная модель Micromine Python API: устройство и основные компоненты

Разбираем объектную модель MMpy: основные классы, назначение объектов и принципы взаимодействия с Micromine из Python.

MicrominePythonMMpyAPIОбъектная модель

Объектная модель Micromine Python API: устройство и основные компоненты

Micromine предоставляет Python API (MMpy), позволяющий использовать возможности среды Micromine из Python-кода. С его помощью можно работать с проектами и файлами данных, обращаться к блочным моделям, запускать команды, создавать формы и выполнять другие операции.

Чтобы эффективно использовать API, недостаточно знать отдельные методы и примеры их вызова. Важно понимать, какие объекты предоставляет библиотека, за какие задачи они отвечают и как организовать взаимодействие между ними.

В этой статье рассмотрим структуру объектной модели Micromine Python API и основные группы объектов, на которых строится разработка пользовательских инструментов.

Материал основан на официальном справочнике Micromine Python API версии 22.0. Названия классов и методов приведены в соответствии с документацией.

1. Что представляет собой объектная модель MMpy

Объектная модель MMpy — это набор классов, через экземпляры которых Python-код взаимодействует с функциональностью Micromine.

Вместо того чтобы обращаться к приложению через набор несвязанных функций, разработчик создаёт объекты определённых типов и вызывает доступные для них методы.

Например, для работы с файлом данных используется объект MMpy.File:

import MMpy

file = MMpy.File()

Для работы с блочной моделью предназначен другой класс:

blockmodel = MMpy.BlockModel()

А для получения информации о текущем проекте используется MMpy.Project:

project = MMpy.Project()

Каждый из этих объектов представляет отдельную область функциональности API. У него есть собственный набор методов и свойств.

2. Основные группы объектов

Для понимания API удобно разделить его объекты по функциональному назначению.

2.1. Проект и контекст работы

MMpy.Project — объект для взаимодействия с проектом Micromine.

В документации представлены операции:

  • Project.open() — открытие проекта;
  • Project.close() — закрытие текущего проекта;
  • Project.path — получение пути к проекту;
  • Project.name — получение имени проекта;
  • Project.title — получение заголовка проекта.

Пример получения пути к проекту:

import MMpy

project = MMpy.Project()

project_path = project.path
print(project_path)

Объект проекта позволяет получать информацию о контексте, в котором выполняется пользовательский код.

2.2. Файлы и структуры данных

Для работы с файлами данных предназначен класс MMpy.File.

Он предоставляет методы для открытия и закрытия файлов, чтения и изменения значений полей, добавления и удаления записей.

Основные методы:

Метод Назначение
open() Открытие файла
close() Закрытие файла
records_count() Получение количества записей
get_field_id() Получение идентификатора поля
get_num_field_value() Чтение числового значения
get_str_field_value() Чтение строкового значения
set_field_value() Изменение значения поля
add_record() Добавление записи
delete_record() Удаление записи

Отдельно представлена структура файла — MMpy.FileStruct.

Она позволяет работать с описанием полей: получать их типы, ширину и точность, добавлять и удалять поля, изменять параметры существующих полей.

Таким образом, в API предусмотрено разделение между операциями над содержимым файла и операциями над его структурой.

2.3. Блочные модели

Для работы с блочными моделями используется класс MMpy.BlockModel.

Его интерфейс во многом напоминает интерфейс MMpy.File, однако ориентирован на специфические операции с блочными моделями.

Среди документированных методов:

  • open() и close() — открытие и закрытие модели;
  • records_count() — получение количества блоков;
  • get_block_coordinates() — получение координат блока;
  • get_num_block_value() — чтение числового значения;
  • get_str_block_value() — чтение строкового значения;
  • set_block_value() — изменение значения;
  • structure() — получение структуры модели.

Также предусмотрены операции создания модели из шаблона и копирования.

Наличие отдельного класса для блочных моделей позволяет использовать специализированный интерфейс, не смешивая его с общими операциями над файлами данных.

2.4. Команды Micromine

Класс MMpy.Command предназначен для создания объекта команды Micromine.

При создании объекта можно передать идентификатор или имя команды:

command = MMpy.Command(33526)

Для выполнения команды предусмотрен метод run():

command.run()

Этот механизм позволяет запускать функциональность приложения из Python-кода.

При этом объект команды следует рассматривать именно как интерфейс вызова команды Micromine, а не как универсальный механизм управления всеми внутренними объектами приложения.

2.5. Формы и пользовательский интерфейс

Для работы с наборами форм специализированных команд используется MMpy.FormSet.

Объект создаётся с указанием идентификатора или имени команды:

formset = MMpy.FormSet('DBFILTER', '20.0.0.0')

В документации также представлены методы:

  • get() и get_field() — получение данных формы;
  • set_field() — изменение значения поля;
  • load() и save() — загрузка и сохранение;
  • open() — открытие набора форм;
  • run() — выполнение набора форм.

Для построения наборов форм предусмотрен отдельный класс MMpy.FormSetBuilder.

Дополнительно API содержит класс MMpy.GUI, включающий методы для отображения диалоговых окон, например load_dialog(), save_dialog() и message_box().

Таким образом, MMpy предоставляет несколько уровней взаимодействия с пользовательским интерфейсом: от работы с формами специализированных команд до вызова стандартных диалоговых окон.

2.6. Геометрические и пространственные объекты

В API присутствуют классы, предназначенные для представления геометрических и пространственных характеристик.

Один из них — MMpy.Point3D.

Он представляет трёхмерную точку с координатами X, Y и Z:

point = MMpy.Point3D(
    x=100.0,
    y=50.0,
    z=50.0
)

Объект предоставляет доступ к координатам через свойства x, y и z.

В документации отдельно отмечено, что Point3D может использоваться не только для описания точки, но и для представления вектора или размера.

Другой пример — MMpy.OrientationAxes, предназначенный для работы с осями ориентации.

Среди его возможностей представлены операции применения геологических параметров ориентации, вращения и геостатистических настроек.

Эти объекты особенно интересны при разработке специализированных геологических и пространственных алгоритмов.

3. Дополнительные компоненты API

Помимо основных групп, справочник содержит ряд вспомогательных классов и перечислений.

Объект Назначение
MMpy.DataGrid Работа с табличными данными
MMpy.DataGridBuilder Построение таблиц
MMpy.Colour Представление цвета
MMpy.Font Параметры шрифта
MMpy.Hatch Параметры штриховки
MMpy.Symbol Параметры символов
MMpy.FieldType Типы полей
MMpy.StorageType Типы хранения
MMpy.LineType Типы линий
MMpy.BorderType Типы границ

Отдельно представлены MMpy.Macro для запуска макросов и MMpy.Micromine для получения информации о версии приложения и идентификаторе лицензии.

Эти компоненты дополняют основной интерфейс API и позволяют решать более специализированные задачи.

4. Как организовать работу с объектами

Рассмотренные классы можно объединить в несколько функциональных уровней:

  1. Контекст приложения — информация о проекте и версии Micromine.
  2. Доступ к данным — файлы, структуры файлов и блочные модели.
  3. Выполнение операций — команды и макросы.
  4. Пользовательский интерфейс — формы, таблицы и диалоговые окна.
  5. Инженерные вычисления — координаты, ориентация и вспомогательные геометрические объекты.

При разработке пользовательского инструмента обычно требуется сочетать несколько таких групп.

Например, условная последовательность работы может выглядеть следующим образом:

  1. Получить информацию о текущем проекте.
  2. Определить расположение необходимых файлов.
  3. Открыть исходные данные.
  4. Выполнить необходимые вычисления.
  5. Записать результаты.
  6. При необходимости запустить команду или показать пользователю форму.

В таком подходе Python-код выступает связующим звеном между объектами MMpy и реализуемой инженерной логикой.

Заключение

Micromine Python API предоставляет набор специализированных объектов, позволяющих взаимодействовать с проектами, файлами данных, блочными моделями, командами, формами и геометрическими сущностями.

Понимание объектной модели помогает перейти от отдельных примеров Python-кода к проектированию полноценных программных инструментов.

Вместо того чтобы рассматривать MMpy как набор функций для автоматизации отдельных операций, полезнее воспринимать его как интерфейс взаимодействия Python с определёнными подсистемами Micromine.


Официальная документация: Micromine Python API — версия 22.0

Обсудить задачу →