Как изменить толщину линии

Автор Тема: Как изменить толщину линии  (Прочитано 2835 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн HughАвтор темы

  • ADN OPEN
  • Сообщений: 12
  • Карма: 0
Возможно, глупый вопрос, но... Я создаю линию и меняю её цвет вот таким кодом:
Код - C# [Выбрать]
  1. Line line = Line.CreateBound(A, B);            
  2. ModelCurve mc = doc.Create.NewModelCurve(line, sp);
  3. GraphicsStyle gs = mc.LineStyle as GraphicsStyle;
  4. gs.GraphicsStyleCategory.LineColor = new Autodesk.Revit.DB.Color(250, 10, 10);

Всё работает, всё ок. Но как мне поменять толщину линии? Я уже запутался в LineStyle, LinePattern, GraphicsStyleCategory, GraphicsStyleType и т.п. Прошу помощи.

Отмечено как Решение Hugh 03-04-2017, 14:00:35

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Re: Как изменить толщину линии
« Ответ #1 : 31-03-2017, 19:47:40 »
Hugh,
У конкретной линии толщину поменять нельзя. Внешний вид линии создается через ее стиль (LineStyle).

У каждого стиля есть параметр - Вес

Вес задается значением от 1 до 16, но это не толщина, а условная единица. Реальная толщина - в таблице весов.


Таким образом, нужно менять стиль. А стиль с нужно толщиной, либо предварительно создать в интерфейсе, либо через API. Зависит от задачи.
Вообще тут стандартный совет. Попробовать достичь сначала нужный результат в интерфейсе и затем автоматизировать его через API



Оффлайн HughАвтор темы

  • ADN OPEN
  • Сообщений: 12
  • Карма: 0
Re: Как изменить толщину линии
« Ответ #2 : 03-04-2017, 14:00:23 »
Спасибо, я справился. Создал новый стиль (нашёл готовый код), создал линию, после этого
Код - C# [Выбрать]
  1. Category parentCategory = doc.Settings.Categories.get_Item(BuiltInCategory.OST_Lines);          
  2. Category myCategory = parentCategory.SubCategories.get_Item("New LineStyle");
  3. GraphicsStyle gs = myCategory.GetGraphicsStyle(GraphicsStyleType.Projection);
  4. mc.LineStyle = gs;

Спасибо за подсказки!