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

24/04/2014

Использование метода NewTakeOffFitting для создания врезки

Вопрос: В середине одного из воздуховодов моей MEP модели я хочу сделать врезку. В API для этого есть метод NewTakeOffFitting, который принимает 2 аргумента: коннектор и MEP-кривую (трубу, воздуховод, кабельные лотки) и возвращает созданный экземпляр семейства. Вопрос состоит в том, что я не пойму, как создать эту кривую и коннектор. Можете привести пример кода по созданию врезки с использованием этого метода? Спасибо

Опубликовано 24.04.2014     Читать далее >>>
14/04/2014

WPF Control для отображения штриховки поверхностей

Как-то я создавал контрол для отображения штриховки поверхностей и уже давным-давно забыл про него. Однако, мой бывший коллега, Александр Игнатович, поделился моими наработками с Джереми.

Опубликовано 14.04.2014     Читать далее >>>
14/04/2014

Добавление материалов из списка

Еще в далеком 2011 году мы обсуждали как импортировать материалы из файла Excel в Revit.

Входные данные хранились в файле Excel и содержали следующие параметры:

Наименование

  • Код
  • Название
  • Сила

Графика

  • Цвет в RGB
  • Прозрачность
  • Штриховка разреза
  • Штриховка поверхности

Идентификация

  • Класс
  • Информация о продукте
  • Пользовательские параметры
Опубликовано 14.04.2014     Читать далее >>>
13/04/2014

Создание наклонного перекрытия

Опубликовано 13.04.2014     Читать далее >>>
08/04/2014

BindingMap в редакторе семейства

Вопрос: В своей надстройке я добавляю общий параметр в семейство, находясь в редакторе семейств. Все работало замечательно, начиная с версии 2009. Но в Revit 2014 версии метод создания параметра падает с исключением: «Невозможно получить свойство BindingMap в редакторе семейств» (Cannot get BindingMap of a family document.)

Как оказалось, исключение происходит при попытке воспользоваться свойством Document.ParameterBindings.

Опубликовано 08.04.2014     Читать далее >>>
31/03/2014

Использование типизированных коллекций в фильтрах и формах

В сегодняшней теме обсудим использование типизированных коллекций для легкой и эффективной работы со списками элементов Revit в Windows Forms, а именно:

  • Извлечение всех печатных видов плана этажей из модели с помощью всего одной строчки кода
  • Извлечение всех выбранных видов плана этажей из списка на форме с помощью одной строки кода
Опубликовано 31.03.2014     Читать далее >>>
24/03/2014

Хранение пользовательских настроек плагина для Revit

Вопрос: Я ищу подходящий способ как сохранить пользовательские настройки для моего плагина.

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

Есть какая-нибудь инструкция, или может быть в Revit API существует подобная функциональность?

Опубликовано 24.03.2014     Читать далее >>>
23/03/2014

Использование всплывающих подсказок в надстройке Revit

Вопрос: Кто-нибудь знает можно ли использовать строку состояния для отображения своих собственных сообщений в любой момент? И если можно, то как?

Когда пользователю предлагается выбрать элементы или некую область, то строку состояния можно довольно легко задействовать:

Опубликовано 23.03.2014     Читать далее >>>
15/03/2014

Отсоединение балки от плоскости

Вопрос: В пользовательском интерфейсе с помощью контекстного меню балки есть команда «Отсоединить от плоскости». А как можно сделать то же самое, только программно?

После того, как я нажал правую кнопку на балке и выбрал «Отсоединить от плоскости», Revit удаляет параметр Рабочая плоскость, т.е. встроенный параметр BuiltInParameter.SKETCH_PLANE_PARAM, и делает активным параметр Базовый уровень, который до этого был только для чтения. Хотелось бы проделать эти действия с помощью Revit API.

Я попробовал удалить параметр Рабочая плоскость, но это не помогло. Свойство FamilyInstance.Host также является только для чтения, поэтому с помощью него не получится отсоединить балку от рабочей плоскости.

Есть ли способ отсоединить балку от плоскости программно?

Опубликовано 15.03.2014     Читать далее >>>
10/03/2014

Наименование системных семействАвтор: Виктор Чекалин

В Revit существует 2 типа семейств: пользовательские семейства и системные семейства. Пользовательские семейства в большинстве случаев являются редактируемыми и их можно сохранить в отдельный файл семейства (.rfa). С системными же семействами такое проделать не получится. Можно лишь создавать новые типоразмеры системных семейств.

Опубликовано 10.03.2014     Читать далее >>>
09/03/2014

RevitLookup. Исследуем базу данных RevitАвтор: Виктор Чекалин

В статьях я часто упоминаю о довольно полезной утилите – RevitLookup.

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

С помощью утилиты мы можем просмотреть:

  • Абсолютно все элементы, которые существуют в базе данных текущего проекта, включая те, которые пользователь никогда не увидит.
  • Значения всех свойств класса элемента.
  • Свойства приложения и открытых документов
  • Распечатать свойства элемента на принтере
Опубликовано 09.03.2014     Читать далее >>>
27/02/2014

Список элементов инженерной системыАвтор: Виктор Чекалин

Инженерная система в Revit API описывается классом MEPSystem.

Для того чтобы получить список всех элементов, входящих в систему, достаточно воспользоваться свойством MEPSystem.Elements.

Но, как оказалось, это свойство не всегда возвращает полный список элементов, принадлежащих системе.

Опубликовано 27.02.2014     Читать далее >>>
25/02/2014

Как получить значение BuiltInCategory для объекта класса CategoryАвтор: Виктор Чекалин

Категории в Revit API определяются двумя различными способами: классом Category и перечислением BuiltInCategory.

 

Если перечисление по сути представляет собой некое целочисленное значение, то класс Category содержит в себе более полную информацию, такую как наименование (локализованное название), подкатегории, а также методы для управления видимостью объектов категории на заданном виде.

Опубликовано 25.02.2014     Читать далее >>>
20/02/2014

Решение по созданию стены со смещением

Как вы знаете, при создании стены, ее осевая линия всегда располагается по середине стены.  Мы это обсуждали в статье Структурные слои стены.

Опубликовано 20.02.2014     Читать далее >>>
14/02/2014

Два различных типа соединений элементов

В Revit очень много элементов имеют взаимосвязь друг с другом.

Мы уже ранее затрагивали пару раз тему работы с объединением элементов:

Опубликовано 14.02.2014     Читать далее >>>
12/02/2014

Обработка ошибки при создании не валидного элемента с помощью Failure API

Мы уже ранее обсуждали примеры использования Failure API:

Вот еще одна немного запутанная ситуация, заставляющая нас снова вернуться к обсуждению этой темы с другого ракурса. Проблему озвучил Стефен Фауст (Stephen Faust) из компании Revolution Design, Inc.

Опубликовано 12.02.2014     Читать далее >>>
08/02/2014

Удаление неиспользуемых опорных плоскостей

Как-то во время проведения тренинга по Revit API, участники тренинга придумали вопрос, решение которого можно использовать для демонстрации использования FilteredElementCollector. В результате получилось вполне полезная команда. Необходимо было удалить все опорные плоскости, которые не содержат ни одного элемента. Так я создал команду DeleteUnnamedNonHostingReferencePlanes.

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

Опубликовано 08.02.2014     Читать далее >>>