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

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

Экспорт геометрии элемента

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

Уровень для объекта SpatialElement

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

Изменение геометрии экземпляра семейства

Вопрос: Мне нужно изменить геометрию конкретного элемента в проекте. Похоже на то, что Revit API просто не позволяет это делать. Я разобрался с тем, как использовать метод Duplicate для создания нового типоразмера в проекте и затем задать новый типоразмер нужному мне экземпляру семейства. Но таким способом я могу лишь менять значение параметров в новом типоразмере. Мне же действительно нужно изменить именно геометрию. Я бы предпочел не использовать редактор семейств, для реализации моей задумки. Все дело в том, что я хочу сделать эти изменения в методе IUpdater.Execute. Есть ли способ сделать то, что мне требуется?

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