SQL в ARCHICAD

SQL (Structured Query Language – структурированный язык запросов) является наиболее распространенным языком работы с базами данных. Он позволяет формулировать запросы к базе данных и получать структурированные результаты.

Так как проекты ARCHICAD, в целом, представляют собой базы данных конструктивных элементов (Стен, Перекрытий, Крыш, Оболочек, Объектов и т.д.), при помощи SQL можно получать данные об элементах, присутствующих в проекте. По умолчанию меню SQL отсутствует во всех Профилях Окружающей Среды. Для работы с SQL воспользуйтесь диалогом настройки Окружающей Среды, чтобы включить в структуру Меню следующие команды:

•Запрос SQL

•Показать Структуру Данных

Примечание: Чтобы найти эти команды, воспользуйтесь командой Параметры  > Окружающая Среда > Меню, активируйте вариант “Все команды по теме” и раскройте список Расчеты.

Активируйте команду Запрос, чтобы открыть Окно Запроса SQL, предназначенное для ввода SQL-команд создания ведомостей.

//helpcenter.graphisoft.ru/wp-content/uploads/ac21_calculation/calculation/SQLQueryWindow.png

SQL-команды могут относиться либо к выбранным элементам, либо ко всей базе данных Проекта ARCHICAD. Это означает, что использование SQL-команд не даст никакого результата в новом Проект, не содержащем ни одного элемента.

Введенные в окно Запроса SQL-команды обрабатываются в Механизмом SQL, формирующим XML-файл с результатами запроса, отображаемыми в браузере.

SQL-данные Проекта ARCHICAD отображаются в виде таблиц. Эти таблицы содержат информацию об элементах, параметрах и реквизитах Проекта. Например, таблица WALLS содержит все столбцы (параметры, значения, связанные со стенами), которые можно использовать для каждого элемента Стен.

//helpcenter.graphisoft.ru/wp-content/uploads/ac21_calculation/calculation/WALLSTable.png

При активации команды Показать Структуру Данных в окне браузера отображается файл XML, содержащий список всех Таблиц, которые могут использоваться в запросах SQL.

Команда SELECT является одной из наиболее часто используемых в Языке SQL. Она позволяет задать набор элементов, участвующих в запросе. Синтаксис этой команды представляет собой следующее выражение:

SELECT <parameters> FROM <table>

В поле <parameters> можно указать имена интересующих вас параметров таблицы. Применение символа * приводит к отображению всех параметров. Имена нескольких параметров, включаемых в запрос, следует разделять запятыми.

В поле <table> указывается имя таблицы, из которой требуется получить данные.

//helpcenter.graphisoft.ru/wp-content/uploads/ac21_calculation/calculation/SQLResult-1.png

На расположенной выше иллюстрации была использована команда SELECT * FROM WALLS, что привело в включению в отчет всех параметров таблицы WALLS . На следующей иллюстрации приведен пример включения в команду параметров Пользовательского ID, Длины, Высоты и Толщины, разделенных запятыми.

//helpcenter.graphisoft.ru/wp-content/uploads/ac21_calculation/calculation/SQLResult-2.png

Следующим модификатором SQL-команд является WHERE. Он позволяет ограничить количество элементов, включаемых в отчет. Например, запрос:

SELECT ID, LENGTH, HEIGHT, THICKNESS FROM WALLS WHERE HEIGHT=’2.700′

приводит к выводу значений перечисленных параметров только для Стен высотой 2.7 метра (числовые значения в командах GRAPHISOFT® всегда указываются в метрической системе).

//helpcenter.graphisoft.ru/wp-content/uploads/ac21_calculation/calculation/SQLResult-3.png

База данных ARCHICAD имеет некоторое отличие от обычных баз данных SQL. Оно заключается в том, что некоторые параметры некоторых таблиц сами являются таблицами. Например, столбец Parameters таблицы OBJECTS сам является таблицей. Ввод запроса:

SELECT USERID, LIBRARY_PART_NAME, PARAMETERS FROM OBJECTS WHERE LIBRARY_PART_NAME=’Стул 01′

приводит к получению следующего результата:

//helpcenter.graphisoft.ru/wp-content/uploads/ac21_calculation/calculation/SQLResult-4.png

Отчет содержит Пользовательский ID, Имя Библиотечного Элемента и Параметры объекта Стул 01.gsm. Как вы можете заметить, расширение имени файла библиотечного элемента в командах SQL не указывается. Столбец Параметры содержит таблицу ПАРАМЕТРЫ со своими собственными столбцами.

В языке SQL GRAPHISOFT имеется специальная команда для получения только такой внутренней таблицы. Она называется FLAT и ее синтаксис следующий:

FLAT(<table>, <parameter>) AS <name>

В полях <table> и <parameter> указывается имя таблицы и параметр, который следует вывести. Поле <name> определяет новое имя создаваемой таблицы, чтобы на нее можно было сослаться.

Ниже приводится пример вывода всех параметров объекта Стул 01.gsm. Здесь таблице PARAMETERS, вложенной в таблицу OBJECTS, присвоено имя XX. Обращение к таким вложенным параметрам осуществляется следующим образом: XX.PARAMETERS.<parameter>, где XX.PARAMETERS – таблица параметров объекта. Расположенная ниже иллюстрация демонстрирует результат выполнения такого запроса SQL:

//helpcenter.graphisoft.ru/wp-content/uploads/ac21_calculation/calculation/SQLResult-5.pngo

Давайте рассмотрим простой пример. С помощью одной из основных Схем Ведомостей Зон мы можем создать следующий список помещений жилого здания. Все зоны, расположенные на одном этаже, имеют одинаковый Пользовательский ID: ‘A1-03’.

//helpcenter.graphisoft.ru/wp-content/uploads/ac21_calculation/calculation/SimpleZoneList.png

Для получения того же результата с помощью SQL следует выполнить следующий запрос. Воспользовавшись модификатором WHERE, мы можем создать отчет только Зон, находящихся на этаже ‘A1-03’:

//helpcenter.graphisoft.ru/wp-content/uploads/ac21_calculation/calculation/SQLQueryWindow-2.png

Результат будет выглядеть следующим образом:

//helpcenter.graphisoft.ru/wp-content/uploads/ac21_calculation/calculation/SQLResult-6.png

Язык SQL имеет много других команд и возможностей. Подробную информацию об этом языке можно найти в Интернет. На начальном этапе знакомства с SQL можно использовать следующий сайт: http://www.sql.org/

Существует также документация по использованию SQL GRAPHISOFT. Она включена в документацию GRAPHISOFT ODBC (Open Database Connectivity), которая может быть загружена со страницы Документации Центра Разработчиков GRAPHISOFT по следующему адресу:  http://www.graphisoft.ru/support/developer/tools/.

На этой же странице можно загрузить драйвер ODBC. Он позволяет пользователям приложений, работающих с базами данных, подключаться к базам данных проектов ARCHICAD (файлы *.PLN) и извлекать из них данные. Для получения доступа к данным ресурсам, пожалуйста, воспользуйтесь разделом Загрузки Центра Разработчиков GRAPHISOFT  на сайте GRAPHISOFT.

Обсуждение закрыто.