Создать Отличительный знак.

Автор Тема: Создать Отличительный знак.  (Прочитано 8833 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

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

  • ADN OPEN
  • ***
  • Сообщений: 107
  • Карма: 6
Добрый день, есть ли в Revit возможность создать какой-то свой отличительный знак?
Например, пометить семейство.
« Последнее редактирование: 14-08-2015, 17:05:53 от Антон Останин »

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Создать Watermark.
« Ответ #1 : 18-06-2015, 12:44:50 »
День добрый!

А что Вы подразумеваете под пометить? Я так понимаю, задача в том, чтобы можно было отловить использование семейства в чужих проектах?

Тогда можно использовать ExtensibleStorage или параметры, доступные только программно (на сколько не врет память, они появились в 2015 версии). Только чтобы прочитать пометку нужен свой addin

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

  • ADN OPEN
  • ***
  • Сообщений: 107
  • Карма: 6
Re: Создать Watermark.
« Ответ #2 : 18-06-2015, 12:50:11 »
То есть нет такого пути, чтобы это можно было внести через API, а проверить потом не используя Add-in?

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Создать Watermark.
« Ответ #3 : 18-06-2015, 12:56:25 »
Ну я такого способа не вижу, параметры, которые видны в пользовательском интерфейсе поменять проблем нет, если только какую-то отличительную геометрию создавать очень маленькую, чтобы не заметили :-)

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

  • ADN OPEN
  • ***
  • Сообщений: 107
  • Карма: 6
Re: Создать Watermark.
« Ответ #4 : 18-06-2015, 12:58:03 »
Создать что-то типа системного параметра тоже нельзя? :-\

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Создать Watermark.
« Ответ #5 : 18-06-2015, 13:06:55 »
ну вот с 2015 версии как раз можно, но он и доступен только программно будет

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

  • ADN OPEN
  • ***
  • Сообщений: 107
  • Карма: 6
Re: Создать Watermark.
« Ответ #6 : 18-06-2015, 15:17:03 »
Александр,  я задаю при создании параметра "UserModifiable = false", а свойство не срабатывает.
Также и с Visible = false.

 ExternalDefinitonCreationOptions options = new ExternalDefinitonCreationOptions("paramName", ParameterType.Text);
                    options.Visible = false;
                    options.UserModifiable = false;

Что я не так делаю?

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Создать Watermark.
« Ответ #7 : 19-06-2015, 06:33:44 »
Ну ларчик открывается не так просто. Тут задачка, на самом деле, делится на 2.

Первая - создать определение общего параметра, как-то примерно вот так:
Код - C# [Выбрать]
  1.                 var definitionFile = doc.Application.OpenSharedParameterFile();
  2.  
  3.                 var group = definitionFile.Groups.get_Item("mygroup");
  4.                
  5.                 var options = new ExternalDefinitonCreationOptions("myprm1", ParameterType.Text)
  6.                     {
  7.                         UserModifiable = false,
  8.                         Visible = false
  9.                     };
  10.  
  11.                 var definition = group.Definitions.Create(options);

Вторая - используя определение этого параметра уже добавить его в параметры семейства:
Код - C# [Выбрать]
  1. doc.FamilyManager.AddParameter(definition as ExternalDefinition, BuiltInParameterGroup.PG_IDENTITY_DATA, false);


Отмечено как Решение Антон Останин 22-06-2015, 09:30:14

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Создать Watermark.
« Ответ #8 : 19-06-2015, 06:44:09 »
Но я, кстати, все-таки, посоветовал бы использовать не параметры, а Extensible storage. В любом случае, Ваш Watermark в UI будет не виден, если в ExternalDefinitonCreationOptions поставить Visible = true, то в редакторе семейств параметр можно изменить или удалить, параметр виден в RevitLookup, extensible storage, конечно, тоже, но привлекает гораздо меньше внимания, плюс имеет кое-какую защиту в т.ч. на чтение из него данных.

Второй плюс - поиск ваших семейств в проекте. ExtensibleStorageFilter относится к быстрым фильтрам, в отличие от фильтров по параметрам

Оффлайн Пашин Евгений

  • ADN PRO
  • *
  • Сообщений: 662
  • Карма: 12
  • Skype: pashin.evgeniy
Re: Создать Отличительный знак.
« Ответ #9 : 22-10-2015, 10:52:04 »
Первая - создать определение общего параметра, как-то примерно вот так:
Код - C#: [Выделить]
                var definitionFile = doc.Application.OpenSharedParameterFile();
 
                var group = definitionFile.Groups.get_Item("mygroup");
               
                var options = new ExternalDefinitonCreationOptions("myprm1", ParameterType.Text)
                    {
                        UserModifiable = false,
                        Visible = false
                    };
 
                var definition = group.Definitions.Create(options);

А можно ли не трогать общие параметры вообще?

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Создать Отличительный знак.
« Ответ #10 : 22-10-2015, 10:54:03 »
Не понял вопрос, честно говоря. В комменте выше рекомендую пользовать расширяемую область хранения

Оффлайн Пашин Евгений

  • ADN PRO
  • *
  • Сообщений: 662
  • Карма: 12
  • Skype: pashin.evgeniy
Re: Создать Отличительный знак.
« Ответ #11 : 22-10-2015, 11:16:19 »
Что касается Extensible Storage, добавлять данные можно, а защитить их от удаления возможно?

Уже узнал - нет!
« Последнее редактирование: 25-11-2015, 13:25:59 от Пашин Евгений »