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

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     Читать далее >>>
05/02/2014

Настройки видимости с использованием параметра GEOM_VISIBILITY_PARAM

В статье обсуждается полезный и интересный пример с форума Revit API, в котором принимали участие  Remy van den Bor из компании ICN Solutions, Rudolf Honke из Mensch und Maschine acadGraph, а также Joe Ye и команда разработчиков Revit. В теме обсуждалось как можно задать настройки видимости элемента в редакторе семейств.

Опубликовано 05.02.2014     Читать далее >>>
30/01/2014

Легкое создание кнопок на ленте для вызова внешних командАвтор: Виктор Чекалин

Создавая собственную внешнюю команду в интерфейсе Revit ее можно вызвать двумя способами:

Описать внешнюю команду в файле манифеста addin

Код - XML: [Выделить]
 <?xml version="1.0" encoding="utf-8"?>

<RevitAddIns>

  <AddIn Type="Command">

    <Text>Command PipeCreation</Text>

    <Description>Some description for PipeCreation</Description>

    <Assembly>PipeCreation.dll</Assembly>

    <FullClassName>PipeCreation.Command</FullClassName>

    <ClientId>da5307a6-0182-4f28-8387-dd0de47446ec</ClientId>

    <VendorId>ADNCIS</VendorId>

    <VendorDescription>http://adn-cis.org </VendorDescription>

  </AddIn>

</RevitAddIns>

В этом случае Revit автоматически добавит команду в раскрывающийся список Внешние инструменты на вкладке Надстройки

Опубликовано 30.01.2014     Читать далее >>>
26/01/2014

Создание трубы с помощью метода Pipe.CreateАвтор: Виктор Чекалин

В статье создание наклонного сегмента между двумя трубами Джереми столкнулся с проблемой создания трубы с помощью метода Pipe.Create.

Статический метод Pipe.Create появился в Revit API 2014 на замену методу Document.Create.NewPipe.

Метод принимает следующие параметры:

  • document. Проект, в котором нужно создать трубу.
  • systemTypeId. Идентификатор типа системы.
  • pipeTypeId. Идентификатор типа трубы.
  • levelId. Идентификатор уровня, на котором нужно создать трубу.
  • firstPoint. Координаты начала трубы
  • secondPoint. Координаты окончания трубы.
Опубликовано 26.01.2014     Читать далее >>>
23/01/2014

Простое создание наклонного сегмента трубопровода с отводами

Продолжу свою работу по созданию наклонного сегмента трубопровода. Мы рассмотрели уже следующие темы, связанные с этой задачей: вычисление длины наклонного сегмента, создание трубы, соединение всех труб в одну систему, а также собственную реализацию программного создание отводов.

Опубликовано 23.01.2014     Читать далее >>>
21/01/2014

Явное создание отводов при создании наклонного сегмента трубопровода

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

В завершении рассмотрим создание и вставку соответствующих фитингов.

Опубликовано 21.01.2014     Читать далее >>>
18/01/2014

Присоединение наклонного сегмента трубопровода к соседним трубам

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

Следующий шаг состоит в том, что нужно корректно соединить все трубы в единую систему.

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

К сожалению, мое предположение было ошибочным.

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

Создание наклонного сегмента между двумя трубами

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

Сразу же возникает очевидный вопрос: «отлично. Но только как же теперь вставить реальный сегмент трубы, вместо того, чтобы просто отобразить линию, отображающую результат расчета сегмента?».

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

Расчет длины наклонного сегмента между двумя трубами

В посте мы обсудим интересную команду, связанную с MEP, которую я реализовал для вычисления наклонного сегмента на хакатоне CASE BIM на AU по предложению Гарри Маттисона (Harry Mattison) и Мэтью Нельсона (Matthew Nelson).

 

Команда вычисляет длину сегмента между двумя выбранными трубами и создает видимую линию в модели, для визуализации результата.

Опубликовано 09.01.2014     Читать далее >>>
07/01/2014

Как получить ссылку (Reference) центра дуги

Вопрос: Как можно получить доступ к ссылке на центр дуги?

 

Работая с выдавливанием в файле семейства, можно получить доступ к его эскизу и геометрии каждого элемента выдавливания, например, с помощью вот такого кода на Managed C++:

Код - C++: [Выделить]
  Extrusion ^ext = createExtrusion(...)

  CurveArrArray ^sketchCvArrArr = ext->Sketch->Profile;

  for each( CurveArray ^oneCvLoop in sketchCvArrArr )

  {

    for each( Curve ^oneSketchCv in oneCvLoop )

    {

      // ...

    }

  }

Опубликовано 07.01.2014     Читать далее >>>
31/12/2013

Доступ к определениям общих параметров проектаАвтор: Виктор Чекалин

Работая со статьей Определение типа общего параметра я вспомнил об одной проблемке, с которой я сам сталкивался при работе с общими параметрами проекта.

Мне нужно было определить, есть ли в проекте общий параметр с определенным GUID или именем и в случае если такой есть в проекте, то удалить его из списка общих параметров проекта. Предпочтительней конечно по GUID, так как параметров с одинаковым именем может быть несколько.

Опубликовано 31.12.2013     Читать далее >>>
30/12/2013

API для работы с семействами. Типоразмеры вложенного семейства, поиск типоразмеров и экземпляров семейства

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

В последней части мы рассмотрим следующие темы:

  • Поиск определенных типоразмеров в проекте
  • Поиск определенных экземпляров конкретного семейства
  • Отображение типоразмеров семейства Дверь
  • Изменение типоразмера вложенного семейства.
Опубликовано 30.12.2013     Читать далее >>>
27/12/2013

API для работы с семействами. Создание типоразмеров. Выделение и изменение экземпляров семейства

Добро пожаловать во втроую часть подробного обсуждения API для работы с семействами.

Основная функциональность работы с семействами была представлена Стивеном Кэмпбелом (Steven Campbell) в его докладе Ключевые концепции при работе с семействами на Revit DevCamp в Москве. Первую часть статей по работе с семействами можете прочитать здесь.

Будет еще и третяя заключительная часть, которую мы рассмотрим чуть позднее.

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