Интерфейс bim

Версия 51.9 от Bimit Administrator на 10.02.2022, 15:08

Основной интерфейс для получения и работы с данными. В данном интерфейсе доступны следующие методы:

  • getProject - взятие проекта на котором выполняется плагин
  • getProfile - получение данных о пользователе по его идентификатору Uuid
  • getProjectModels - взятие всех активных моделей проекта на котором выполняется плагин
  • getModelRevisions - взятие всех ревизий модели
  • getProjectTasks - получение списка всех задач проекта
  • getTaskComments - получение списка всех комментариев у задачи по идентификатору задача
  • getTaskAttachments - получение списка всех вложений к задаче по идентификатору задача
  • getElements - функция получения списка элементов с полной информацией, на вход ей можно подать: условие поиска, сложное условие поиска
  • getElements - функция получения списка элементов с полной информацией
  • getElement - функция получения полной информации о элементе
  • getGeometryElement - функция получения полной информации о элементе и дополнительно параметры геометрии
  • getGeometryElements - функция получения списка элементов с полной информацией и дополнительно параметры геометрии, на вход ей можно подать: условие поиска, сложное условие поиска
  • getGeometryElements - функция получения списка элементов с полной информацией и дополнительно параметры геометрии
  • getGeometryProject
  • getGeometryModel
  • getGeometryElementA
  • getGeometryElementB
  • showElements
  • createGroupElements
  • showGroupElements
  • createCondition
  • getProjectCollisions
  • getModelCollisions

getProject - взятие проекта на котором выполняется плагин 

  • 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”

getProfile  - получение данных о пользователе по его идентификатору Uuid

  • 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”

getProjectModels - взятие всех активных моделей проекта на котором выполняется плагин)

  • bim.getProjectModels()

Пример использования:

def listModels = bim.getProjectModels()
for (Model model: listModels ) {
def modelUuid = model.getUuid()

// console.info(modelUuid .toString())  -> “INFO: 4e733308-7ddd-11ec-90d6-0242ac120003”
}

getModelRevisions - взятие всех ревизий модели

  • 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 - получение списка всех задач проекта
  • 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”
}

getTaskComments - получение списка всех комментариев у задачи по идентификатору задача

  • 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()

getTaskAttachments - получение списка всех вложений к задаче по идентификатору задача

  • 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”
}

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”
}

getElements - функция получения списка элементов с полной информацией

  • bim.getElements(Список идентификаторов элементов)

Пример использования:

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”
}

getElement - функция получения полной информации о элементе

  • bim.getElement(Идентификатор элемента)

Пример использования:

def element = bim.getElement(UUID.fromString(e5a114d0-7de1-11ec-90d6-0242ac120003)
def globalId = element.getGlobalId()

// console.info(globalId) -> “INFO: 0Dtdg2chjBhhgnQ7zCqZkk”

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”

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”
}

getGeometryElements - функция получения списка элементов с полной информацией и дополнительно параметры геометрии

  • bim.getGeometryElements(Список идентификаторов элементов)

Пример использования:

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”
}