Можно ли редактировать системные семейства с помощью REVIT API?

Автор Тема: Можно ли редактировать системные семейства с помощью REVIT API?  (Прочитано 14131 раз)

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

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

  • ADN OPEN
  • Сообщений: 13
  • Карма: 0
Добрый день. возник вопрос можно ли редактировать системные семейства с помощью REVIT API( в частности хотя бы добавить в параметры формулы для вычисления)? В revit не получается редактировать семейства воздуховодов ,труб и пр.Можно в эти семейства добавить параметры, но в них можно вбить только текст, если попробовать забить элементарную формулу типа "=5+6" то revit выдаст ошибку. Чтобы пояснить зачем это нужно, в вентиляции толщина воздуховода зависит от размера наибольшей стороны воздуховода.Мне бы хотелось добавить 2 параметра в которые вбить формулы: 1 параметр "размер наибольшей стороны" который по формуле через if then else будет вычислять наибольшую сторону воздуховода, и второй параметр "толщина воздуховода" который опять через множественное if then else будет вычислять толщину воздуховода.

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

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
goblya, скажем так, если это можно сделать через пользовательский интерфейс, то можно и с помощью Revit API.
Редактировать системные семейства нельзя. В Общий Параметр простую формулу написать можно, если у параметра стоит соответствующий тип данных. А вот при попытке использовать значение параметра получим ошибку.
« Последнее редактирование: 12-02-2015, 14:11:23 от Виктор Чекалин »

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

  • ADN OPEN
  • Сообщений: 13
  • Карма: 0
goblya, скажем так, если это можно сделать через пользовательский интерфейс, то можно и с помощью Revit API.
это и ежу понятно, просто некоторые вещи можно с помощью программирования ,которые с помощью пользовательского интерфейса нельзя. вот яркий пример тому (правда это касается lisp и autocad) http://forum.dwg.ru/showthread.php?t=24597.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
правда это касается lisp и autocad
В этом грандиозная разница между Revit и AutoCAD.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Revit в этом плане отличается. До не давнего времени в Revit API действительно нельзя было сделать больше, чем через пользовательский интерфейс. Сейчас появились вещи типа ExtensibleStorage, DataStorage, DirectShape, которые нельзя создать в интерфейсе, но можно с помощью API.

Что касается системных семейств, то тут вряд ли когда-либо появится возможность расширения с помощью API. Причина лежит глубоко в исходниках Revit и я подозреваю что уже сильно много завязано на существующую архитектуру.

Единственная возможность задать вычисляемый параметр для встроенных семейств - использовать его в калькуляции.
Хотя нет. Не единственный.

Можно создать общий параметр, недоступный для редактирования. С помощью Dynamic Model Updater вычислять его значение.