Интерфейс bim
Основной интерфейс для получения и работы с данными. В данном интерфейсе доступны следующие методы:
- addAttribute - добавление атрибутов для списка элементов
- calculateDuty - получение номера дежурной группы
- createCondition - функция создания условия поиска элементов
- createCondition - функция создания условия поиска элементов по параметру поиска, оператору сравнения
- createGroupElements - создание (объединение) элементов в группы с указанием цвета в формате HEX
- deleteDutyShift - удаление назначенной группы к задаче, название которой содержит указанную строку
- deleteParam - удаление параметра задачи по параметру идентификатора
- deleteParams - удаление параметров
- editParam - редактирование параметра задачи по идентификатору параметра, имени параметра, параметру
- editTokenExpiredDate - позволяет изменить количество дней, через сколько токен для скачивания файлов станет недействительным
- getAllElementsByListUuidAndProjectUuid - взятие данных об элементах по их списку идентификаторов, в котором выполняется плагин
- getAmountDate - получение даты через указанное количество дней
- getAttachmentDrawing - получение байтового массива с чертежом вложенного к задаче по названию чертежа
- getAttachmentImage - получение изображения вложенного к задаче по названию изображения
- getAvatar - получение байтового массива аватара по его имени
- 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
- getHtmlAvatar - получение аватара преобразованного к виду htlm строки (кода) по имени аватара
- getHtmlDrawing - получение чертежа преобразованного к виду html строки (кода) по имени чертежа
- getHtmlImage - получение изображения преобразованную к виду html строки (кода) по имени изображения
- 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 - функция отображения/подсветки на экране ранее созданных групп элементов
Справочники
- bim.getProject() - метод представляет следующую структуру
Пример использования:
def editProjectDate = project.getEditDate()
console.info(editProjectDate.toString())
// -> “INFO: 2022-01-01 01:01:12.567 +0300”
- bim.getProfile(Идентификатор пользователя)
Пример использования:
def profileUuid= profile.getUuid()
// console.info(profileUuid.toString()) -> “INFO: ef952aa8-7ddc-11ec-90d6-0242ac120003”
- bim.getProjectModels()
Пример использования:
for (Model model: listModels ) {
def modelUuid = model.getUuid()
// console.info(modelUuid .toString()) -> “INFO: 4e733308-7ddd-11ec-90d6-0242ac120003”
}
- bim.getModelRevisions(Идентификатор модели)
Пример использования:
for (ModelRevision modelRevision: listModelRevisions ) {
def modelRevisionUuid= modelRevision.getUuid()
// console.info(modelRevisionUuid .toString()) -> “INFO: 697ba2b6-7ddd-11ec-90d6-0242ac120003”
}
- getProjectTasks() метод, который возвращает структуру списка задач, каждая задача представляет из себя следующую структуру:
Пример использования
for (Task task: listTasks ) {
def taskUuid= task.getUuid()
// console.info(taskUuid .toString()) -> “INFO: c73df7aa-7ddd-11ec-90d6-0242ac120003”
}
- bim.getTaskComments(UUID taskUuid)
Пример использования
for (Comment comment: listComments ) {
def authorUuid= comment.setAuthorUuid()
- bim.getTaskAttachments(UUID taskUuid)
Пример использования:
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(Список идентификаторов элементов)
Примеры использования:
def listWalls = bim.getElements (conditionWall )
for (Element element: listWalls ) {
def globalId = element.getGlobalId()
// console.info(globalId) -> “INFO: 0Dtdg2chjBhhgnQ7zCqZkk”
}
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 globalId = element.getGlobalId()
// console.info(globalId) -> “INFO: 0Dtdg2chjBhhgnQ7zCqZkk”
def globalId = element.getGlobalId()
// console.info(globalId) -> “INFO: 0Dtdg2chjBhhgnQ7zCqZkk”
- bim.getGeometryElement(Идентификатор элемента)
- bim.getGeometryElement(Идентификатор элемента как текст)
Структура границ Bounds:
Пример использования:
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 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”
}
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()
Структура границ Bounds:
Пример использования:
def bounds = geometryProject.getBounds()
- bim.getGeometryModel()
Структура границ Bounds:
Пример использования:
def bounds = geometryModel.getBounds()
- 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 globalId = geometryElement .getGlobalId()
// console.info(globalId) -> “INFO: 16BLvbdfv9tvbtZs9KMly$”
def volumeElement = geometryElement .getVolume()
// console.info(volumeElement.toString()) -> “INFO: 1.01”
- bim.getGeometryObject(Идентификатор элемента)
- bim.showElements(Условие поиска)
- bim.showElements(список глобальных идентификаторов элементов)
- bim.showElements(список идентификаторов элементов)
- bim.showElements(список элементов)
- bim.showElements(элемент1,элемент2,...)
- bim.showElement(элемент) - показ одного элемента
Примеры использования:
def conditionDoor = bim.createCondition("class", "eq", "IfcDoor")
bim.showElements(conditionWall | conditionDoor )
def elements = bim.getElements(elementCondition)
bim.showElements(elements)
- bim.createGroupElements (Цвет, Условие поиска)
- bim.createGroupElements (Цвет, список элементов)
- bim.createGroupElements (Цвет, список идентификаторов элементов)
Примеры использования:
bim.createGroupElements("#FF9933", conditionDoor )
def elements = bim.getElements(conditionDoor)
bim.createGroupElements("#FF9933", elements)
- bim.showGroupElements()
Пример использования:
- bim.createCondition(параметр поиска, операторы сравнения ,значение для поиска)
- bim.createCondition(параметр поиска по атрибуту, наименование атрибута, операторы сравнения,значение поиска атрибута)
- bim.createCondition(параметр поиска по атрибуту, наименование группы атрибутов,наименование атрибута, операторы сравнения,значение поиска атрибута)
Примеры использования:
def conditionDoor = bim.createCondition("class", "eq", "IfcDoor")
bim.showElements(conditionWall | conditionDoor )
bim.showElements(elementCondition)
bim.showElements(elementCondition)
- bim.getProjectCollisions()
- bim.getProjectCollisions(Статус коллизии)
Примеры использования:
for (def collsion: listCollisions ) {
def globalAId = collsion.getGlobalAId()
// console.info(globalAId) -> “INFO: 0Dtdg2chjBhhgnQ7zCqZkk”
def globalBId = collsion.getGlobalBId()
// console.info(globalBId) -> “INFO: js89njhsihd9ffsd3kmll9hln0”
}
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(Идентификатор модели, Статус коллизии) (см.Статусы коллизий)
Примеры использования:
for (def collsion: listCollisions ) {
def globalAId = collsion.getGlobalAId()
// console.info(globalAId) -> “INFO: 0Dtdg2chjBhhgnQ7zCqZkk”
def globalBId = collsion.getGlobalBId()
// console.info(globalBId) -> “INFO: js89njhsihd9ffsd3kmll9hln0”
}
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 param = [:]
param.add("pageSize", 3)
param.add("fontSize", 12)
file.collisionsToPdf(template, collisionList, param)
- bim.getFilesDownloadLinks() - Данный метод предназначен для получения списка ссылок на скачивания файлов из задач по проекту.
Ссылка действительна в течении одного дня. Изменить данное время можно командой editTokenExpiredDate (см. ниже). Данный метод рекомендуется использовать при формировании отчетов.
Пример использования:
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)
Пример использования:
bim.editTokenExpiredDate (uuid, 2)
- bim.getTaskForm(UUID taskUuid)
Пример использования:
- bim.getTaskWorkers(UUID taskUuid)
Пример использования:
- bim.getAttachmentImage(String imageName)
Пример использования:
- bim.getAttachmentDrawing(String drawingName)
Пример использования:
- bim.getAvatar(String avatarName)
Пример использования:
- bim.getHtmlAvatar(String avatarName)
Пример использования:
- bim.getHtmlImage(String imageName)
Пример использования:
- bim.getHtmlDrawing(String drawingName)
Пример использования:
- bim.getGeometryObjects(LogicGroup logicGroup) - функция получения списка координат элементов для формирования объемной модели или отрисовки на экране, на вход ей можно подать: условие поиска, сложное условие поиска
- bim.getGeometryObjects(Collection<Object> elements) - функция получения списка координат элементов для формирования объемной модели или отрисовки на экране
Пример использования:
- bim.createCondition(String axis, String operators))
Пример использования:
- bim.registerProcessStatuses(List<PluginTaskStatus> statusList)
Пример использования:
- bim.getProcessStatuses()
Пример использования:
- bim.saveParamsToTask(UUID taskUuid, Map<String, Object> params, boolean showInTask) - сохранение списка пользовательских параметров к задаче, на вход ей можно подать: идентификатор задачи, параметры, показ задачи
- bim.saveParamsToTask(UUID taskUuid, String name, Object value, boolean showInTask) - сохранение пользовательского параметра к задаче, на вход ей можно подать: идентификатор задачи, имя задачи, какое-то значение, показ задачи
Пример использования:
- bim.getParamsToTask(UUID taskUuid)
Пример использования:
- bim.getTaskParams()
Пример использования:
- bim.editParam(UUID paramUuid, String name, Object param)
Пример использования:
- bim.deleteParam(UUID paramUuid)
Пример использования:
- bim.deleteParams(UUID taskUuid) - удаление параметров у задачи по идентификатору задачи
- bim.deleteParams(List<PluginTaskParam> params) - удаление списка параметров
Пример использования:
- bim.setPluginStatusToTask(UUID taskUuid, String status)
Пример использования:
- bim.deleteDutyShift(Task task, String groupName)
Пример использования:
- bim.getOrgGroups() - получение списка групп организации
- bim.getOrgGroups(List<UUID> orgGroups) - получение списка групп организации по идентификаторам
Пример использования:
- bim.getOrgGroup(UUID orgGroup) - получение группы организации по её идентификатору
- bim.getOrgGroup(String groupName) - получение группы организации по её названию
Пример использования:
- bim.getOrCreateTaskFromMaintenance(UUID maintenanceTask)
Пример использования:
- bim.getMaintenanceTasks(List<UUID> taskUuids)
Пример использования:
- bim.setGroupWorkersToTask(UUID taskUuid, List<String> titles)
Пример использования:
- bim.setGroupResponderToTask(UUID taskUuid, String groupName)
Пример использования:
- bim.getFirstEscalationTasks()
Пример использования:
- bim.getSecondEscalationTasks()
Пример использования:
- bim.getStartDate()
Пример использования:
- bim.getEndDate()
Пример использования:
- bim.getAmountDate(int day)
Пример использования:
- bim.getDate(String dateStr) - получение даты из строки
- bim.getDate(String dateStr, String formatStr) - получение даты из строки по заданному формату
Пример использования:
- bim.getDateTime(String dateStr)
Пример использования:
- bim.saveTask(Task task)
Пример использования:
- bim.calculateDuty() - получение номера дежурной группы на следующий день
- bim.calculateDuty(String groupName) - получение номера дежурной группы на следующий день по имени группы
- bim.calculateDuty(MaintenanceTask mTask) - получение номера дежурной группы на дату проведени ТО по задаче обслуживания
- bim.calculateDuty(String groupName, MaintenanceTask mTask) - получение номера группы на дату проведени ТО по имени группы, задаче обслуживания
Пример использования:
- bim.initPluginTaskStatus()
Пример использования:
- bim.addAttribute(Collection<Object> elements, String groupName, String attributeName, Object value, String unit, String power)
Пример использования:
- bim.getUuidsElementsByProjectUuid()
Пример использования:
- bim.getAllElementsByListUuidAndProjectUuid(Collection<UUID> listUuidElements)
Пример использования:
- bim.getWorkSpacesCurrentProject()
Пример использования:
- bim.getTasksCurrentWorkSpace(UUID workSpaceUuid)
Пример использования:
- bim.getTasksTreeCurrentWorkSpace(UUID workSpaceUuid)
Пример использования:
- bim.getTasksTree()
Пример использования:
- bim.getProfiles(List<UUID> profilesUuid)
Пример использования:
- bim.getTask(UUID taskUuid)
Пример использования:
- bim.getTasks(List<UUID> taskUuids) - получение списка задач по их списку идентификаторов
- bim.getTasks(String startDate, String endDate) - получение списка всех задач на заданный период
Пример использования:
- bim.getLateTasks()
Пример использования:
- bim.getProjectMaintenanceTasks()
Пример использования:
- bim.getLinkToTask(UUID taskUuid)
Пример использования:
- bim.getCollisionInfo(UUID collisionUuid)
Пример использования:
- bim.getCommentFromTaskAttachment(String sourceData)
Пример использования:
СПРАВОЧНИКИ
Операторы сравнения
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 |