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

11/01/2015

Запись данных в расширяемую область хранения при импорте IFC

Вопрос: я успешно изменил модуль экспорта в IFC и добавил экспорт данных из расширяемой области хранения.

Сейчас мне нужно изменить модуль импорта IFC файла для записи этих данных обратно в расширяемую область хранения. Как это можно реализовать?

Опубликовано 11.01.2015     Читать далее >>>
10/01/2015

Двумерные координаты конечных точек кривой на 3D-виде

Мне всегда нравились вопросы по геометрии, даже если они достаточно простые. Этот вопрос возможно не такой уж и простой.

Вопрос: Я хочу получить двумерные координаты конечных точек кривой, находясь в 3D-виде.

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

Ошибка при создании арматурных стержней из кривых

Мы знаем, что создать арматуру можно с помощью нескольких перегруженных методов. Одним из них является метод CreateFromCurves:

Код - C#: [Выделить]
 public static Rebar CreateFromCurves(

    Document doc, RebarStyle style, RebarBarType barType,

    RebarHookType startHook, RebarHookType endHook, Element host,

    XYZ norm, IList<Curve> curves,

    RebarHookOrientation startHookOrient,

    RebarHookOrientation endHookOrient,

    bool useExistingShapeIfPossible, bool createNewShape);

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

Текстуры для произвольной фигуры

Вопрос: Можно ли задать текстуру (материал) для произвольной фигуры?

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

Создание зависимостей труб по осевой линии

Заказчик хочет использовать Revit API для создания зависимостей двух труб по центру их осей. Я думаю, это вполне осуществимо, и вот такой у меня родился план действий:

  • Получить осевую линию труб с помощью метода Element.get_Geometry()
  • Создать новую зависимость методом Document.Create.NewAlignment()
Опубликовано 27.12.2014     Читать далее >>>
25/12/2014

Категории для произвольной фигуры

Вопрос: Я хотел бы создать произвольные фигуры (DirectShape) для визуального отображения разлиных типов балок и поместить их в различные категории. Пока что я могу создать их только во встроенной категории, например, вот так:

Код - C#: [Выделить]
  ElementId id = new ElementId(

    BuiltInCategory.OST_StructuralFraming );

 

  DirectShape ds = DirectShape.CreateElement(

    doc, id, "A", "B" );

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

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

Разработка CRX приложений

Мы получили несколько общих вопросов от разработчиков использующих AcCoreConsole. Это два вопроса (и ответы любезно предоставленные членом нашей команды разработчиков AutoCAD) …

Вопрос 1: Какие библиотеки ObjectARX я могу прилинковать к моей DLL для загрузки в AcCoreConsole (или другого AcCore-продукта, который Autodeskможет выпустить в будущем)?

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

Быстрое получение количества примитивов в Пространстве Модели

LINQ предлагает легкий способ нахождения числа примитивов в Пространстве Модели без итерации по ней. Интерфейс IEnumerator обеспеченный классом BlockTableRecord может быть приведён к IEnumerable<ObjectId> для подсчета количества. Ниже пример кода :
Опубликовано 24.12.2014     Читать далее >>>
23/12/2014

Получение свойств и методов класса ActiveX/COM из .NET

Если вы используете COM-интерфейс AutoCAD или Inventor из .NET-приложения и хотите найти какие свойства и методы есть у объектов, то почитайте прекрасную статью (на английском), которая показывает, как это следует делать. Этот метод работает даже если ваш проект не ссылается на соответствующую библиотеку или сборку и вы используете позднее связывание:

Получение информации о типе имеющих IDispatch-интерфейс COM-объектов из управляемого кода

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

Уведомление в элементе статусной строки

В ObjectARX 2004 SDK был прекрасный пример на C++, который добавлял элементы в статусную строку и показывал уведомления для одного из этих элементов. Я выполнил миграцию этого примера для работы с AutoCAD 2015 и полный проект можно скачать здесь:

StatusBar

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

Просмотр чертежа в WPF палитре

Как мы уже знаем пример BlockView.Net демонстрирует использование Графической системы для просмотра чертежа на форме Windows. Этот пример для версии AutoCAD 2015 доступен здесь: http://adn-cis.org/izmeneniya-v-grafike-v-autocad-2015.html
Опубликовано 19.12.2014     Читать далее >>>
17/12/2014

Создание 3DSolid из набора SubDMesh

Если у вас имеется коллекция subDMesh и вы хотите создать из неё 3DSolid, сначала нужно сконвертировать каждую из сетей в поверхность. Если поверхности вместе образуют замкнутый объём, тогда из них можно создать твердое тело. Ниже пример кода:

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

Поворот на Пи

Вопрос: Я пытаюсь создать приложение, которое переведет модель из SolidWorks в Revit. Идея состоит в том, чтобы перерисовать модель SolidWorks в Revit.

Я столкнулся с очень странным поведением метода ElementTransformUtils.RotateElement, и мне интересно, сталкивались вы с этим или может у вас есть какие мысли по этому поводу.

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

Пересечение всех экземпляров семейств с элементом

Вопрос: Как я могу найти все колонны, которые пересекают заданную стену?

Ответ: В Revit API нет метода, который позволили бы определить отношения между колоннами и стеной.

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

Совет по миграции: ACAD2011\12 в 13\14\15

Этот совет связан не только с ACAD, но и с перспективами Visual Studio и будет полезен всем, кто использует шаблон CMap, где ключом является AcDbHandle&

CMap<AcDbHandle, AcDbHandle&, CString, CString> handleMap;

Я недавно получил запрос, когда программист получил сообщение об ошибке C2440: 'typecast' : cannot convert from 'AcDbHandle' to 'long' , хотя этот код прекрасно работает в компиляторе VS 90.0 compiler но дает ошибку в VS 100.0\110.0. После небольшого исследования я обнаружил, что изменился шаблон по-умолчанию

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

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

Вчера мы обсуждали как создать размер между центрами семейств. Код команды, переведённый в том примере, довольно небольшой.

Это обусловлено тем, что я использовал новый вспомогательный класс JtPairPicker, который помогает выбрать два элемента в модели.

Его можно использовать везде, где вам нужно автоматически или интерактивно в модели выбрать два элемента одного типа.

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

Создание размера между центрами семейств

Вопрос: Я знаю, как создать размер между гранями двух семейств.

А как можно создать размер между центрами этих семейств?

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