ADN Club > Revit API

Параметры в спецификации

<< < (2/8) > >>

Виктор Чекалин:
Чтож, с шаблоном стало более понятно.
Если 0.0 и 4.0 - это шапка, соответствующая уровню, то что означают цифры 26,4 и 70,8?

В теории такую спецификацию создать можно. Но для этого нужно будет создать столько дополнительных параметров, сколько у вас есть уровней. Эти параметры будут видны у каждого объекта. Судя по всему значение большей части этих параметров будет пустым.

Хотелось бы получить более детальное описание желаемой спецификации. Какое будет значение у общих параметров?

Alexander:
Эти цифры - это площадь стен. Каждая строка в таблице это какая-то стена.

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

Подобную спецификацию создать программно можно.
Алгоритм следующий:

* Для каждого уровня в проекте программно создаете новый общий параметр и привязываете его к категории Стена
* Выбираете все стены в проекте
* Для каждой стены производите расчет площади поверхности на каждом уровне
* Записываете значение площади поверхности стены на определенном уровне в соответсвующий параметр
* Создаете новую спецификацию
* Добавляете туда поля с созданными общими параметрами
Самое трудное в этом алгоритме - это рассчитать площадь стен на каждом из уровней.
Второй момент - определение идентификатора параметра, который нужен при создании поля спецификации.
Его можно получить так. Выбираем первую попавшуюся стену в проекте. Находим параметр, содержащий значение площади поверхности стены на определенном уровне. Берем свойство Id этого параметра.

--- Код - C# [Выбрать] ---            FilteredElementCollector filteredElementCollector =                 new FilteredElementCollector(doc);             var firstWall = filteredElementCollector.OfClass(typeof (Wall)).FirstElement() as Wall;             if (firstWall == null)            {                message = "В проекте нет стен";                return Result.Failed;                           }             var level0Param = firstWall.get_Parameter("Уровень 0.0");             var level0ParamId = level0Param.Id;
Но для начала я бы рекомендовал создать сначала параметры и рассчитать площдь стен. Имея эти данные спецификацию можно попробовать и вручную создать.

Alexander:
Спасибо за ответ.

Мне нужно в разных столбцах выполнять подсчёт площадей стен расположенных на разных этажах, но имеющих один типоразмер. Первый столбец для 1 этажа, 2 для 2 и т.д. , а последний столбец - итого по всем этажам.
В Ревите можно сформировать подсчёт площадей по строкам, но не по столбцам.

Виктор Чекалин:
То есть в вашем случае стена будет находиться только на одном уровне? Если так, то площадь посчитать проще. В любом случае если вы хотите по столбцам, то нужно создавать доп. параметры и сделать по приведенному алгоритму.

Навигация

[0] Главная страница сообщений

[#] Следующая страница

[*] Предыдущая страница

Перейти к полной версии