Типы линий в Python
Главная › Форумы › Задать вопрос › Типы линий в Python
- В этой теме 2 ответа, 2 участника, последнее обновление 3 года, 1 месяц назад сделано Yrij.
-
АвторСообщения
-
Приветствую всех начинающих и гуру!
У меня возник “затык” (не могу найти решение). Вот и обращаюсь за помощью.
Есть скрипт который отрисовывает curve на чертежном виде (это у меня получилось с помощью честно подсмотреного)))
TransactionManager.Instance.EnsureInTransaction(doc)
for curve in curves:
detcurve = doc.Create.NewDetailCurve(view, curve.ToRevitType())
elementlist.append(detcurve)
TransactionManager.Instance.TransactionTaskDone()OUT = elementlist
И собственно сам вопрос:
Как назначить тип линии до того как она будет отрисована на виде?
Если можно использовать newLineStyleCat.SetLineWeight( weight, GraphicsStyleType.Projection ), то у меня не получается(
Заранее благодарен всем откликнувшимся.
Привет.
Как назначить тип линии до того как она будет отрисована на виде?
Странный вопрос. Нельзя ничему назначить что-то. Например, как можно писать в тетрадке, которой у тебя нет?
Теперь по теме.
До окончания выполнения транзакции линии (объекта) в проекте, считай, по факту у тебя нет, но есть уже
созданный и висящий в оперативке объект, который готов “реализоваться”. Вот к нему и будем применять
все необходимые изменения.Че-то мне эта строчка не нравится… не знаю что такое ToRevitType. Если работает – можно оставить.
detcurve = doc.Create.NewDetailCurve(view, curve.ToRevitType())Далее ищем в ревитАпиДокс свойства линий детализации.
https://www.revitapidocs.com/2022/082d6c1c-71be-68f2-42ed-9c8f694084c7.htmНам подходит LineStyle. Тем более его можно перезаписывать.
Только вот проблема найти нужный стиль линий. Я буду задавать тип линий по уже известному названию
стиля, который был создан раньше. Соответственно толщина, тип (пунктир или цельная), цвет и т.п. уже заданы в этом стиле.
Если есть желание переназначать для вида эти предустановленные свойства – это уже другая задача.Это сложно и пришлось 5 минут погуглить. Решение, как и в 95% случаев, есть у билдинг-кодера.
Дополнительно комментировать его не буду.
https://thebuildingcoder.typepad.com/blog/2013/08/retrieving-all-available-line-styles.htmlОсталось перевести всю полученную информацию в питон-код. Я не люблю циклы, поэтому получилось в одну линию.
style_name = “ИМЯЛЮБИМОЕМОЕ”
line_cat = doc.Settings.Categories.get_Item(BuiltInCategory.OST_Lines)
line_subcats = line_cat.SubCategories
line_new_style = [i for i in line_subcats if i.Name == style_name][0].GetGraphicsStyle(GraphicsStyleType.Projection)В транзакции задаём этот тип линии нашей ново-созданной линии.
detcurve.LineStyle = line_new_stylePROFIT
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.