Параметры по типоразмеру

Автор Тема: Параметры по типоразмеру  (Прочитано 23771 раз)

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

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

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Re: Параметры по типоразмеру
« Ответ #30 : 08-04-2015, 15:09:04 »
Ярослав, код я не проверял с надеждой, что здесь все очевидно. Оказалось не так.
Выходит даже не смотря на то, что элемент имеет категорию, FilteredElementCollector его не находит.
Поковыряюсь еще и возможно задав вопрос в техподдержку Autodesk.

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

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Re: Параметры по типоразмеру
« Ответ #31 : 09-04-2015, 13:35:31 »
Ярослав, так и не удалось мне получить эти семейства. Написал вопрос в техподдержку. Жду ответ.

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

  • ADN OPEN
  • **
  • Сообщений: 82
  • Карма: 1
Re: Параметры по типоразмеру
« Ответ #32 : 09-04-2015, 18:05:28 »
Так вот, я тоже все что нашел, перепробовал!!
В какую сторону смотреть не знаю?!?!

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

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Re: Параметры по типоразмеру
« Ответ #33 : 09-04-2015, 18:08:50 »
Ярослав, получил ответ от техподдержки. Смотреть в сторону Revit 2016. Там появилась возможность получить доступные значения параметров, у которых тип 'Типоразмер'. Ожидать, что это будет исправлено в Revit 2015 - не стоит.
« Последнее редактирование: 10-04-2015, 07:12:29 от Виктор Чекалин »

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

  • ADN OPEN
  • **
  • Сообщений: 82
  • Карма: 1
Re: Параметры по типоразмеру
« Ответ #34 : 09-04-2015, 23:01:58 »
Это просто... нету слов!)
Сначала CopyNumber , теперь это.
И это я только 2 надстройки попытался написать.
Как с этим живут более продвинутые пользователи??!!
Боюсь даже дальше что нибудь загадывать, чтоб запрограммировать!

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

  • ADN OPEN
  • **
  • Сообщений: 82
  • Карма: 1
Re: Параметры по типоразмеру
« Ответ #35 : 10-04-2015, 10:29:25 »
Ну если семейство подписи зделать общим то можно через FilteredElementCollector его найти.
А можно ли как то получить его ElementID?
Если использовать просто ID, он его не воспринимает.
И даже в RеvitLookup у него есть ElementID и ID.

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

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Re: Параметры по типоразмеру
« Ответ #36 : 10-04-2015, 10:35:54 »
И даже в RеvitLookup у него есть ElementID и ID.
А разве это не одно и то же?

А можно ли как то получить его ElementID?
Если использовать просто ID, он его не воспринимает.
Приведите код. Что то опять не то делаете. Если получили через элемент, то взять его ID не составит проблем.

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

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Re: Параметры по типоразмеру
« Ответ #37 : 10-04-2015, 10:37:58 »
Сначала CopyNumber , теперь это.
И это я только 2 надстройки попытался написать.
Как с этим живут более продвинутые пользователи??!!
Боюсь даже дальше что нибудь загадывать, чтоб запрограммировать!
С CopyNumber я думаю это просто настолько редкий случай его использования, то никто о нем и не беспокоился.
А что касается текущей проблемы, то я бы сказал, что очень даже повезло, что в следующей версии этот недостаток уже исправили.

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

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Re: Параметры по типоразмеру
« Ответ #38 : 10-04-2015, 11:21:44 »
Если использовать просто ID, он его не воспринимает.
Попробовал с вашим файлом по ID все замечательно работает и значение параметра меняется.
Код - C# [Выбрать]
  1.                         var selectedElements = uidoc.Selection.GetElementIds();
  2.                         var firstId = selectedElements.FirstOrDefault();
  3.  
  4.                         var element = uidoc.Document.GetElement(firstId);
  5.                        
  6.                         var param2 = element.GetParameters("Строка 2 подпись").FirstOrDefault();
  7.                         var param3 = element.GetParameters("Строка 3 подпись").FirstOrDefault();
  8.                        
  9.                         using (var t = new Transaction(uidoc.Document, "Изменение параметра"))
  10.                         {
  11.                              t.Start();
  12.                              var res1 = param2.Set(new ElementId(100445)); // меняет значение
  13.                              var res2 = param3.SetValueString("Билоус Я"); // не меняет значение
  14.                              t.Commit();
  15.                 }
« Последнее редактирование: 10-04-2015, 12:46:33 от Виктор Чекалин »

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

  • ADN OPEN
  • **
  • Сообщений: 82
  • Карма: 1
Re: Параметры по типоразмеру
« Ответ #39 : 10-04-2015, 15:07:28 »
Я говорил про ID подписи("Билоус Я"), а не основной надписи!
Чтоб ее найти по имени и найти ее ElementId.
НО!
У меня получилось.
Только вот как не хотелось, но пришлось подписи сделать основным семейством (теперь они доступны из "Диспечера проектов").
И :
Код - C# [Выбрать]
  1.  FilteredElementCollector coll1 = new FilteredElementCollector(doc);
  2.                         var genericAnnotations = coll1.
  3.                             OfCategory( BuiltInCategory.OST_GenericAnnotation)
  4.                            .OfClass(typeof(FamilySymbol));
  5.                         var valueElement = genericAnnotations.FirstOrDefault(x => x.Name == "Билоус Я") as FamilySymbol;
  6.                         if (valueElement != null)
  7.                         {
  8.                             ElementId elid = valueElement.Id;
  9.                             parame.Set(elid);
  10.                         }
« Последнее редактирование: 10-04-2015, 16:24:31 от Ярослав »

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

  • ADN OPEN
  • **
  • Сообщений: 82
  • Карма: 1
Re: Параметры по типоразмеру
« Ответ #40 : 10-04-2015, 15:11:34 »
Сначала CopyNumber , теперь это.
И это я только 2 надстройки попытался написать.
Как с этим живут более продвинутые пользователи??!!
Боюсь даже дальше что нибудь загадывать, чтоб запрограммировать!
С CopyNumber я думаю это просто настолько редкий случай его использования, то никто о нем и не беспокоился.
А что касается текущей проблемы, то я бы сказал, что очень даже повезло, что в следующей версии этот недостаток уже исправили.
Нет тут не в CopyNumber дело, а дело в том что Програма получается настолько сырая что их ГРОМКИЕ СЛОВА "Что можно сделать руками то и через API" просто не имеют смысла!
« Последнее редактирование: 10-04-2015, 16:27:33 от Ярослав »

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Параметры по типоразмеру
« Ответ #41 : 10-04-2015, 16:26:21 »
...а дело в том что Програма получается настолко сырая...

Напоминаю про пункт 3.9 Правил поведения на форуме!
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • **
  • Сообщений: 82
  • Карма: 1
Re: Параметры по типоразмеру
« Ответ #42 : 04-08-2015, 16:11:01 »
Ярослав, получил ответ от техподдержки. Смотреть в сторону Revit 2016. Там появилась возможность получить доступные значения параметров, у которых тип 'Типоразмер'. Ожидать, что это будет исправлено в Revit 2015 - не стоит.
Здравствуйте!
Подскажите в какую сторону теперь двигаться??
Как можно получить значения параметров, у которых тип "Типоразмер"??