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

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

Сохранение порядка отрисовки примитивов при операции клонирования блоков

WblockClone API не гарантирует сохранение порядка отрисовки примитивов (DrawOrder) при клонировании блоков, т.к. операция WblockClone – это очень низкоуровневая операция, которая только копирует примитивы. Так что программисту придется самому позаботится о сохранении порядка отрисовки примитивов в блоке при его клонировании.
Опубликовано 24.11.2014     Читать далее >>>
22/11/2014

Связывание клавиши помощи F1 с кнопкой на Ленте

Вопрос:

Я хотел бы, чтобы показывался мой chm-файл при нажатии клавиши F1 когда в подсказке кнопки на ленте появляется сообщение "Нажмите F1 для получения дополнительной справки.". Можно посмотреть пример как это сделать?

Ответ:

Свойства "HelpSource" и "HelpTopic" класса RibbonItem должны быть установлены для того, чтобы AutoCAD показал ваш chm-файл. "HelpSource" - это Uri к chm-файлу, а "HelpTopic" – это идентификатор темы (topic id) страницы в chm-файле.

Ниже кусок кода. Вы должны изменить строки "HelpSource" и "HelpTopic" для указания chm-файла у вас в системе и идентификатора темы в нём. Так же не забудьте подключить "AdWindows.dll" к своему проекту.

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

Как получить список всех масштабов аннотаций средствами .NET API?Автор: Александр Ривилис

Следующий код на C# показывает как это можно сделать:

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

Использование .NET API для добавления масштаба аннотаций в чертеж

Следующий код на C# показывает последовательность действий для добавления нового масштаба в список масштабов:
Опубликовано 21.11.2014     Читать далее >>>
20/11/2014

Лёгкое программирование под Autodesk Vault Часть 42

Свойства. Статья из Vault SDK. Часть 1
Опубликовано 20.11.2014     Читать далее >>>