BIMIT
Разработка плагинов

template

Интерфейс заполнения шаблона отчёта. К плагину в интерфейсе привязывается текстовый шаблон (HTML с директивами Apache Velocity: $project.title, #foreach($w in $walls) ... #end, #if(...)), плагин передаёт в него данные. Доступен в плагинах типов «Отчеты» и «Бизнес процессы».

  • add - добавление значения в шаблон
add - добавление значения в шаблон
  • template.add(String objectMarker, Object obj) - добавляет в шаблон значение obj под именем objectMarker; в шаблоне оно доступно как $objectMarker. Повторный вызов с тем же именем заменяет значение

Готовый текст шаблона с подставленными данными возвращает template.processText() → String. Если к плагину не привязан шаблон, вызов завершится ошибкой «Template not found!».

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

def project = bim.getProject()
def walls = bim.getGeometryElements(bim.createCondition("class", "eq", "IfcWall"))
template.add("project", project)
template.add("walls", walls.collect { [name: it.name, volume: calc.trunc(it.volume, 2)] })
String html = template.processText()

Отчёт PDF по коллизиям с шаблоном - file.collisionsToPdf (сам создаёт файл, file.create перед ним не вызывается):

def start() {
    template.add("project", bim.getProject())
    file.collisionsToPdf(template, bim.getCollisionsForReport(), [pageSize: "3", fontSize: "10"])
}
Метод file.templateToPdf устарел (deprecated) - в новых плагинах его не используйте.
Copyright © 2026