bim
Основной интерфейс для получения и работы с данными. В данном интерфейсе доступны следующие методы:
- addAttribute - добавление атрибутов для списка элементов
- calculateDuty - получение номера дежурной группы
- createCondition - функция создания условия поиска элементов
- createCondition - функция создания условия поиска элементов по параметру поиска, оператору сравнения
- createGroupElements - создание (объединение) элементов в группы с указанием цвета в формате HEX
- deleteDutyShift - удаление назначенной группы к задаче, название которой содержит указанную строку
- deleteParam - удаление параметра задачи по параметру идентификатора
- deleteParams - удаление параметров
- editParam - редактирование параметра задачи по идентификатору параметра, имени параметра, параметру
- editTokenExpiredDate - позволяет изменить количество дней, через сколько токен для скачивания файлов станет недействительным
- getAllElementsByListUuidAndProjectUuid - взятие данных об элементах по их списку идентификаторов, в котором выполняется плагин
- getAmountDate - получение даты через указанное количество дней
- getCollisionInfo - получение объекта CollisionInfo для выделенной коллизии (коллизии, назначенной к задаче)
- getCollisionsForReport - функция получения списка коллизий для отчета
- getCommentFromTaskAttachment - получение текста комментария из sourceData
- getDate - получение даты из строки
- getDateTime - получение даты и времени из строки
- getElement - функция получения полной информации о элементе
- getElements - функция получения списка элементов с полной информацией
- getEndDate - получение даты на конец следующего дня
- getFilesDownloadLinks - получение списка ссылок на скачивание файлов, которые вложены в задачи проекта
- getFirstEscalationTasks - получение списка просроченных задач
- getGeometryElement - функция получения полной информации о элементе и дополнительно параметры геометрии
- getGeometryElementA - специфичная функция получения полной информации о элементе и дополнительно параметры геометрии для расчета коллизий (сторона А, если существует)
- getGeometryElementB - специфичная функция получения полной информации о элементе и дополнительно параметры геометрии для расчета коллизий (сторона B, если существует)
- getGeometryElements - функция получения списка элементов с полной информацией и дополнительно параметры геометрии, на вход ей можно подать: условие поиска, сложное условие поиска
- getGeometryModel - взятие данных о модели по ее идентификатору с добавленными данными по геометрии модели: границы и размеры границ по осям OX,OY,OZ
- getGeometryObject - функция получения координат элемента для формирования объемной модели или отрисовки на экране
- getGeometryObjects - функция получения списка координат элементов для формирования объемной модели или отрисовки на экране
- getGeometryProject - взятие данных о проекта с добавленными данными по геометрии модели: границы и размеры границ по осям OX,OY,OZ
- getLateTasks - получение списка всех просроченных задач, либо задач на эскалации
- getLinkToTask - получение ссылки на проект с параметрами для открытия конкретной задачи
- getMaintenanceTasks - получение списка задач ТО по списку идентификаторов
- getModelCollisions - функция получения списка коллизий модели
- getModelRevisions - взятие всех ревизий модели
- getOrCreateTaskFromMaintenance - создание или получение задачи на запланированное ТО по идентификатору задачи
- getOrgGroup - получение группы организации
- getOrgGroups - получение списка групп организации
- getParamsToTask - получение списка параметров для задачи по идентификатору задачи
- getProcessStatuses - получение списка пользовательских статусов для активного рабочего пространства
- getProfile - получение данных о пользователе по его идентификатору Uuid
- getProfiles - получение данных о пользователях по их идентификаторам UUID
- getProject - взятие проекта на котором выполняется плагин
- getProjectCollisions - функция получения списка коллизий проекта
- getProjectMaintenanceTasks - получение списка всех задач ТО на проект
- getProjectModels - взятие всех активных моделей проекта на котором выполняется плагин
- getProjectTasks - получение списка всех задач проекта
- getSecondEscalationTasks - получить список задач второй эскалации
- getStartDate - получение даты на начало следующего дня
- getTask - получение задачи по её идентификатору
- getTaskAttachments - получение списка всех вложений к задаче по идентификатору задач
- getTaskComments - получение списка всех комментариев у задачи по идентификатору задач
- getTaskForm - получение списка данных формы задачи по идентификатору задачи
- getTaskParams - получение списка параметров для всех задач рабочего пространства
- getTaskWorkers - получение списка профилей у задачи по её идентификатору
- getTasks - получение списка задач
- getTasksCurrentWorkSpace - получение гладкого списка всех задач указанного рабочего пространства (получение родителей и детей)
- getTasksTree - получение дерева задач проекта, в котором выполняется плагин (только родители)
- getTasksTreeCurrentWorkSpace - получение дерева задач указанного рабочего пространства (только родители)
- getUuidsElementsByProjectUuid - взятие всех идентификаторов элементов из проекта, в котором выполняется плагин
- getWorkSpacesCurrentProject - получение всех идентификаторов рабочих пространств проекта, в котором выполняется плагин
- initPluginTaskStatus - инициализация пользовательских статусов в проекте
- registerProcessStatuses - регистрация списка пользовательских статусов для задач по списку статусов задач плагина
- saveParamsToTask - сохранение списка пользовательских параметров к задаче, на вход ей можно подать: идентификатор задачи, параметры, показ задачи
- saveTask - создание и/или сохранение задачи
- setGroupResponderToTask - назначение группы организации как ответственного на задачу по идентификатору задачи, имени группы
- setGroupWorkersToTask - назначение группы организации как работника на задачу по идентификатору задачи, списку титулов
- setPluginStatusToTask - изменение пользовательского статуса задачи по идентификатору задачи, статусу
- showElements - функция отображения на экране списка элементов (выбор/подсветка на модели)
- showGroupElements - функция отображения/подсветки на экране ранее созданных групп элементов
- getFloor - возвращает этаж конкретного элемента
- getFloors - возвращает все этажи проекта
Справочники
- bim.getProject() - метод представляет следующую структуру
| Поле | Тип данных поля | Описание поля | Метод взятия данных поля |
|---|---|---|---|
| uuid | uuid | идентификатор проекта | getUuid() |
| alias | string | уникальное название английское | getAlias() |
| title | string | заголовок | getTitle() |
| description | string | описание | getDescription() |
| color | string | цвет метки проекта | getColor() |
| preview | string | ссылка на картинку превью проекта | getPreview() |
| createDate | date | дата создания | getCreateDate() |
| editDate | date | дата последнего редактирования | getEditDate() |
| profileUuid | uuid | идентификатор пользователя автора проекта | getProfileUuid() |
Пример использования:
def project = bim.getProject()
def editProjectDate = project.getEditDate()
console.info(editProjectDate.toString())
// -> “INFO: 2022-01-01 01:01:12.567 +0300”
- bim.getProfile(Идентификатор пользователя)
Пример использования:
def profile = bim.getProfile(UUID.fromString("ef952aa8-7ddc-11ec-90d6-0242ac120003")
def profileUuid= profile.getUuid()
// console.info(profileUuid.toString()) -> “INFO: ef952aa8-7ddc-11ec-90d6-0242ac120003”
- bim.getProjectModels()
Пример использования:
def listModels = bim.getProjectModels()
for (Model model: listModels ) {
def modelUuid = model.getUuid()
// console.info(modelUuid .toString()) -> “INFO: 4e733308-7ddd-11ec-90d6-0242ac120003”
}
- bim.getModelRevisions(Идентификатор модели)
Пример использования:
def listModelRevisions = bim.getModelRevisions(UUID.fromString("4e733308-7ddd-11ec-90d6-0242ac120003")
for (ModelRevision modelRevision: listModelRevisions ) {
def modelRevisionUuid= modelRevision.getUuid()
// console.info(modelRevisionUuid .toString()) -> “INFO: 697ba2b6-7ddd-11ec-90d6-0242ac120003”
}
- getProjectTasks() метод, который возвращает структуру списка задач, каждая задача представляет из себя следующую структуру:
Поле | Тип данных поля | Описание поля | Метод взятия данных поля |
uuid | uuid | идентификатор задачи | getUuid() |
title | string | заголовок задачи | getTitle() |
name | string | наименование задачи | getName() |
description | string | описание задачи | getDescription() |
responderUuid | uuid | идентификатор пользователя на которого назначена задача | getResponderUuid() |
creatorUuid | uuid | идентификатор пользователя создавшего задачу | getCreatorUuid() |
priority | Enum: LOW, NORMAL, HIGH | приоритет задачи | getPriority() |
taskType | Enum: TASK, BUG, IMPROVEMENT | тип задачи | getTaskType() |
createDate | date-time | дата создания задачи | getCreateDate() |
completeStatus | Enum: NEW, DISCUSS, PROGRESS, READY, CLOSED | статус задачи | getCompleteStatus() |
worldX | double | координаты метки привязанной к задаче | getWorldX() |
worldY | double | координаты метки привязанной к задаче | getWorldY() |
worldZ | double | координаты метки привязанной к задаче | getWorldZ() |
entityId | string | идентификатор элемента если есть | getEntityId() |
Пример использования
def listTasks = bim.getProjectTasks()
for (Task task: listTasks ) {
def taskUuid= task.getUuid()
// console.info(taskUuid .toString()) -> “INFO: c73df7aa-7ddd-11ec-90d6-0242ac120003”
}
- bim.getTaskComments(UUID taskUuid)
| Поле | Тип данных поля | Описание поля | Метод взятия данных поля |
|---|---|---|---|
| createDate | date-time | дата создания комментария | getCreateDate() |
| text | string | комментарий | getText() |
| authorUuid | uuid | автор комментария | getAuthorUuid() |
Пример использования
def listComments = bim.getTaskComments(c73df7aa-7ddd-11ec-90d6-0242ac120003)
for (Comment comment: listComments ) {
def authorUuid= comment.setAuthorUuid()
- bim.getTaskAttachments(UUID taskUuid)
| Поле | Тип данных поля | Описание поля | Метод взятия данных поля |
|---|---|---|---|
| uuid | uuid | идентификатор вложения | getUuid() |
| file | string | ссылка на файл вложения | getFile() |
| name | string | наименование вложения | getName() |
| camera | string | опции камеры вложения (например скриншота) | getCamera() |
| createDate | date-time | дата создания вложения | getCreateDate() |
| contentType | string | тип вложения | getContentType() |
| creatorUuid | uuid | идентификатор автора вложения | getCreatorUuid() |
Пример использования:
def listAttachments = bim.getTaskAttachments(c73df7aa-7ddd-11ec-90d6-0242ac120003)
for (Attachment attachment: listAttachments ) {
def createDate= attachment.setCreateDate()
// console.info(createDate.toString()) -> “INFO: 2022-01-21 10:01:12.567 +0300”
}
- bim.getElements(Условие поиска)
- bim.getElements(Список идентификаторов элементов)
| Поле | Тип данных поля | Описание поля | Метод взятия данных поля |
|---|---|---|---|
| uuid | string | идентификатор элемента | getUuid() |
| globalId | string | глобальный идентификатор элемента | getGlobalId() |
| name | string | наименование элемента | getName() |
| longName | string | полное наименование элемента | getLongName() |
| elementClass | string | идентификатор класса элемента | getElementClass() |
| stringValue | string | значение элемента для атрибутных элементов в строковом виде | getStringValue() |
| doubleValue | double | значение элемента для атрибутных элементов в численном виде, если преобразование возможно, иначе будет 0 | getDoubleValue() |
| project | string | идентификатор проекта | getProject() |
| children | массив | массив и элементов, дети, атрибуты, группы атрибутов | getChildren() |
| elementClassName | string | наименование класса элемента ifc | getElementClassName() |
| elementClassTitle | string | наименование класса элемента | getElementClassTitle() |
Примеры использования:
def conditionWall = bim.createCondition("class", "eq", "IfcWall")
def listWalls = bim.getElements (conditionWall )
for (Element element: listWalls ) {
def globalId = element.getGlobalId()
// console.info(globalId) -> “INFO: 0Dtdg2chjBhhgnQ7zCqZkk”
}
def elements = new HashSet<UUID>()
elements.add(UUID.randomUuid())
def listElements = bim.getElements(elements)
for (Element element: listElements ) {
def globalId = element.getGlobalId()
// console.info(globalId) -> “INFO: 0Dtdg2chjBhhgnQ7zCqZkk”
}
- bim.getElement(Идентификатор элемента)
- bim.getElement(Идентификатор элемента как текст)
Примеры использования:
def element = bim.getElement(UUID.fromString("e5a114d0-7de1-11ec-90d6-0242ac120003"))
def globalId = element.getGlobalId()
// console.info(globalId) -> “INFO: 0Dtdg2chjBhhgnQ7zCqZkk”
def element = bim.getElement("e5a114d0-7de1-11ec-90d6-0242ac120003")
def globalId = element.getGlobalId()
// console.info(globalId) -> “INFO: 0Dtdg2chjBhhgnQ7zCqZkk”
- bim.getGeometryElement(Идентификатор элемента)
- bim.getGeometryElement(Идентификатор элемента как текст)
| Поле | Тип данных поля | Описание поля | Метод взятия данных поля |
|---|---|---|---|
| uuid | uuid | идентификатор элемента | getUuid() |
| globalId | string | глобальный идентификатор элемента | getGlobalId() |
| name | string | наименование элемента | getName() |
| longName | string | полное наименование элемента | getLongName() |
| elementClass | uuid | идентификатор класса элемента | getElementClass() |
| stringValue | string | значение элемента для атрибутных элементов в строковом виде | getStringValue() |
| doubleValue | double | значение элемента для атрибутных элементов в численном виде, если преобразование возможно, иначе будет 0 | getDoubleValue() |
| project | uuid | идентификатор проекта | getProject() |
| children | массив | массив и элементов, дети, атрибуты, группы атрибутов | getChildren() |
| elementClassName | string | наименование класса элемента ifc | getElementClassName() |
| elementClassTitle | string | наименование класса элемента | getElementClassTitle() |
| area | double | площадь поверхности элемента | getArea() |
| volume | double | объем элемента | getVolume() |
| areaX | double | площадь элемента вдоль оси OX | getAreaX() |
| areaY | double | площадь элемента вдоль оси OY | getAreaY() |
| areaZ | double | площадь элемента вдоль оси OZ | getAreaZ() |
| largeArea | double | максимальная площадь элемента из осей | getLargeArea() |
| largeDirect | string | направление максимальной поверхности | getLargeDirect() |
| boundSizeX | double | расстояние границ вдоль оси OX | getBoundSizeX() |
| boundSizeY | double | расстояние границ вдоль оси OY | getBoundSizeY() |
| boundSizeZ | double | расстояние границ вдоль оси OZ | getBoundSizeZ() |
| bounds | Bounds | структура границ | getBounds() |
Структура границ Bounds:
| min | вектор координат x, y, z минимальной точки границы | ||
|---|---|---|---|
| max | вектор координат x, y, z максимальной точки границы |
Пример использования:
def geometryElement = bim.getGeometryElement(UUID.fromString("e5a114d0-7de1-11ec-90d6-0242ac120003")
def globalId = geometryElement .getGlobalId()
// console.info(globalId) -> “INFO: 0Dtdg2chjBhhgnQ7zCqZkk”
def volumeElement = geometryElement .getVolume()
// console.info(volumeElement.toString()) -> “INFO: 0.1”
- bim.getGeometryElements(Условие поиска)
- bim.getGeometryElements(Список идентификаторов элементов)
Примеры использования:
def conditionWall = bim.createCondition("class", "eq", "IfcWall")
def listWalls = bim.getGeometryElements (conditionWall )
for (Element geometryElement: listWalls ) {
def globalId = geometryElement.getGlobalId()
// console.info(globalId) -> “INFO: 0Dtdg2chjBhhgnQ7zCqZkk”
def volumeElement = geometryElement .getVolume()
// console.info(volumeElement.toString()) -> “INFO: 0.1”
}
def elements = new HashSet<UUID>()
elements.add(UUID.randomUuid())
def listElements = bim.getGeometryElements(elements)
for (Element geometryElement: listElements ) {
def globalId = geometryElement.getGlobalId()
// console.info(globalId) -> “INFO: 0Dtdg2chjBhhgnQ7zCqZkk”
def volumeElement = geometryElement .getVolume()
// console.info(volumeElement.toString()) -> “INFO: 0.1”
}
- bim.getGeometryProject()
| Поле | Тип данных поля | Описание поля | Метод взятия данных поля |
|---|---|---|---|
| uuid | uuid | идентификатор проекта | getUuid() |
| alias | string | уникальное название английское | getAlias() |
| title | string | заголовок | getTitle() |
| description | string | описание | getDescription() |
| color | string | цвет метки проекта | getColor() |
| preview | string | ссылка на картинку превью проекта | getPreview() |
| createDate | date | дата создания | getCreateDate() |
| editDate | date | дата последнего редактирования | getEditDate() |
| profileUuid | uuid | идентификатор пользователя автора проекта | getProfileUuid() |
| boundSizeX | double | длина проектной модели вдоль оси ОХ | getBoundSizeX() |
| boundSizeY | double | длина проектной модели вдоль оси ОY | getBoundSizeY() |
| boundSizeZ | double | длина проектной модели вдоль оси ОZ | getBoundSizeZ() |
| bounds | Bounds | структура границы проектной модели | getBounds() |
Структура границ Bounds:
| min | вектор координат x, y, z минимальной точки границы | ||
|---|---|---|---|
| max | вектор координат x, y, z максимальной точки границы |
Пример использования:
def geometryProject = bim.getGeometryProject()
def bounds = geometryProject.getBounds()
- bim.getGeometryModel()
| Поле | Тип данных поля | Описание поля | Метод взятия данных поля |
|---|---|---|---|
| uuid | uuid | идентификатор модели | getUuid() |
| name | string | наименование модели | getName() |
| title | string | заголовок модели | getTitle() |
| archived | boolean | флаг актиности модели | getArchived() |
| offsetX | double | смещение модели по оси X | getOffsetX() |
| offsetY | double | смещение модели по оси Y | getOffsetY() |
| offsetZ | double | смещение модели по оси Z | getOffsetZ() |
| eulerX | double | Эйлеровский поворот модели вокруг оси OX | getEulerX() |
| eulerY | double | Эйлеровский поворот модели вокруг оси OY | getEulerY() |
| eulerZ | double | Эйлеровский поворот модели вокруг оси OZ | getEulerZ() |
| sortOrder | int32 | порядок сортировки модели в своем уровне | getSortOrder() |
| realOffsetX | double | смещение модели по оси X с учетом родительского смещения | getRealOffsetX() |
| realOffsetY | double | смещение модели по оси Y с учетом родительского смещения | getRealOffsetY() |
| realOffsetZ | double | смещение модели по оси Z с учетом родительского смещения | getRealOffsetZ() |
| realEulerX | double | Эйлеровский поворот модели вокруг оси OX с учетом родительского поворота | getRealEulerX() |
| realEulerY | double | Эйлеровский поворот модели вокруг оси OY с учетом родительского поворота | getRealEulerY() |
| realEulerZ | double | Эйлеровский поворот модели вокруг оси OZ с учетом родительского поворота | getRealEulerZ() |
| model | массив Model | подмодели | getModel() |
| boundSizeX | double | длина проектной модели вдоль оси ОХ | getBoundSizeX() |
| boundSizeY | double | длина проектной модели вдоль оси ОY | getBoundSizeY() |
| boundSizeZ | double | длина проектной модели вдоль оси ОZ | getBoundSizeZ() |
| bounds | Bounds | структура границы проектной модели | getBounds() |
Структура границ Bounds:
| min | вектор координат x, y, z минимальной точки границы | ||
|---|---|---|---|
| max | вектор координат x, y, z максимальной точки границы |
Пример использования:
def geometryModel = bim.getGeometryModel(UUID.fromString("ac178efe-7e8d-11ec-90d6-0242ac120003")
def bounds = geometryModel.getBounds()
- bim.getGeometryElementA()
Пример использования:
def geometryElement = bim.getGeometryElementA()
def globalId = geometryElement .getGlobalId()
// console.info(globalId) -> “INFO: 16BLvbdfv9tvbtZs9KMly$”
def volumeElement = geometryElement .getVolume()
// console.info(volumeElement.toString()) -> “INFO: 1.34”
- bim.getGeometryElementB()
Пример использования:
def geometryElement = bim.getGeometryElementB()
def globalId = geometryElement .getGlobalId()
// console.info(globalId) -> “INFO: 16BLvbdfv9tvbtZs9KMly$”
def volumeElement = geometryElement .getVolume()
// console.info(volumeElement.toString()) -> “INFO: 1.01”
- bim.getGeometryObject(Идентификатор элемента)
| Поле | Тип данных поля | Описание поля | Метод взятия данных поля |
|---|---|---|---|
| uuid | uuid | идентификатор элемента | getUuid() |
| name | string | наименование элемента | getName() |
| indices | int[ ] | геометрические индексы, указывающие на позицию координат точки в массиве вершин (координаты вершин треугольника идут тройками: 1,2,3 вершина и т.д) | getIndices() |
| vertices | double[ ] | массив координат вершин (координаты идут тройками подряд X,Y,Z,X,Y,Z,...) | getVertices() |
| normals | float[ ] | массив нормалей вершин | getNormals() |
| colorsQuantized | int[ ] | индексы цветовой раскраски триангулированной геометрии | getColorsQuantized() |
| colors | float[ ] | массив цветов | getColors() |
| koeff | double | коэффициент трансформации координат (м в мм) | getKoeff() |
| метод получения длины массива индексов | getLength() | ||
| метод получения количества треугольников геометрии | getTrianglesCount() |
Пример использования:
def wallsAndRails = bim.getGeometryObjects(uuid)
- bim.showElements(Условие поиска)
- bim.showElements(список глобальных идентификаторов элементов)
- bim.showElements(список идентификаторов элементов)
- bim.showElements(список элементов)
- bim.showElements(элемент1,элемент2,...)
- bim.showElement(элемент) - показ одного элемента
Примеры использования:
def conditionWall = bim.createCondition("class", "eq", "IfcWall")
def conditionDoor = bim.createCondition("class", "eq", "IfcDoor")
bim.showElements(conditionWall | conditionDoor )
bim.showElements(["dhb487dbcsndb","salndhkjfnjkenkjsd","sdfsdfadsdfsad"])
bim.showElements([UUID.fromString("ac178efe-7e8d-11ec-90d6-0242ac120003",UUID.fromString("e5a114d0-7de1-11ec-90d6-0242ac120003"])
def elementCondition = bim.createCondition("attribute","width", "gt", "1000")
def elements = bim.getElements(elementCondition)
bim.showElements(elements)
- bim.createGroupElements (Цвет, Условие поиска)
- bim.createGroupElements (Цвет, список элементов)
- bim.createGroupElements (Цвет, список идентификаторов элементов)
Примеры использования:
def conditionDoor = bim.createCondition("class", "eq", "IfcDoor")
bim.createGroupElements("#FF9933", conditionDoor )
def conditionDoor = bim.createCondition("class", "eq", "IfcDoor")
def elements = bim.getElements(conditionDoor)
bim.createGroupElements("#FF9933", elements)
bim.createGroupElements("#FF9933", ["dhb487dbcsndb","salndhkjfnjkenkjsd","sdfsdfadsdfsad"] )
- bim.showGroupElements()
Пример использования:
bim.showGroupElements()
- bim.createCondition(параметр поиска, операторы сравнения ,значение для поиска)
- bim.createCondition(параметр поиска по атрибуту, наименование атрибута, операторы сравнения,значение поиска атрибута)
- bim.createCondition(параметр поиска по атрибуту, наименование группы атрибутов,наименование атрибута, операторы сравнения,значение поиска атрибута)
Примеры использования:
def conditionWall = bim.createCondition("class", "eq", "IfcWall")
def conditionDoor = bim.createCondition("class", "eq", "IfcDoor")
bim.showElements(conditionWall | conditionDoor )
def elementCondition = bim.createCondition("attribute","width", "gt", "1000")
bim.showElements(elementCondition)
def elementCondition = bim.createCondition("attribute","BaseQuantities","width", "gt", "1000")
bim.showElements(elementCondition)
- bim.getProjectCollisions()
- bim.getProjectCollisions(Статус коллизии)
Поле | Тип данных поля | Описание поля | Метод взятия данных поля |
uuid | uuid | идентификатор коллизии | getUuid() |
status | Enum: NEW, WORK, SOLVED, ALLOWED | статус коллизии | getStatus() |
elementBUuid | uuid | идентифкатор элемента сторона 2 если есть | getElementBUuid() |
elementAUuid | uuid | идентифкатор элемента сторона 1 если есть | getElementAUuid() |
modelAUuid | uuid | идентифкатор модели сторона 1 если есть | getModelAUuid() |
modelBUuid | uuid | идентифкатор модели сторона 2 если есть | getModelBUuid() |
globalIdA | string | глобальный идентификатор элемента сторона 1 если есть | getGlobalIdA() |
globalIdB | string | глобальный идентификатор элемента сторона 2 если есть | getGlobalIdB() |
createDate | date-time | дата формирование коллизии | getCreateDate() |
shortDescription | string | краткое описание коллизии | getShortDescription() |
description | string | описание коллизии | getDescription() |
finder | string | идентификатор расчетного механизма, по которому получена коллизия | getFinder() |
type | string | тип коллизии | getType() |
value | string | значение коллизии | getValue() |
note | string | заметка по коллизии | getNote() |
lastUpdateDate | date-time | дата последнего изменниея по коллизии | getLastUpdateDate() |
isAcceptable | boolean | флаг приемлемости коллизии | getIsAcceptable() |
Примеры использования:
def listCollisions = bim.getProjectCollisions()
for (def collsion: listCollisions ) {
def globalAId = collsion.getGlobalAId()
// console.info(globalAId) -> “INFO: 0Dtdg2chjBhhgnQ7zCqZkk”
def globalBId = collsion.getGlobalBId()
// console.info(globalBId) -> “INFO: js89njhsihd9ffsd3kmll9hln0”
}
def listCollisions = bim.getProjectCollisions("NEW")
for (def collsion: listCollisions ) {
def globalAId = collsion.getGlobalAId()
// console.info(globalAId) -> “INFO: 0Dtdg2chjBhhgnQ7zCqZkk”
def globalBId = collsion.getGlobalBId()
// console.info(globalBId) -> “INFO: js89njhsihd9ffsd3kmll9hln0”
}
- bim.getModelCollisions(Идентификатор модели)
- bim.getModelCollisions(Идентификатор модели, Статус коллизии) (см.Статусы коллизий)
Примеры использования:
def listCollisions = bim.getModelCollisions(UUID.fromString("ac178efe-7e8d-11ec-90d6-0242ac120003")
for (def collsion: listCollisions ) {
def globalAId = collsion.getGlobalAId()
// console.info(globalAId) -> “INFO: 0Dtdg2chjBhhgnQ7zCqZkk”
def globalBId = collsion.getGlobalBId()
// console.info(globalBId) -> “INFO: js89njhsihd9ffsd3kmll9hln0”
}
def listCollisions = bim.getModelCollisions(UUID.fromString("ac178efe-7e8d-11ec-90d6-0242ac120003", "NEW")
for (def collsion: listCollisions ) {
def globalAId = collsion.getGlobalAId()
// console.info(globalAId) -> “INFO: 0Dtdg2chjBhhgnQ7zCqZkk”
def globalBId = collsion.getGlobalBId()
// console.info(globalBId) -> “INFO: js89njhsihd9ffsd3kmll9hln0”
}
- bim.getCollisionsForReport()list - список коллизий. Обязательное поле. Получить данный лист необходимо
Пример использования:
def collisionList = bim.getCollisionsForReport()
def param = [:]
param.add("pageSize", 3)
param.add("fontSize", 12)
file.collisionsToPdf(template, collisionList, param)
- bim.getFilesDownloadLinks() - Данный метод предназначен для получения списка ссылок на скачивания файлов из задач по проекту. Ссылка действительна в течении одного дня. Изменить данное время можно командой editTokenExpiredDate (см. ниже). Данный метод рекомендуется использовать при формировании отчетов.
Пример использования:
def tasks = bim.getProjectTasks()
def taskAttachments = []
for(def task : tasks) {
taskAttachments.push(bim.getTaskAttachments(task.uuid))
}
def uuids = []
for (def attachments : taskAttachments) {
for (def attachment : attachments) {
if (attachment != null)
uuids.push(attachment.uuid)
}
}
def downloadLinks = bim.getFilesDownloadLinks(uuids)
console.info(downloadLinks) -> INFO [
6201ced9-b873-4a7d-8266-537f1566c543.docx,
687ac450-75e2-42f6-9fbe-7c608912c079.png
]
- bim.editTokenExpiredDate(UUID tokenUuid, int day)
Пример использования:
UUID uuid = UUID.fromString("94e8e236-510b-4325-8b3a-15e317924bb2")
bim.editTokenExpiredDate (uuid, 2)
- bim.getTaskForm(UUID taskUuid)
Пример использования:
def taskForm = bim.getTaskForm(UUID.fromString("94e8e236-510b-4325-8b3a-15e317924bb2"))
- bim.getTaskWorkers(UUID taskUuid)
Пример использования:
def taskWorkers = bim.getTaskWorkers(UUID.fromString("94e8e236-510b-4325-8b3a-15e317924bb2"))
- bim.getGeometryObjects(LogicGroup logicGroup) - функция получения списка координат элементов для формирования объемной модели или отрисовки на экране, на вход ей можно подать: условие поиска, сложное условие поиска
- bim.getGeometryObjects(Collection<Object> elements) - функция получения списка координат элементов для формирования объемной модели или отрисовки на экране
Пример использования:
def geometryObjects = bim.getGeometryObjects(logicGroup)
- bim.createCondition(String axis, String operators))
Пример использования:
def logicGroup = bim.createCondition(axis, operators)
- bim.registerProcessStatuses(List<PluginTaskStatus> statusList)
Пример использования:
bim.registerProcessStatuses(status)
- bim.getProcessStatuses()
Пример использования:
def listProcessStatuses = bim.getProcessStatuses()
- bim.saveParamsToTask(UUID taskUuid, Map<String, Object> params, boolean showInTask) - сохранение списка пользовательских параметров к задаче, на вход ей можно подать: идентификатор задачи, параметры, показ задачи
- bim.saveParamsToTask(UUID taskUuid, String name, Object value, boolean showInTask) - сохранение пользовательского параметра к задаче, на вход ей можно подать: идентификатор задачи, имя задачи, какое-то значение, показ задачи
Пример использования:
bim.saveParamsToTask(task.uuid, "isLate", true, true)
- bim.getParamsToTask(UUID taskUuid)
Пример использования:
def taskParams = bim.getParamsToTask(task.uuid)
- bim.getTaskParams()
Пример использования:
def taskParams = bim.getTaskParams()
- bim.editParam(UUID paramUuid, String name, Object param)
Пример использования:
bim.editParam(paramUuid, paramName, param)
- bim.deleteParam(UUID paramUuid)
Пример использования:
bim.deleteParam(paramUuid)
- bim.deleteParams(UUID taskUuid) - удаление параметров у задачи по идентификатору задачи
- bim.deleteParams(List<PluginTaskParam> params) - удаление списка параметров
Пример использования:
bim.deleteParams(taskUuid)
bim.deleteParams(params)
- bim.setPluginStatusToTask(UUID taskUuid, String status)
Пример использования:
bim.setPluginStatusToTask(taskUuid, status)
- bim.deleteDutyShift(Task task, String groupName)
Пример использования:
def task = bim.getTask(mainTask.taskUuid)
task = bim.deleteDutyShift(task, "Дежурная смена")
- bim.getOrgGroups() - получение списка групп организации
- bim.getOrgGroups(List<UUID> orgGroups) - получение списка групп организации по идентификаторам
Пример использования:
def groups = bim.getOrgGroups("Дежурная смена")
- bim.getOrgGroup(UUID orgGroup) - получение группы организации по её идентификатору
- bim.getOrgGroup(String groupName) - получение группы организации по её названию
Пример использования:
def headEngineer = bim.getOrgGroup("Главный инженер")
- bim.getOrCreateTaskFromMaintenance(UUID maintenanceTask)
Пример использования:
def task = bim.getOrCreateTaskFromMaintenance(maintenanceTask)
- bim.getMaintenanceTasks(List<UUID> taskUuids)
Пример использования:
def taskList = bim.getMaintenanceTasks(taskUuids)
- bim.setGroupWorkersToTask(UUID taskUuid, List<String> titles)
Пример использования:
bim.setGroupWorkersToTask(taskUuid, titles)
- bim.setGroupResponderToTask(UUID taskUuid, String groupName)
Пример использования:
bim.setGroupResponderToTask(taskUuid, groupName)
- bim.getFirstEscalationTasks()
Пример использования:
def firstEscalationTasks = bim.getFirstEscalationTasks()
- bim.getSecondEscalationTasks()
Пример использования:
def secondEscalationTasks = bim.getSecondEscalationTasks()
- bim.getStartDate()
Пример использования:
task.startDate = bim.getStartDate()
- bim.getEndDate()
Пример использования:
task.stopDate = bim.getEndDate()
- bim.getAmountDate(int day)
Пример использования:
task.escalationDate = bim.getAmountDate(2)
- bim.getDate(String dateStr) - получение даты из строки
- bim.getDate(String dateStr, String formatStr) - получение даты из строки по заданному формату
Пример использования:
def date = bim.getDateTime(dateStr)
- bim.getDateTime(String dateStr)
Пример использования:
def date = bim.getDateTime(dateStr)
//"dd.MM.yyyy HH:mm"
- bim.saveTask(Task task)
Пример использования:
bim.saveTask(task)
- bim.calculateDuty() - получение номера дежурной группы на следующий день
- bim.calculateDuty(String groupName) - получение номера дежурной группы на следующий день по имени группы
- bim.calculateDuty(MaintenanceTask mTask) - получение номера дежурной группы на дату проведени ТО по задаче обслуживания
- bim.calculateDuty(String groupName, MaintenanceTask mTask) - получение номера группы на дату проведени ТО по имени группы, задаче обслуживания
Пример использования:
def numberGroup = bim.calculateDuty("Дежурная смена", mTask)
- bim.initPluginTaskStatus()
Пример использования:
bim.initPluginTaskStatus()
- bim.addAttribute(Collection<Object> elements, String groupName, String attributeName, Object value, String unit, String power)
Пример использования:
bim.addAttribute(elements, groupName, attributeName, value, unit, power)
- bim.getUuidsElementsByProjectUuid()
Пример использования:
def elemUuidsByProj = bim.getUuidsElementsByProjectUuid()
- bim.getAllElementsByListUuidAndProjectUuid(Collection<UUID> listUuidElements)
Пример использования:
def elements = bim.getAllElementsByListUuidAndProjectUuid(listUuidElements)
- bim.getWorkSpacesCurrentProject()
Пример использования:
def uuidWorkSpace = bim.getWorkSpacesCurrentProject()
- bim.getTasksCurrentWorkSpace(UUID workSpaceUuid)
Пример использования:
def currWorkSpace = bim.getTasksCurrentWorkSpace(workSpaceUuid)
- bim.getTasksTreeCurrentWorkSpace(UUID workSpaceUuid)
Пример использования:
def currentTasksTree = bim.getTasksTreeCurrentWorkSpace(workSpaceUuid)
- bim.getTasksTree()
Пример использования:
def tasksTree = bim.getTasksTree()
- bim.getProfiles(List<UUID> profilesUuid)
Пример использования:
def listProfilesData = bim.getProfiles(profilesUuid)
- bim.getTask(UUID taskUuid)
Пример использования:
def task = bim.getTask(mainTask.taskUuid)
- bim.getTasks(List<UUID> taskUuids) - получение списка задач по их списку идентификаторов
- bim.getTasks(String startDate, String endDate) - получение списка всех задач на заданный период
Пример использования:
def tasks = bim.getTasks(taskUuidsList)
def tasks = bim.getTasks(startDate, endDate)
- bim.getLateTasks()
Пример использования:
def taskList = bim.getLateTasks()
- bim.getProjectMaintenanceTasks()
Пример использования:
def mTasks = bim.getProjectMaintenanceTasks()
- bim.getLinkToTask(UUID taskUuid)
Пример использования:
def url = bim.getLinkToTask(task.uuid)
- bim.getCollisionInfo(UUID collisionUuid)
Пример использования:
def collisionInfo = bim.getCollisionInfo(attachment.collision.getUuid)
- bim.getCommentFromTaskAttachment(String sourceData)
Пример использования:
info = bim.getCommentFromTaskAttachment(attachment.sourceData)
- bim.getFloor(UUID element) - возвращает этаж конкретного элемента по UUID элемента
- bim.getFloor(Element element) - возвращает этаж конкретного элемента по самому элементу
| Поле | Тип данных поля | Описание поля | Метод взятия данных поля |
|---|---|---|---|
| name | srting | имя | getName() |
| elevation | double | высота | getElevation() |
| abselevation | double | абсолютная высота | getAbsElevation() |
Пример использования:
def conditionModel = bim.createCondition("model", "eq", "АР")
def elements = bim.getGeometryElements(conditionModel)
for (def element: elements){
def floor = bim.getFloor(element)
double offset = floor.getElevation() + 18.5
}
- bim.getFloors() - возвращает все этажи проекта
Пример использования:
def floors = bim.getFloors()
for (def floor : floors ){
console.info(floor.getName())
console.info(floor.getElevation())
console.info(floor.getAbsElevation())
}
СПРАВОЧНИКИ
Операторы сравнения
| eq | Равно |
|---|---|
| noteq | Не равно |
| cont | Содержит |
| notcont | Не содержит |
| gt | Больше |
| gteq | Больше или равно |
| lt | Меньше |
| lteq | Меньше или равно |
| ex | Имеет значение ex |
| notex | Не имеет значение notex |
Параметры поиска
| model | поиск по названию модели в структуре проекта |
|---|---|
| floor | поиск по названию этажа |
| class | поиск по названию ifc класса (ifc тип) |
| zone | поиск по названию зоны, объединяющей элементы |
| layer | поиск по названию слоя объединяющего элементы |
| attribute | поиск по значению атрибута |
| geometry | параметры поиска по значению рассчитанной геометрии, на текущий момент доступно только площадь(ключ атрибута =”area”) и объем(ключ атрибута =”volume”) |
Статусы коллизий
| NEW | запрос коллизий в статусе новые |
|---|---|
| WORK | коллизии в работе |
| SOLVED | решенные коллизии |
| ALLOWED | допустимые коллизии |
PowerType
| EXA | 1.0e18d |
|---|---|
| PETA | 1.0e15d |
| TERA | 1.0e12d |
| GIGA | 1.0e9d |
| MEGA | 1.0e6d |
| KILO | 1.0e3d |
| HECTO | 1.0e2d |
| DECA | 1.0e1d |
| DECI | 1.0e-1d |
| CENTI | 1.0e-2d |
| MILLI | 1.0e-3d |
| MICRO | 1.0e-6d |
| NANO | 1.0e-9d |
| PICO | 1.0e-12d |
| FEMTO | 1.0e-15d |
| ATTO | 1.0e-18d |
UnitType
| ABSORBEDDOSEUNIT | gray |
|---|---|
| AMOUNTOFSUBSTANCEUNIT | mole |
| AREAUNIT | square_metre |
| DOSEEQUIVALENTUNIT | sievert |
| ELECTRICCAPACITANCEUNIT | farad |
| ELECTRICCHARGEUNIT | coulomb |
| ELECTRICCONDUCTANCEUNIT | siemens |
| ELECTRICCURRENTUNIT | ampere |
| ELECTRICVOLTAGEUNIT | ohm |
| ELECTRICVOLTAGEUNIT | volt |
| ENERGYUNIT | joule |
| FORCEUNIT | newton |
| FREQUENCYUNIT | hertz |
| ILLUMINANCEUNIT | lux |
| INDUCTANCEUNIT | henry |
| LENGTHUNIT | metre |
| LUMINOUSFLUXUNIT | lumen |
| LUMINOUSINTENSITYUNIT | candela |
| MAGNETICFLUXDENSITYUNIT | tesla |
| MAGNETICFLUXUNIT | weber |
| MASSUNIT | gram |
| PLANEANGLEUNIT | radian |
| POWERUNIT | watt |
| PRESSUREUNIT | pascal |
| RADIOACTIVITYUNIT | becquerel |
| SOLIDANGLEUNIT | steradian |
| THERMODYNAMICTEMPERATUREUNIT | degree_celsius |
| THERMODYNAMICTEMPERATUREUNIT | kelvin |
| TIMEUNIT | second |
| VOLUMEUNIT | cubic_metre |
| USERDEFINED | userdefined |
| LINKUNIT | link |

