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

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     Читать далее >>>
25/12/2013

Работа с семействами. Загрузка семейства и вставка экземпляра семейства

Начнем небольшую серию статей о работе с семействами и с редактором семейств с помощью Revit API.

Рассмотрим два главных аспекта работы с семействами с точки зрения программиста:

  1. Создание семейства. Т.е. работа с редактором семейства.
  2. Использование семейства. В большинстве случаев используются в файле проекта.

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

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

Определение типа общего параметра

В статье обсудим вопрос, который задали мне недавно, но его мы также обсуждали и ранее, о том как определить является ли параметр, из списка всех общих параметров проекта, параметром Типа или Экземпляра.

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

Создание цветовой области, похожей на область маскировки

Вопрос: Как можно программно создать область маскировки?

Ответ: К сожалению, в текущей версии API этого сделать нельзя.

Но есть и хорошая новость. В Revit 2013 API добавилась возможность создавать цветовую область.

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

Как получить экземпляры семейств в заданном помещении

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

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

Как и всегда, для доступа к элементам из базы данных Revit воспользуемся классом FilteredElementCollector.

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

Изменение рабочего набора элемента

Мы уже обсуждали как можно получить текущий рабочий набор у отдельного элемента либо с помощью встроенного параметра ELEM_PARTITION_PARAM, или более легким способом с помощью метода Document.GetWorksetId.

 

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

Однако хоть Revit API и содержит отдельное свойство для определения рабочего набора элемента, отдельного метода для изменения рабочего набора нет.

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

Группировка заголовков спецификации

Вопрос: Я пытаюсь сгруппировать заголовки спецификации с помощью метода ViewSchedule.GroupHeaders, но все время выскакивает ошибка: "Headers could not be grouped. Parameter name: right" (Заголовки не могут быть сгруппированы. Имя параметра: right)

Ответ: Действительно. Такая проблема существует. Мы уже обсуждали ее в прошлом и предлагали некоторые решения.

Опубликовано 04.12.2013     Читать далее >>>
28/11/2013

Локализация общих параметров

Создавая приложения и add-in'ы, необходимо помнить, что их могут использовать на компьютере с языком интерфейса отличным от вашего. Или в Revit c другим языком интерфейса.

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

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

Опубликовано 28.11.2013     Читать далее >>>
17/11/2013

Сокращенное наименование единиц измерения

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

В Revit 2014 появилось новое API для работы с единицами измерения, с помощью которого можно легко решить те проблемы, с которыми мы сталкивались ранее при работе с единицами измерения. И я еще до сих пор не изучил подробно все эти методы.

Опубликовано 17.11.2013     Читать далее >>>
16/11/2013

Обновление 2 для Revit 2014

На страничке Autodesk Revit опубликована информация о вышедшем втором обновлении для Revit 2014:

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

Как разместить равноудаленные друг от друга точки вдоль кривой

Как можно сгенерировать список точек, равноудаленных друг от друга, вдоль кривой?

На самом деле это довольно нетривиальная задача, так как Revit API содержит лишь методы для работы с кривыми основываясь на внутренней параметризации кривых, и не содержит методов для работы с кривыми в системе координат проекта.

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

Опубликовано 12.11.2013     Читать далее >>>
10/11/2013

Как определить месторасположение элемента из связанного файла в системе координат основного файла

Вопрос: Я все воюю со связанными файлами в Revit 2014.

Я прочитал статью Как вывести список элементов из связанного файла (на англ.) и она мне действительно очень помогла.

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

Скажем, есть у меня связанный файл, в котором находится только одна стена. В этом файле стена располагается в точке 100;100;0.

В основном файле, я поместил эту стену в точку 300;100;0.

Мне нужно определить расположение стены из связанного файла внутри основного файла. То есть я хочу получить координаты 300;100;0.

Как можно это сделать?

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