Найти тему

Связь Revit c базой данных PostgreSQL и PowerBI

Оглавление

Хотите узнать, как визуализировать данные из Autodesk Revit, предварительно связав их с базой данных PostgreSQL, а затем визуализировать в программе Microsoft Power BI? Читайте — и всё узнаете.

Обложка
Обложка

1. Установка базы данных PostgreSQL

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

Выбираем дистрибутив для Windows x86-64 версии 15.1

Скачать пакеты PostgreSQL и установщик для Windows x86-64 версии 15.1
Скачать пакеты PostgreSQL и установщик для Windows x86-64 версии 15.1

Запускаем установщик и оставляем все по умолчанию, проверяем чтобы все компоненты были выбраны, особенно pgAdmin.

Немного слов о pgAdmin (узнать подробнее). Он представляет графический клиент для работы с сервером, и тем самым упрощает администрирование сервера. С его помощью можно в удобном виде создавать, удалять, редактировать базы данных и всячески управлять ими.

Возвращаемся к установки и придумываем пароль для суперпользователя "postgres" нашей базы данных, как правило используют "root", он нам потребуется для подключения к серверу. Порт оставляем "5432" по умолчанию.

1.1 Stack Builder и установка драйвера psqlODBC

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

В дальнейшем он нам понадобиться как раз для установки драйвера.

Завершение установки и запуск Stack Builder
Завершение установки и запуск Stack Builder

Затем появится приветственное окно, где необходимо выбрать из списка "PostgreSQL 15 on port 5432" и перейти к следующему этапу, в котором мы можем выбрать дополнительные приложения для установки. Нам понадобиться драйвер "psqlODBC (64 bit)" во вкладке "Database Drivers" для соединения Revit с базой данных PostgreSQL. В следующих окнах оставляем всё как есть и переходим к установки psqlODBC.

Тут всё тоже самое - нажимаем кнопку "Next", оставляем путь по умолчанию и запускаем установку.

1.2 Запуск pgAdmin и создание базы данных

Теперь зайдем в pgAdmin, который установили ранее и создадим тестовую базу данных для последующей передачи информации об элементах из Revit.

После запуска программы, вводим ранее придуманный пароль, напомню - это "root". Слева в окне "Browser" видим уже существующую базу данных postgres, которую и будем использовать для примера.

Ввод пароля после запуска pgAdmin
Ввод пароля после запуска pgAdmin

Развернем дерево с вкладками и провалимся до таблиц, куда в дальнейшем запишутся наши данные из Revit. Соответственно, таблицы пока что пустые.

Servers / PostgreSQL / Databases / postgres / Schemas / public / Tables (пока пустые)
Servers / PostgreSQL / Databases / postgres / Schemas / public / Tables (пока пустые)

Примечание: в этой статье не будет более детального разбора pgAdmin и базы данных PostgreSQL, а только конкретный пример. Но если эта тема интересна - пишите в комментариях.

2. Настройки связи с PostgreSQL из Revit

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

Стандартный проект Arch Link Model
Стандартный проект Arch Link Model

2.1 Настройка экспорта ODBC в базу данных

Приступим к настройке экспорта OBDC в Revit. Перейдем на вкладку "File" - "Export" - "ODBC Database".

ODBC Database export
ODBC Database export

В появившемся окне - "Выбор источника данных" переходим на вкладку "Источник данных компьютера" и нажимаем кнопку "Создать". Если появилось предупреждение нажимаем "ОК" и "Далее". Выбираем установленный драйвер "PostgreSQL ODBC Driver (ANSI)" и завершаем создание нового источника данных.

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

Соединение с сервером
Соединение с сервером
  1. Data Source - PostgreSQL 15
  2. Database - postgres
  3. Server - localhost
  4. User Name - postgres
  5. Port - 5432
  6. Password - root (ранее придуманный)

После нескольких нажатий "ОК" начнется экспорт в базу данных.

Нажимая "ОК" запуститься процесс экспорта данных
Нажимая "ОК" запуститься процесс экспорта данных

2.2 Экспорт и обзор записанных данных

Вернёмся в панель pgAdmin и убедимся, что вся информация по элементам модели передалась. Переходим в раздел "Tables" и видим 274 созданных таблицы. Они разбиты по категориям, экземплярам и типам, в которых содержаться параметры и значения элементов. Например, найдем таблицу "Walls" (данные экземпляров стен) нажмём ПКМ и выберем "View/Edit Data" / "All Rows", и увидим в ней такие параметры, как ID элемента, ID типа, площадь, объем и другие. Теперь когда мы что-то поменяем в Revit, например изменим данные или добавим новые параметры, то при следующем экспорте они перезапишутся в базе данных.

Примечание: а вот такая ошибка при экспорте происходит в русской версии Revit. Если вы знаете в чем может быть проблема - пишите в комментариях.

Ошибка экспорта данных в русской версии Revit
Ошибка экспорта данных в русской версии Revit

3. Установка Power BI и связь с базой данных PostgreSQL

В довершение всего, мы настроим связь Power BI с базой данных, чтобы визуально представить наши данные и в интерактивном режиме работать с ними.

3.1 Установка Power BI

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

3.2 Запуск Power BI и связь с базой данных

После установки и запуска программы, нам опять же необходимо связаться с нашей базой данных. Выбираем "Get data from another source" или по аналогии на русской версии.

Начальное окно
Начальное окно

В появившемся окне выбираем Database / PostgreSQL database

Database / PostgreSQL database
Database / PostgreSQL database

И следующим этапом, вводим значение сервера и имя базы данных:

  1. Server - localhost
  2. Database - postgres
  3. User name - postgres
  4. Password - root

Практически тоже самое, что мы вводили для связи с сервером в настройках экспорта Revit.

После чего, мы увидим окно с уже известными нам таблицами данных. Выбрав например таблицу "Walls" - правее, предварительно, отобразиться ее содержимое.

Выбираем нужные таблицы, к примеру "Walls", "WallTypes" и нажимаем загрузить.

Предварительный просмотр таблиц с данными
Предварительный просмотр таблиц с данными

3.3 Создание простых графиков и таблиц в Power BI

Как только мы загрузили таблицы "Walls" и "WallTypes", они отобразятся с правой стороны.

Таблицы Walls и WallTypes
Таблицы Walls и WallTypes

Выбираем в таблице "WallTypes" столбец "TypeName" со значениями имён типов стен. Добавим ещё значения с Площадью - "Area", Объёмом "Volume" и Длинной "Length".

Примечание: у типов стен "Exterior Curtain Wall", "Pavillion Curtain Wall" и "Storefront" нет значений Объема, так как это Витражи.

Теперь сделаем отдельно графики для разных величин. Так же выбираем "TypeName" - "Area", "TypeName" - "Length", "TypeName" - "Volume" и подбираем подходящее представление в виде диаграммы, таблицы и т.д.

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

Вариант финального результата
Вариант финального результата

4. Заключение

В статье показан довольно быстрый и простой пример связки Revit + PostgreSQL и Power BI, без углубления в детали, где каждый из этапов заслуживает отдельной, более подробной статьи. Соответственно, есть и другие вариации связи с базами данных, таких как MySQL, Microsoft Access и другие. Для более полноценной связки с БД может понадобиться плагин "Autodesk Revit DB Link", позволяющий вносить изменения в данные и их обратный импорт в проект Revit.

В завершение, для более наглядного понимания финального варианта выше, пример в формате .gif

Интерактивность
Интерактивность

Спасибо за внимание. Дальше — интереснее.

bimatter - with love for data.