Как создать новый Graphics Style ?

Автор Тема: Как создать новый Graphics Style ?  (Прочитано 4465 раз)

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

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

  • ADN OPEN
  • Сообщений: 18
  • Карма: 1
Виктор!
2 вопроса:
1) можно ли переименовать сущ. пользовательский стиль линии ? (например, название стиля линии с Red на Green, не нашел ничего похожего в Revit API)
2) можно ли создать пользовательский стиль линии ? (имя, цвет, вес, паттерн) (про цвет, вес и немного про паттерн есть информация в Revit API)

Оффлайн shss

  • ADN Club
  • ***
  • Сообщений: 214
  • Карма: 5
  • Sergey
  • Skype: sergey.s.shevtsov
Re: Как создать новый Graphics Style ?
« Ответ #1 : 15-05-2017, 14:04:07 »
Я, конечно, не Виктор, но может мой ответ и подойдет.
1. Я бы просто клонировал нужный мне стиль линии и задал бы новое имя.
2. http://thebuildingcoder.typepad.com/blog/2016/10/how-to-create-a-new-line-style.html

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

  • ADN OPEN
  • Сообщений: 18
  • Карма: 1
Re: Как создать новый Graphics Style ?
« Ответ #2 : 15-05-2017, 16:33:08 »
shss, спасибо.
хорошие советы.
но как я понял прямого переименования через API нет!?

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

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Re: Как создать новый Graphics Style ?
« Ответ #3 : 15-05-2017, 17:51:09 »
но как я понял прямого переименования через API нет!?
Класс GraphicStyle наследуется от класса Element, у которого есть свойство Name. Вот его то нужно и попробовать изменить

Оффлайн DenisR

  • ADN OPEN
  • Сообщений: 3
  • Карма: 0
Re: Как создать новый Graphics Style ?
« Ответ #4 : 16-05-2017, 08:25:21 »
но как я понял прямого переименования через API нет!?
Класс GraphicStyle наследуется от класса Element, у которого есть свойство Name. Вот его то нужно и попробовать изменить
Добрый День Виктор,
Спасибо вам за совет! Вкратце о конечно цели - http://dynamobim.ru/wp-content/uploads/bpfed/1-5.png. У нас есть object style, который содержит различные подкатегории линий. Если линии системные, то в Revit нельзя произвести с ними операции (переименовать, удалить). Но если они созданные пользователем, как на примере выше, то мы можем произвести с ними данные операции.
Я воспользовался вашим советом и попробовал изменить имя через наследование от класса Element. У класса GraphicStyle я нашел два типа, какой из них мне нужен я не знаю, поэтому решил попробовать произвести замену имени для всех типов внутри GraphicStyle. На что он мне выдал ошибку, что я не могу изменить ему имя.

Я решил, что возможно дело в том, что у нас есть системные элементы, и когда он натыкается на них, то не может произвести операцию и "падает". Тогда я задал цикл try, как итог он у меня не изменил не одного имени.
Ниже прилагаю скрипт:
https://www.dropbox.com/s/1pxbeagkcrzvszg/Change_SubCategories_import_to_Revit.v1.0.dyn?dl=0
Буду благодарен, если сможете помочь делом или советом!



« Последнее редактирование: 16-05-2017, 10:44:47 от DenisR »

Оффлайн DenisR

  • ADN OPEN
  • Сообщений: 3
  • Карма: 0
Re: Как создать новый Graphics Style ?
« Ответ #5 : 16-05-2017, 08:27:27 »
Я, конечно, не Виктор, но может мой ответ и подойдет.
1. Я бы просто клонировал нужный мне стиль линии и задал бы новое имя.
2. http://thebuildingcoder.typepad.com/blog/2016/10/how-to-create-a-new-line-style.html
Спасибо вам за совет, но у меня сразу возникает вопрос - если мы копируем линии со всеми свойствами, а потом удалим замененные линии, не возникнит ли конфликта внутри revit для старых элементов, которые уже содержали эти линии. Или они просто заменяться?

Оффлайн shss

  • ADN Club
  • ***
  • Сообщений: 214
  • Карма: 5
  • Sergey
  • Skype: sergey.s.shevtsov
Re: Как создать новый Graphics Style ?
« Ответ #6 : 16-05-2017, 10:56:26 »
если мы копируем линии со всеми свойствами, а потом удалим замененные линии, не возникнит ли конфликта внутри revit для старых элементов, которые уже содержали эти линии. Или они просто заменяться?
Они точно не заменятся. Но, что мешает перебрать все объеты, с используемым стилем и заменить его на созданный?

Оффлайн DenisR

  • ADN OPEN
  • Сообщений: 3
  • Карма: 0
Re: Как создать новый Graphics Style ?
« Ответ #7 : 16-05-2017, 12:52:04 »
если мы копируем линии со всеми свойствами, а потом удалим замененные линии, не возникнит ли конфликта внутри revit для старых элементов, которые уже содержали эти линии. Или они просто заменяться?
Они точно не заменятся. Но, что мешает перебрать все объеты, с используемым стилем и заменить его на созданный?
Суть данной задачи состоит в том, что мы имеем множество элементов с большим количеством различных стилей, т.е. нужно много времени для решения данной задачи. Поэтому требуется автоматизация данного процесса.
Плюс к данной ситуации заключается в том, что все, что нашел до этого в ру сегменте интернета и зарубежных форумах - это максимум вытаскивают оболочку из категорий - т.е. стринги, такие как Name. А все операции проводятся только с элементами.
Виктор выше предложил решение данной проблемы, в теории все должно было получится, но на практике не получилось - поэтому прошу помочь в этом вопросе, у кого есть идеи или мысли, как заменить параметры существующих линий. Или возможно найдете неточночти в коде, вообщем буду рад любой помощи.