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

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

Как управлять Параметрами скрытых сообщений в .NETАвтор: Александр Ривилис

Вопрос:

В AutoCAD имеется ряд диалоговых окон, которые имеют метки, предотвращающие повторный вызов этих диалоговых окон в дальнейшем.

Например, диалоговое окно «Ссылки – необработанные файлы ссылок»:

В команде Настройка (OPTIONS) можно управлять видимостью этих диалоговых окон:

А можно ли управлять появлением этих диалоговых окон из AutoCAD .NET API?

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

Метод GetCameraInfo

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

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

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

Как добавить к Размеру Метку и/или Процент контроля (DIMINSPECT)?Автор: Александр Ривилис

Как добавить к Размеру Метку и/или Процент контроля (DIMINSPECT)?

Вопрос:

Необходимо к размеру в чертеже добавить Метку контроля средствами .NET API. Я прочитал статью Киана Уомсли : http://through-the-interface.typepad.com/through_the_interface/2008/09/more-quiet-comm.html В ней используется командный метод, но он не позволяет присвоить только Метку контроля без Процента контроля.

Ответ:

Есть несколько методов:

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

Разрешение конфликта имён при связывании внешней ссылки

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

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

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

Координаты точек в примитиве Облако точек

Для примитива PointCloud, созданного с использованием PCG файла, простейший способ для получения координат точек будет вставка пространственного фильтра при помощи метода acdbModifyPointCloudDataView. Для примитива PointCloud созданного из RCP файла, нужно вставить пространственный фильтр при помощи методаAcDbPointCloudEx::addSpatialFilter. Когда пространственный фильтр создан можно получить доступ ко всем координатам. Другой метод – использовать AcDbPointCloudEx::traverseAllPointData.
Опубликовано 12.11.2014     Читать далее >>>
10/11/2014

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

Инициализация AutoCAD UI из вашего метода .NET Initialize() не рекомендуется. Причина в том, что ваш .NET DLL может быть загружен при старте AutoCAD, и в этот момент определенным подсистемы AutoCAD (например, Лента, Палитры, COM и т.д.) еще не полностью инициализированы и обращение к ним может быть безуспешным.
Опубликовано 10.11.2014     Читать далее >>>
06/11/2014

Импортирование Палитры инструментов/Группы палитр из XTP/XPG файлов

Импортирование Палитры инструментов или Группы палитр инструментов из xtp и xpg файлов требует в AutoCAD взаимодействия с пользователем. Вот пример кода на ObjectARX для автоматизации этого. Часть кода получает информацию из xtp / xtg файлов при помощи чтения чистого XML документа. Этот код работает для простых файлов xtp и xpg, которые я использовал для тестов. Возможно потребуется дополнительная проверка и обработка ошибок в вашем конкретном случае.

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

Определение наличия имени приложения в расширенных данных примитива

Вы можете использовать метод GetXDataForApplication класса DBobject для определения наличия имени приложения в расширенных данных (Xdata). Следующий код показывает есть ли расширенные данные приложения "ADSK" у примитива или нет:

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