Как задать индивидуальность Линиям модели в семействе?
Главная › Форумы › Задать вопрос › Как задать индивидуальность Линиям модели в семействе?
- В этой теме 11 ответов, 3 участника, последнее обновление 8 лет, 1 месяц назад сделано Арсений.
-
АвторСообщения
-
Приветствую! Возникла неразрешимая задача.
В семействе линиями модели задана условная планировка. На её основе в проекте предполагалось “поднять” стены при помощи Wall.ByCurveAndLevels, в соответствии с заданными подкатегориями (см. рис) . Оказалось, что все линии из семейства – в проекте “обезличены”. Существуют ли какие-то пути, чтобы линии было возможно отсортировать по их подкатегории, или идентифицировать их? Поиски в интернете по извлечению “Object Styles” не привели к успеху..
в каком семействе? как в семействе заданы подкатегории? )))
Семейство на основе типовой модели. Подкатегории заданы через “Стили объектов”, называются: наружная стена [проекция], внутренняя стена [проекция] и перегородка [проекция]. Семейство загружено в проект (собственно принсткрин сделан из проекта)
выложи rvt файлик..
Таким кодом удалось добраться до идентификационных номеров типов линий содержащихся внутри семейства
import clr clr.AddReference('ProtoGeometry') from Autodesk.DesignScript.Geometry import * clr.AddReference("RevitAPI") from Autodesk.Revit.DB import * clr.AddReference("RevitNodes") import Revit clr.ImportExtensions(Revit.GeometryConversion) reset = IN[0] element = UnwrapElement(IN[1]) Gopt = Options() geo1 = element.get_Geometry(Gopt) geo2 = [i for i in geo1] items = [i for i in geo2[0].SymbolGeometry] GSI = [i.GraphicsStyleId for i in items] OUT = GSI
Хасан, отлично!
немного доработалвнутри скрипта есть комбинация типа list[:-1] – это чтобы избавится от какого то скрытого Solid
Лучше конечно делать выборку по типу элемента, чем отсекать последний элемент списка, ведь “мусор” может оказаться и в другом месте списка
согласен
- Спасибо за участие. Это похоже на шаманство. Даже не знаю что или кого пришлось принести в жертву)
- Остался вопрос.. Три штуки.
- Питон-скрипт выбирает только один элемент. Но это можно решить и обходными путями, более длинными правда.
- Элементы рисуются относительно ноля проекта (это и понятно, ведь в семействе они построены от ноля). Но это, предположительно, можно решить путем перемещения по “инстансу” семейства в проекте.
- Скрипт видит только первый уровень вложенности семейства. Т.е. если семейство с этими линиями вложить в другое семейство и уже его загрузить в проект, то линии не распознаются – это печально. Сложно ли решается этот вопрос?
- В любом случае вы уже помогли, спасибо.
Арсений к чему такие сложности? Все для того чтобы строить стены по линиям? А если бы не было Динамо? Кажется проблем было бы меньше. Стройте линии сразу в проекте, на кой их нужно два-три раза прятать в семейства? Кстати есть нод для мультивыбора, плюс есть мой скрипт для выбора в Ревит. Я про него ролик записывал, под роликом можно скачать скрипт.
Спасибо, посмотрю ваш урок.
Линии запараметризованы на различные планировки
Наверное это побочные эффекты желания сделать мифическую “красную кнопку” – она же “сделать красиво” :)
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.