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

11/02/2014

Внутренние имена функций в утилите DependencyWalker

Утилита Dependency Walker, доступная www.dependencywalker.com, является “бесплатной утилитой, которая (…) выводит список всех функций, которые экспортируются модулем, и которые могут вызываться другими модулями”.

Для нас это представляет интерес для программирования AutoCAD так как некоторые API недоступны и/или недокументированы, но экспортируются из кода на C++. В этом случае в .NET для вызова этого кода нужно воспользоваться атрибутом DllImport.

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

Свойства VDF на стороне клиента

В статье рассматриваются интересные возможности VDF: клиентские свойства, с которыми - в отличии от серверных - вы вряд ли знакомы
Опубликовано 11.02.2014     Читать далее >>>
11/02/2014

Используйте | "OR" с DefaultAcquisitionOption для скачивания и получения при помощи AcquireFiles

Любопытная недокументированное возможность функции скачивания файла Vault SDK
Опубликовано 11.02.2014     Читать далее >>>
08/02/2014

Удаление неиспользуемых опорных плоскостей

Как-то во время проведения тренинга по Revit API, участники тренинга придумали вопрос, решение которого можно использовать для демонстрации использования FilteredElementCollector. В результате получилось вполне полезная команда. Необходимо было удалить все опорные плоскости, которые не содержат ни одного элемента. Так я создал команду DeleteUnnamedNonHostingReferencePlanes.

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

Опубликовано 08.02.2014     Читать далее >>>
07/02/2014

Программное определение дублированных имен .NET команд

Неприятен факт связанный с атрибутом CommandMethod в AutoCAD .NET сборке: в нем может быть две разных команды имеющих одно имя но разные методы. Например, как в следующем коде:
Опубликовано 07.02.2014     Читать далее >>>
05/02/2014

Настройки видимости с использованием параметра GEOM_VISIBILITY_PARAM

В статье обсуждается полезный и интересный пример с форума Revit API, в котором принимали участие  Remy van den Bor из компании ICN Solutions, Rudolf Honke из Mensch und Maschine acadGraph, а также Joe Ye и команда разработчиков Revit. В теме обсуждалось как можно задать настройки видимости элемента в редакторе семейств.

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

Мастер надстроек Autodesk Vault для Visual Studio

Даниэль Ду (Daniel Du) из ADN создал мастера для Visual Studio 2012? который создаёт и настраивает проект надстройки Vault. Если вы используете Vault API, вы просто обязаны попробовать его.
Опубликовано 04.02.2014     Читать далее >>>
04/02/2014

Сохранение собственных значений на уровне dwg-файлаАвтор: Александр Ривилис

Вопрос:
Есть необходимость хранить в чертеже (dwg-файле) информацию, относящуюся ко всему чертежу. Формат информации – целые или вещественные числа, строки и координаты точек. Необходимо обеспечить соответствие имени переменной (например, Scale) и его значению (например, 1.0). Как это проще и удобнее всего сделать.

Ответ:
Для таких целей удобнее всего использовать Named Object Dictionary (NOD):

Для этой цели в корневом словаре мы создаем дочерний словарь с именем заданным переменной appName и внутри него для каждой из созданных переменных с именем varName будем хранить их значения varValue в примитиве XRecord.

Опубликовано 04.02.2014     Читать далее >>>
03/02/2014

Гиперссылки для атрибутов блоков

В настоящее время гиперссылка для вставки блока не отображается в атрибутах этой вставки блока. Единственный способ, чтобы у атрибутов отображалась гиперссылка – это установить эту гиперссылку для всех атрибутов этого блока, как показано в следующем коде.
Опубликовано 03.02.2014     Читать далее >>>
31/01/2014

Получение/установка путей изображений с помощью .NET API

Для получения и установки путей к файлу изображения используются свойства SourceFileName и ActiveFileName объекта RasterImageDef.

Вот пример кода изменяющий пути к файлу изображения

Опубликовано 31.01.2014     Читать далее >>>
31/01/2014

Пакетное добавление/редактирование элементов Autodesk PLM 360

Рассматриваются вопросы наиболее корректного механизма добавления/редактирования элементов в Autodesk PLM 360.
Опубликовано 31.01.2014     Читать далее >>>
30/01/2014

Легкое создание кнопок на ленте для вызова внешних командАвтор: Виктор Чекалин

Создавая собственную внешнюю команду в интерфейсе Revit ее можно вызвать двумя способами:

Описать внешнюю команду в файле манифеста addin

Код - XML: [Выделить]
 <?xml version="1.0" encoding="utf-8"?>

<RevitAddIns>

  <AddIn Type="Command">

    <Text>Command PipeCreation</Text>

    <Description>Some description for PipeCreation</Description>

    <Assembly>PipeCreation.dll</Assembly>

    <FullClassName>PipeCreation.Command</FullClassName>

    <ClientId>da5307a6-0182-4f28-8387-dd0de47446ec</ClientId>

    <VendorId>ADNCIS</VendorId>

    <VendorDescription>http://adn-cis.org </VendorDescription>

  </AddIn>

</RevitAddIns>

В этом случае Revit автоматически добавит команду в раскрывающийся список Внешние инструменты на вкладке Надстройки

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

Как вставить растровое изображение с помощью .NET API?

Чтобы вставить растровое изображение необходимо сначала создать определение растрового изображения, так как растровое изображение – это только ссылка на определение растрового изображения. Следующий код показывает как открыть существующее определение изображения (т.е.. MY_IMAGE_NAME), а если его нет – создать его и затем создать ссылку на него.
Опубликовано 29.01.2014     Читать далее >>>
27/01/2014

Обновление и модификация растрового изображения

Следующий код показывает как следует модифицировать/обновлять источник растрового изображения. Код просит пользователя указать растровое изображение и находит определение растрового изображения. Обратите внимание, что изменение определения растрового изображения приводит к изменению всех связанных растровых изображений.
Опубликовано 27.01.2014     Читать далее >>>
26/01/2014

Создание трубы с помощью метода Pipe.CreateАвтор: Виктор Чекалин

В статье создание наклонного сегмента между двумя трубами Джереми столкнулся с проблемой создания трубы с помощью метода Pipe.Create.

Статический метод Pipe.Create появился в Revit API 2014 на замену методу Document.Create.NewPipe.

Метод принимает следующие параметры:

  • document. Проект, в котором нужно создать трубу.
  • systemTypeId. Идентификатор типа системы.
  • pipeTypeId. Идентификатор типа трубы.
  • levelId. Идентификатор уровня, на котором нужно создать трубу.
  • firstPoint. Координаты начала трубы
  • secondPoint. Координаты окончания трубы.
Опубликовано 26.01.2014     Читать далее >>>
24/01/2014

Как масштабировать неравномерно по осям изображение, чтобы заполнить область?

Растровые изображения относятся к категории примитивов, которые поддерживают неравномерное масштабирование по осям.
Опубликовано 24.01.2014     Читать далее >>>
23/01/2014

Простое создание наклонного сегмента трубопровода с отводами

Продолжу свою работу по созданию наклонного сегмента трубопровода. Мы рассмотрели уже следующие темы, связанные с этой задачей: вычисление длины наклонного сегмента, создание трубы, соединение всех труб в одну систему, а также собственную реализацию программного создание отводов.

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