Архитектура и дизайн / Ведомость отделки — Revit 2016 — Roombook Extension

Репутация: 3 [+]. сообщений: 52. BIM3D, http://bim3d. ru — Программирование под Revit, cтаж: 15 лет

Хочу сказать несколько слов за такое приложение к Revit как Roombook Extension. Это приложение помогает рассчитать отделку. Но оно как известно имеет несколько недостатков:

1. Не выдает таблицу ведомости отделки по ГОСТу, в данных которые экспортируются в Excel сложно разобраться

2. Из длины плинтусов не вычитается длина проемов дверей, выдается просто периметр помещений.

3. Кроме того не забывайте подвесные потолки делать перекрытиями, а не потолками — Roombook иногда не принимает потолок как ограничение по высоте для отделки, а перекрытие всегда служит границей отделки

Я написал скрипт Excel, который отчасти решает эти проблемы.

Кидаю VBA скрипт для Excel, которые выкидывает из длины плинтусов длину дверей и формирует вкладку — Ведомость помещений — привычного ГОСТовского вида. Применять скрипт надо на файл Roombook_Russian_Standard_SPDS который выдает при экспорте Roombook. Работает только для 2016 версии Revit

1. Определяем сначала класс:

Public Number As String

Public Name As String

Public Wall As String

Public Area As Double

Public NameSection As String

Public NameElement As String

2. Теперь самая мякотка — скрипт:

Sub Make_finishing_Roombook()

'

' Make_finishing_Roombook Макрос

'

'

Application. ScreenUpdating = 0

Dim vedName As String

vedName = InputBox("Введите название ведомости", "Запрос параметра", "")

'Добавим лист с ведомостью отделки

Worksheets. Add. Name = "Ведомость отделки"

ActiveSheet. Move After:=Sheets(ActiveWorkbook. Sheets. Count)

' Добавим необходимые ячейки

ActiveSheet. Range("B2").Value = vedName

Application. DisplayAlerts = False

ActiveSheet. Range("B2:G2").Merge

Application. DisplayAlerts = True

ActiveSheet. Range("B3").Value = "№ п/п"

ActiveSheet. Columns("B").ColumnWidth = 10

ActiveSheet. Range("C3").Value = "Имя помещения"

ActiveSheet. Columns("C").ColumnWidth = 30

ActiveSheet. Range("D3").Value = "Стены, колонны или перегородки"

ActiveSheet. Columns("D").ColumnWidth = 30

ActiveSheet. Range("E3").Value = "Площадь стен, м. кв."

ActiveSheet. Columns("E").ColumnWidth = 15

ActiveSheet. Range("F3").Value = "Низ стены, м. п."

ActiveSheet. Columns("F").ColumnWidth = 30

ActiveSheet. Range("G3").Value = "Длина м. п."

ActiveSheet. Columns("G").ColumnWidth = 15

Sheets("Периметры_помещений").Select

Finish. Number = Range("A" & CStr(index))

Finish. Name = Range("B" & CStr(index))

Do While continue = True

index = index + 1

Sheets("Периметры_помещений").Select

If IsEmpty(Range("A" & CStr(index))) = False Then

Set PlTemp = Range("H" & CStr(index — 1))

Finish. Pl = Range("F" & CStr(index — 2))