ADN Open CIS
Сообщество программистов Autodesk в СНГ

18/05/2016

Значения атрибутов из раскрывающегося списка

Я периодически получаю запросы от разработчиков, которые хотят задать свой собстенный набор значений параметров для использования их в надстройках и для ограничения выбора возможных значений в ползовательском интерфейсе.

Внутренне, в Revit такой механизм реализован, например, используя отрицательные значения ElementId для раскрывающихся списков.

На саомо деле это уже давнее пожелание, которое, к сожалению, так и остается нериализованным.

Но, Marcelo Quevedo из компании hsbcad  недавно столкнулся опять с этой проблемой и предложил два обходных пути для решения этой проблемы:

Значения параметров из раскрывающегося списка

Со слов Marcelo:

Нам нужно создать раскрывающийся список значений параметров для наших семейств на подобие перечислений в C#. Например, такой набор:

Параметр 1: Ориентация со следующими возможными значениями параметров:

  • Параллельно оси X
  • Перпендикулярно оси X
  • Параллельно оси Y
  • Перпендикулярно оси Y
  • Параллельно оси Z
  • Перпендикулярно оси Z

Параметр 2: Фигура:

  • Квадрат
  • Круг
  • Овал

Мы нашли два возможных решения, но оба они не совершенны.

1. Использвание вложенных семейств и типов

Для этого способа мы создали вложенные семейства Категории Обобщенная модель для каждого значения списка (одно для ориентации и одно для фигуры). Мы создали типоразмеры этиз семейств и назвали из в соответствии с желаемыми значениями списка. В добавлок, мы добавили два параметра семейтва: один – Ориентация и связали его с соответсвующим семейством, второй – Фигура и также связали его с семейством. Однако, проблема в том, что  параметр типа семейства категории Обобщенная модель  связывает категории и отображаются все вложенные Обощенные модели в качестве возможных значений.

Было бы лучше, если была бы возможность связать параметр с конкретным вложенным семейством, а не с категорией.

Вот скриншот результатов:

 2.       Использование числовых значений и подсказок

Для реализации второо способа мы создали числовые параметры и задали подсказки для них с описанием каждого значения параметра.

Например, для параметра Ориентация мы создали соответсвующий числовой параметр и задали вот такую подсказку:

  1. Параллельно оси X
  2. Перпендикулярно оси X
  3. Параллельно оси Y
  4. Перпендикулярно оси Y
  5. Параллельно оси Z
  6. Перпендикулярно оси Z

Результат в итоге выглядит так:

 

Надеюсь, это окажется полезным.

Источник: http://thebuildingcoder.typepad.com/blog/2015/11/drop-down-enumerated-parameter-values.html

Автор перевода: Виктор Чекалин

Обсуждение: http://adn-cis.org/forum/index.php?topic=

Опубликовано 18.05.2016