Legantmar
@legantmar
активность: 7 месяцев, 3 недели назад-
Legantmar voted up to a reply by Евгений in the topic Копирование листа 5 лет, 10 месяцев назад
-
Legantmar ответил(а) на тему Распределенная нагрузка по площади комнат с возможностью смещения по высоте в форуме Разное 5 лет, 10 месяцев назад
Попробуй эту версию https://yadi.sk/d/6U0UnmkMan9cwA
-
Legantmar voted up to a reply by Sche in the topic Ошибка при Set/GetParameterValue. Только у меня? 5 лет, 10 месяцев назад
-
Legantmar ответил(а) на тему Ошибка при Set/GetParameterValue. Только у меня? в форуме Задать вопрос 5 лет, 10 месяцев назад
для выполнения нода set требуется время, но все ноды динамо выполняются без задержки, отсюда “конфликт”.
решение:
1) Простое – использовать 2 скрипта (в одном делаешь Set), в другом получаешь Get (или попробуй запустить свой скрипт 2 раза)
2) Сложное – использование python кода с открытием/закрытием транзакции для записи параметра и далее чтение…[Читать далее] -
Legantmar ответил(а) на тему Изменение значения параметра при совпадении с регулярным выражением в форуме Задать вопрос 6 лет назад
Не совсем понял задачу и причем тут регулярные выражения, но может достаточно нода String.Replace ?
-
Legantmar voted up to a reply by Alexey in the topic Нумерация элементов 6 лет, 1 месяц назад
-
Legantmar voted up to a reply by Alexey in the topic Нумерация элементов 6 лет, 1 месяц назад
-
Legantmar ответил(а) на тему Разрезание колонн ОДНОГО типа по уровням в форуме Разное 6 лет, 2 месяца назад
а здесь не смотрел?
-
Legantmar ответил(а) на тему Удаление рабочих наборов в форуме Задать вопрос 6 лет, 2 месяца назад
ты пытаешься удалить Id номера, это не корректно.
преобразуй сначала Id номера в элементы, например, с помощью нода Select.ByElementId (имей ввиду на вход нужно подавать данные в формате String), а затем пробуй удалить полученные элементы. -
Legantmar ответил(а) на тему Компоненты легенды в форуме Задать вопрос 6 лет, 2 месяца назад
Сможешь разобраться!?
Скачать пример revit2017 и файлик динамо 2.0, чтобы ознакомиться
-
Legantmar ответил(а) на тему Компоненты легенды в форуме Задать вопрос 6 лет, 2 месяца назад
//с одновременным определением ID типа элемента внутри – не совсем понял. как это можно сделать?//
1) LegendComponents = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_LegendComponents).WhereElementIsNotElementType().ToElements()
2) LegendComponent.get_Parameter(BuiltInParameter.LEGEND_COMPONENT).AsElementId(…[Читать далее] -
Legantmar ответил(а) на тему Компоненты легенды в форуме Задать вопрос 6 лет, 2 месяца назад
Как я себе вижу
1) Собираешь список всех окон в проекте (через Filtered .. .WhereElementIsNotElementType().ToElements())
2) Определяешь ID семейств типов этих окон (через doc.GetElement(window.GetTypeId()).Id (через Set(list) оставляешь уникальные)
3) Собираешь список всех компонентов легенды с одновременным определением ID типа элемен…[Читать далее] -
Legantmar ответил(а) на тему Компоненты легенды в форуме Задать вопрос 6 лет, 2 месяца назад
# Получаешь все элементы размещенные на разных легендах (в твоем случае это окна)
windows = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_LegendComponents).WhereElementIsNotElementType().ToElements()
# Выводишь имена легенд на которых размещены твои элементы
OUT = [doc.GetElement(i.OwnerViewId).Name for i in windows] -
Legantmar ответил(а) на тему Компоненты легенды в форуме Задать вопрос 6 лет, 2 месяца назад
Пишут, что создание легенды из RevitAPI в 2017 году было недоступно. Сейчас я тоже не нашел подходящего метода.
Но можно сделать дубликат существующей легенды:view = doc.GetElement(ElementId(280422)) # 280422 – это Id существующей легенды, посмотрел через LookUp
newName = “Новая легенда” # имя для новой легенды
TransactionManager.Instance…[Читать далее] -
Legantmar ответил(а) на тему Компоненты легенды в форуме Задать вопрос 6 лет, 2 месяца назад
Для примера.
Выбираем первое окно и второе окно
После запуска скрипта тип первого окна назначается второму
window1_Id = UnwrapElement(IN[0]).get_Parameter(BuiltInParameter.LEGEND_COMPONENT).AsElementId()
window2 = IN[1]
UnwrapElement(IN[1]).get_Parameter(BuiltInParameter.LEGEND_COMPONENT).Set(window1_Id) -
Legantmar ответил(а) на тему Компоненты легенды в форуме Задать вопрос 6 лет, 2 месяца назад
жирный текстом выделены произвольные имена и значения переменных, для примера, то, что ты получаешь из скрипта выше:
# Пример. Меняем тип окна Window на другой
TransactionManager.Instance.EnsureInTransaction(doc)
UnwrapElement(Window).ChangeTypeId(Elem…[Читать далее] -
Legantmar voted up to a reply by hns in the topic Разделение воздуховодов и трубопроводов 6 лет, 2 месяца назад
-
Legantmar ответил(а) на тему Шрифт в ведомости в форуме Задать вопрос 6 лет, 3 месяца назад
Скорее всего при помощи Python
text = Revit
text.upper() # text будет содержать заглавные буквы REVIT
а далее нужно пройтись в цикле по необходимым ячейкам спецификации и заменить текст
возможно вот это натолкнет на мысли -
Legantmar ответил(а) на тему GUI и IronPython в форуме Задать вопрос 6 лет, 3 месяца назад
конечно, вот несколько примеров
С помощью нодов простые окна
https://www.youtube.com/watch?v=8RRM5FFJ90g&t=1sМои примеры:
на Windows Form (есть исходник по ссылке под видео)
https://www.youtube.com/watch?v=9IUMANtM1xE&t=2sна WPF (пример посложнее)
https://www.youtube.com/watch?v=cXxQMDdqsNs -
Legantmar ответил(а) на тему Как строку снова сделать списком (Array from String) ? в форуме Задать вопрос 6 лет, 4 месяца назад
Ренат напомнил про replace,
тогда могу вот такой вариант предложить в одну строку)) (только для двухуровневого списка)
OUT = [i.split(‘,’) for i in IN[0].replace(“{{“, “”).replace(“,{“,””).split(“}”) if i]
т.е. это тоже самое, что предложил Ренат выше через ноды, но в питоне - Загрузить еще