Извлечение атрибутов блоков в текстовый файл

Команда ExtractBlockAttribute позволяет извлечь значения атрибутов блоков в текстовые файлы различных форматов.

Извлекаемые данные определяются файлами шаблонов.

Можно проверить извлеченные данные при помощи программного обеспечения для работы с таблицами или других приложений.

Для извлечения атрибутов блоков в текстовый файл:

  1. В командной строке введите команду ExtractBlockAttribute.
  2. В диалоговом окне в поле Шаблон введите имя шаблона, который будет определять извлекаемые данные. Для поиска файла нажмите.

    См. информацию о синтаксисе этого файла в разделе Создание файлов шаблонов для извлечения атрибутов блоков.

  3. Нажмите Выбрать объекты для выбора объектов для извлечения атрибутов блока.

    Диалоговое окно временно закроется.

  4. В графической области выберите блоки с атрибутами и нажмите Ввод.
  5. В диалоговом окне в поле Вывод введите местоположение и имя файла вывода. Для выбора имени файла нажмите.
  6. В поле Формат выберите формат файла, который будет использоваться при записи атрибутов блоков:
    • Файл с разделителем-запятой (CDF). поля записи каждого атрибута блока отделяются запятой. Строки заключаются в одинарные кавычки.
    • Файл с разделителями-пробелами (SDF). поля записи каждого атрибута блока отделяются пробелом. Строки заключаются в одинарные кавычки.
  7. Нажмите OK.

Создание файлов шаблонов для извлечения атрибутов блоков

Файлы шаблонов для извлечения атрибутов блоков определяют поля данных, которые будут извлекаться и управляют их форматом.

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

Каждая строка файла шаблона:

  • указывает атрибуты и свойства блока, которые будут извлекаться;
  • должна использовать определенный синтаксис, описанный ниже;
  • становится столбцом в результирующем выходном файле (см. пример).

Файл шаблона должен содержать как минимум одно имя атрибута блока.

Синтаксис файла

Каждая строка в файле шаблона должна иметь следующий синтаксис:

имя_поля [пробел(ы)] выходной_формат

Допустимые имена полей приведены далее в таблице Имена извлекаемых полей.

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

Выходной формат должен задаваться в следующем виде:

Twwwppp

В качестве типа данных (T) можно указать:

С — означает строку символов.
Н — числовое поле.

Далее в выходном формате следуют три цифры:

www Ширина — ширина поля, заданная числом символов.
ppp Точность Задает количество позиций после десятичной запятой для числовых полей.
Для целых чисел нужно задать значение 000.

Например:

  • Формат N006002 соответствует числовым значениям, не превышающим 999,99. N означает, что данные числовые, 006 означает, что предусмотрено место для шести цифр, включая десятичную запятую, а 002 задает точность в два десятичных разряда.
  • Формат C025000 соответствует текстовой строке длиной 25 символов максимум. Для символьных полей последние три цифры формата всегда должны быть 000.

Таблица: Имена извлекаемых полей

Извлекать можно:

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

Чтобы извлекать правильные данные, используйте следующие имена полей и спецификации формата:

Имя поля Формат Извлечение
Имя атрибута блока Cwww000 или Nwwwppp Значение атрибута блока
BL:NAME Cwww000 Имя блока
BL:X Nwwwppp Координата Х точки вставки блока
BL:Y Nwwwppp Координата Y точки вставки блока
BL:Z Nwwwppp Координата Z точки вставки блока
BL:ORIENT Nwwwppp Угол поворота блока
BL:XSCALE Nwwwppp Масштабный коэффициент блока по оси X
BL:YSCALE Nwwwppp Масштабный коэффициент блока по оси Y
BL:ZSCALE Nwwwppp Масштабный коэффициент блока по оси Z
BL:XEXTRUDE Nwwwppp Выдавливание блока по оси X
BL:YEXTRUDE Nwwwppp Выдавливание блока по оси Y
BL:ZEXTRUDE Nwwwppp Выдавливание блока по оси Z
BL:LAYER Cwww000 Имя слоя, на который вставлен блок
BL:HANDLE Cwww000 Манипулятор блока
BL:NUMBER Nwww000 Порядковый номер блока
BL:LEVEL Nwww000 Уровень вложенности блока

Пример

Файл шаблона:

BUILDINGTYPE C030000
ZONENAME     C025000
ACTIVITY     C020000
HVACSYSTEM   C025000
AREA         N006002
HEIGHT       N004002
BL:NAME      C012000
BL:NUMBER    N002000

Выходной файл (.cdf):

'Workshops/maintenance depot','Z0/09 Staff Room','Eating/drinking area','Underfloor Heating',31.79,2.55,'ZONE',1
'Workshops/maintenance depot','Z0/14 Plant Room','Plant room','Zone without HVAC system',15.84,4.10,'ZONE',2
'Warehouse and storage','ZO/11 Lobby','Storage area','Space Heating',53.26,4.10,'ZONE',3
...

Доступ

Команда: ExtractBlockAttribute