Пакетное добавление параметров
Главная › Форумы › Python › Revit Library (API) › Пакетное добавление параметров
- В этой теме 47 ответов, 14 участников, последнее обновление 5 лет, 4 месяца назад сделано Denver-22.
-
АвторСообщения
-
Здравствуйте, уважаемые динамовцы.
Хочу поделиться наработкой, позволяющей пакетно создавать и добавлять в проект Общие параметры. Схема состоит из XLSX файла, в который заложены необходимые списки свойств, связанных с Общими параметрами, и скрипта, основанного на пакете от Arch-Lab “Add Shared Parameter to Project”. Сам скрипт доработан по части добавления нескольких категорий семейств одновременно, а также реализована возможность его исполнения на 2016 ревите.
В XLSX нужно занести значения имён и групп будущих (если параметра ещё нет в общих параметрах) или существующих параметров, а также выбрать значения формата, видимости, категории, группирования и типа параметра. Список категорий содержит помимо основных семейств остальные категории, в которые нельзя добавить параметры, эти категории заложены на будущее.
Список групп начинается со стандартных, которые можно выбрать при обычном добавлении параметра, но в него входят и группирования от системных семейств. Стоит отметить, что они также могут быть использованы для добавления параметров. Единственное пока найденное ограничение — если попытаться параметр с таким наименованием группы открыть через вкладку управления, параметр попадёт в группу “Прочее”, т. е. добавленная ранее группа слетает. Список форматов представлен стандартными форматами, которые можно выбрать при обычном добавлении параметров.
При подгружении таблицы в Dynamo скрипт не существующие ранее параметры добавляет как в файл общих параметров, так и в проект, а уже существующие — только в проект (выбранный формат в данном случае не влияет).
Зачем нужно пакетное добавление? Чтобы не делать по десять кликов для того, чтобы добавить один параметр ) Если возникнут замечания/предложения по доработке схемы, с удовольствием обсудим.
P.S. По замечанию Александра Попова, подобная схема пригодится при внесении в существующий проект параметров из единого “общего” файла Общих параметров, основанного на BIM стандарте.
P.P.S. Сейчас очень актуальной является возможность пакетного добавления параметров проекта (не общих). Если есть идеи или примеры, где можно посмотреть, подскажите, пожалуйста.
Сергей спасибо большое. Интересный скрипт
Hi Friends,
I am getting error while using this script. Any help!
Hi, kulkul.
What version of Revit are you using?
Hi Sergey,
Thanks for replying. I am using Revit 2015 dynamo version 0.9.1.
In this case, you need a previous version of this method: “Autodesk.Revit.DB.Definitions.Create(string, Autodesk.Revit.DB.ParameterType, bool)”
http://dynamobim.org/forums/topic/shared-parameter-creation-from-list/#post-42001
Thanks sergey,
Do you have script for Revit 2015? I saw that link before but it didn’t work. Can you please give Script for Revit 2015.
Unfortunately I have no opportunity test this at 2015 version now. Use “Add Shared Parameter to Project” node for 2015 version by Konrad, copy of it lines with method “Definitions.Create(string, Autodesk.Revit.DB.ParameterType, bool)”.
Thanks i solved It!
Thank you so much ))))
ZyadoУчастникhi,
i can not speak Russian. I am keeping following your blog with google translator. so i am not understanding all of the text, but imostly i understand it so far. i have two questions.
how didyou solved it for Revit 2015? can you share the screen shot of the modified script?
how can i bid one parameter for different categories
thanx
Здравствуйте, Zyado!
Для того, чтобы использовать скрипт на 2015 версии, необходимо использовать метод Definitions.Create(string, ParameterType, bool) вместо ExternalDefinitionCreationOptions(string, ParameterType). Просто замените эти строки:
opt = ExternalDefinitionCreationOptions(_paramName[k], _paramType[k])
opt.Visible = _visible[k]на эту:
Definitions.Create(_paramName[k], _paramType[k], _visible[k])
Категорию, для которой назначается параметр, определяет эта строка:
cats.Insert(category)
Если таких строк несколько с разными категориями в скобках, то параметр назначается всем перечисленным категориям. Другими словами, нужно запустить цикл по списку из категорий, в которые нужно добавить параметры:
for category in categories:
cats.Insert(category)Список категорий предварительно нужно создать. Можно сделать так, чтобы он создавался, обрабатывая все строки таблицы и находя одинаковые параметры с разными категориями.
Позже я выложу доработанный скрипт.
Hi Sergey,
How do you set the parameters to type?
Здравствуйте, kulkul!
За способ создания отвечают разные методы: NewInstanceBinding и NewTypeBinding. Выбор метода зависит от того, что указано в параметре _instance[k] (True или False, т. е. 1 или 0):
В случае использования файла XLSX эти значения задаются в этом столбце (0 это тип, 1 это экземпляр):
Thanks Sergey,
I am already using True or False from excel but it is not working?
kulkul, а что у вас подаётся? В Python нужно подавать непосредственно 0 или 1. Не нужно подавать True или False.
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.