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

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

Получение угла поворота и оси из матрицы AcGeMatrix3d

Метод AcGeMatrix3d::rotation возвращает новую матрицу с определенным углом поворота. А как из существующей матрицы получить угол поворота? Следующий код это делает.

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

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

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

Включение шрифтов и других файлов при использовании eTransmit API

Недавно мой коллега спросил меня о возможности найти все шрифты и другие файлы, которые включаются в комплект при использовании eTransmit API. Чтобы сконфигурировать, что именно будет сочтено в качестве зависящих компонентов когда чертеж добавляется в операцию TransmittalOperation, требуется настроить TransmittalInfo.
Опубликовано 27.10.2014     Читать далее >>>
26/10/2014

Формы внутри асинхронных команд внутри AutoCAD

Возможно вы уже попробовали очень приятную возможность асинхронного выполнения (async) в .NET 4.5

Когда внутри асинхронной команды AutoCAD 2015 мы используем формы, часто случается, что контекст синхронизации не восстанавливается корректно после закрытия формы. Это часто провоцирует непредсказуемое поведение. Например, результат работы Editor.WriteMesage не отображается в командной строке.

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

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