Александр
-
Legantmar ответил(а) на тему Разрезание колонн ОДНОГО типа по уровням в форуме Разное 6 лет, 6 месяцев назад
а здесь не смотрел?
-
Legantmar ответил(а) на тему Удаление рабочих наборов в форуме Задать вопрос 6 лет, 7 месяцев назад
ты пытаешься удалить Id номера, это не корректно.
преобразуй сначала Id номера в элементы, например, с помощью нода Select.ByElementId (имей ввиду на вход нужно подавать данные в формате String), а затем пробуй удалить полученные элементы. -
Legantmar ответил(а) на тему Компоненты легенды в форуме Задать вопрос 6 лет, 7 месяцев назад
Сможешь разобраться!?
Скачать пример revit2017 и файлик динамо 2.0, чтобы ознакомиться
-
Legantmar ответил(а) на тему Компоненты легенды в форуме Задать вопрос 6 лет, 7 месяцев назад
//с одновременным определением ID типа элемента внутри – не совсем понял. как это можно сделать?//
1) LegendComponents = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_LegendComponents).WhereElementIsNotElementType().ToElements()
2) LegendComponent.get_Parameter(BuiltInParameter.LEGEND_COMPONENT).AsElementId(…[Читать далее] -
Legantmar ответил(а) на тему Компоненты легенды в форуме Задать вопрос 6 лет, 7 месяцев назад
Как я себе вижу
1) Собираешь список всех окон в проекте (через Filtered .. .WhereElementIsNotElementType().ToElements())
2) Определяешь ID семейств типов этих окон (через doc.GetElement(window.GetTypeId()).Id (через Set(list) оставляешь уникальные)
3) Собираешь список всех компонентов легенды с одновременным определением ID типа элемен…[Читать далее] -
Legantmar ответил(а) на тему Компоненты легенды в форуме Задать вопрос 6 лет, 7 месяцев назад
# Получаешь все элементы размещенные на разных легендах (в твоем случае это окна)
windows = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_LegendComponents).WhereElementIsNotElementType().ToElements()
# Выводишь имена легенд на которых размещены твои элементы
OUT = [doc.GetElement(i.OwnerViewId).Name for i in windows] -
Legantmar ответил(а) на тему Компоненты легенды в форуме Задать вопрос 6 лет, 7 месяцев назад
Пишут, что создание легенды из RevitAPI в 2017 году было недоступно. Сейчас я тоже не нашел подходящего метода.
Но можно сделать дубликат существующей легенды:view = doc.GetElement(ElementId(280422)) # 280422 – это Id существующей легенды, посмотрел через LookUp
newName = “Новая легенда” # имя для новой легенды
TransactionManager.Instance…[Читать далее] -
Legantmar ответил(а) на тему Компоненты легенды в форуме Задать вопрос 6 лет, 7 месяцев назад
Для примера.
Выбираем первое окно и второе окно
После запуска скрипта тип первого окна назначается второму
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 лет, 7 месяцев назад
жирный текстом выделены произвольные имена и значения переменных, для примера, то, что ты получаешь из скрипта выше:
# Пример. Меняем тип окна Window на другой
TransactionManager.Instance.EnsureInTransaction(doc)
UnwrapElement(Window).ChangeTypeId(Elem…[Читать далее] -
ИваСерж voted up to a reply by Legantmar in the topic Tips and tricks (Советы и приемы) 6 лет, 7 месяцев назад
-
Legantmar voted up to a reply by hns in the topic Разделение воздуховодов и трубопроводов 6 лет, 7 месяцев назад
-
ИваСерж ответил(а) на тему Разделение воздуховодов и трубопроводов в форуме Задать вопрос 6 лет, 7 месяцев назад
https://www.dropbox.com/s/f4vdwdur1b18abs/CableTrayDivide.zip?dl=0
Вот работающий скрипт по разделению кабельных лотков.
Только у меня условия деления сложнее. У меня есть лотки 1м, 2м и 3м.
Соответственно я делю лотки на такие отрезки.
Я полностью удаляю старые лотки и по точкам следования старых лотков строю новые.
В точки разреза вставляю…[Читать далее] -
Legantmar ответил(а) на тему Шрифт в ведомости в форуме Задать вопрос 6 лет, 8 месяцев назад
Скорее всего при помощи Python
text = Revit
text.upper() # text будет содержать заглавные буквы REVIT
а далее нужно пройтись в цикле по необходимым ячейкам спецификации и заменить текст
возможно вот это натолкнет на мысли -
ИваСерж ответил(а) на тему Замена марки трубы – как назначить типоразмер? в форуме Задать вопрос 6 лет, 8 месяцев назад
А вот марка это IndependentTag.
Получить тип IndependentTag.GetTypeId()
Изменить тип:
IndependentTag.ChangeTypeId(Id) -
ИваСерж ответил(а) на тему Замена марки трубы – как назначить типоразмер? в форуме Задать вопрос 6 лет, 8 месяцев назад
Мы говорим о марках или о самих трубах?
Труба это не семейство (не Фемели инстанс).
Очевидно, нет у трубы FamilyInstance.TypeЗато у трубы есть PypeType
В динамо есть даже нод GetPypeTypeВозможно, подтолкнет на какие-то идеи по замене трубы.
А вот и пример скрипта который соединяет 2 любые трубы и вставляет фитинги по умолчанию.
Проверил. У…[Читать далее] -
Ренат Я. voted up to a reply by A.Balm in the topic GUI и IronPython 6 лет, 8 месяцев назад
-
Legantmar ответил(а) на тему GUI и IronPython в форуме Задать вопрос 6 лет, 8 месяцев назад
конечно, вот несколько примеров
С помощью нодов простые окна
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 -
Ренат Я. ответил(а) на тему Проблемы со скриптом в форуме Задать вопрос 6 лет, 9 месяцев назад
приветствую. тело цикла “for” и оператора “if” надо отделять табуляцией.
P.S. ну и скрин ошибки тоже не помешал бы
-
Ренат Я. ответил(а) на тему Расстановка элементов в помещениях в форуме Задать вопрос 6 лет, 9 месяцев назад
чудесным образом Динама или Ревит ничего не сделает.
придумайте алгоритм определения точек вставки,
а потом уже с помощью динамо вставляйте по ним элементы. -
Ренат Я. ответил(а) на тему Расстановка элементов в помещениях в форуме Задать вопрос 6 лет, 9 месяцев назад
тут можно глянуть
- Загрузить еще