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

29/12/2014

Текстуры для произвольной фигуры

Вопрос: Можно ли задать текстуру (материал) для произвольной фигуры?

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

Создание зависимостей труб по осевой линии

Заказчик хочет использовать Revit API для создания зависимостей двух труб по центру их осей. Я думаю, это вполне осуществимо, и вот такой у меня родился план действий:

  • Получить осевую линию труб с помощью метода Element.get_Geometry()
  • Создать новую зависимость методом Document.Create.NewAlignment()
Опубликовано 27.12.2014     Читать далее >>>
25/12/2014

Категории для произвольной фигуры

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

Код - C#: [Выделить]
  ElementId id = new ElementId(

    BuiltInCategory.OST_StructuralFraming );

 

  DirectShape ds = DirectShape.CreateElement(

    doc, id, "A", "B" );

А могу ли я создать свою категорию и использовать ее при создании фигуры?

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

Поворот на Пи

Вопрос: Я пытаюсь создать приложение, которое переведет модель из SolidWorks в Revit. Идея состоит в том, чтобы перерисовать модель SolidWorks в Revit.

Я столкнулся с очень странным поведением метода ElementTransformUtils.RotateElement, и мне интересно, сталкивались вы с этим или может у вас есть какие мысли по этому поводу.

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

Пересечение всех экземпляров семейств с элементом

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

Ответ: В Revit API нет метода, который позволили бы определить отношения между колоннами и стеной.

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

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

Вчера мы обсуждали как создать размер между центрами семейств. Код команды, переведённый в том примере, довольно небольшой.

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

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

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

Создание размера между центрами семейств

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

А как можно создать размер между центрами этих семейств?

Опубликовано 13.12.2014     Читать далее >>>
29/11/2014

Как получить все уровни, упорядоченные по высоте

Вопрос: Как я могу получить коллекцию уровней, отсортированную по высоте уровня? Пока что мне кажется, что FilteredElementCollector возвращает IEnumerable и его можно отсортировать с помощью OrderBy, затем, вызвав метод ToElementIds(), то будет создан набор идентификаторов, в уже нужном порядке. Верно?

Вот код, который я попробовал. Он не работает:

Код - C#: [Выделить]
  UIDocument uiDoc = this.ActiveUIDocument;

  Document doc = uiDoc.Document;

 

  FilteredElementCollector levCollector

    = new FilteredElementCollector( doc );

 

  ICollection<Element> levelsCollection

    = levCollector.OfClass( typeof( Level ) )

      .OrderBy( lev => lev.Elevation )

      .ToElementIds();

Кто-то может мне подсказать, что я делаю не так?

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

Проблема с экспортом в Navisworks

Вопрос: Я пишу надстройку, в которой мне надо экспортировать модель.

Проблема в том, что тот же самый код работал замечательно в Revit 2014, но в 2015 диалог экспорта в NWC просто зависает.

Кто-нибудь знает, что за изменения были сделаны в методе Document.Export, что он теперь не работает в новой версии?

Ответ: Я попробовал экспортировать модель в NWC как в 2014 Revit так и в 2015 Revit с помощью простенького кода. В обоих случаях не возникло никаких проблем. Можете предоставить код, в котором вы делаете экспорт? Кстати сначала я столкнулся с проблемой, что в Revit 2015 не было возможности экспорта в Navisworks, но после того как я это исправил, диалог с экспортом появился и модель была экспортирована, как и ожидалось.

Опубликовано 28.11.2014     Читать далее >>>
27/11/2014

Использование групп транзакций для освобождения элементов без сохранения или синхронизации

Вопрос: У меня есть файл, открытый в Revit и который я изменяю своей надстройкой. Могу ли я программно закрыть файл без синхронизации, сохранения и оставления элементов заимствованными текущим пользователем?

 

Есть возможность освободить не редактированные элементы с помощью метода WorksharingUtils.RelinquishOwnership. Но этот метод не освобождает редактируемые элементы.

Документация к методу Document.Close также не содержит информации о том, как освободить элементы.

Есть ли какой-нибудь способ добиться желаемого результата, без сохранения или повторного открытия той же самой модели?

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

Сохранение семейства после его редактирования с помощью FamilyManager

Вопрос: Мы разрабатываем надстройку, в которой мы выгружаем файлы семейства в базу данных.

 

Сначала мы добавляем в семейство несколько общих параметров с помощью метода FamilyManager.AddParameter().

Все работает неплохо, до тех пор, пока мы не вызываем метод UploadOriginal в котором мы пытаемся сохранить измененное семейство в файл:

Код - C#: [Выделить]
  string path = Path.GetTempPath();

  string name = family.Name;

  string fName = name + ".rfa";

  string fPath = path + fName;

 // Revit выбрасывает исключение на этой строчке

// С описанием, что семейство не редактируемое.

// Почему так?

// Чтобы выгрузить семейство, мне его нужно сохранить предварительно,

// но мешает ошибка.

  Document famDoc = doc.EditFamily( family );

  famDoc.SaveAs( fPath );

  famDoc.Close( false );

 

  // остальной код...

Что может являться причиной этой ошибки?

Опубликовано 26.11.2014     Читать далее >>>
24/11/2014

Переименование общего параметра

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

Опубликовано 24.11.2014     Читать далее >>>
19/11/2014

Получить ImageType импортированного изображения

Вопрос: Возможно ли получить объект ImageType из изображения, которое было вставлено в Revit с помощью метода Document.Import?

Ответ: Да, только не совсем явным способом.

Метод для импорта изображения выглядит так:

Код - C#: [Выделить]
  bool Import(

    string file,

    ImageImportOptions options,

    View view,

    out Element element);

С помощью этого метода мы можем только получить объект типа Element, который не содержит каких-либо параметров. Я просмотрел этот объект с помощью утилиты RevitLookup и не нашел там ничего полезного, в том числе и ImageType.

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

Метод GetCameraInfo

Вопрос: Есть ли способ программно получить информацию о положении камеры в Revit?

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

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

Создание наклонной стены

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