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

01/10/2015

Создание семейства в памяти

Вопрос: Когда создается новое семейство, то ему автоматически присваивается имя, которое можно увидеть в заголовке. Возможно ли изменить это имя и заголовок без сохранения файла? Я не хочу сохранять фал. Я просто хочу загрузить его сразу в другую модель.

 

Опубликовано 01.10.2015     Читать далее >>>
30/09/2015

Объединение геометрии стен и колонн

Я пытался найти в блоге пример использования объединения геометрии, но так и не смог. Собственно, вот он.

Опубликовано 30.09.2015     Читать далее >>>
30/09/2015

Перечисление элементов

Очень много людей используют FilteredElementCollector, например, вот так:

Код - C#: [Выделить]
  FilteredElementCollector collector

    = new FilteredElementCollector( doc );

 

  collector.OfClass( typeof( Family ) ).ToElements();

 

  IEnumerable<Family> nestedFamilies

    = collector.ToElements().Cast<Family>();

 

  String str = "";

 

  foreach( Family f in nestedFamilies )

  {

    str = str + f.Name + "\n";

 

    foreach( ElementId symbolId in

      f.GetFamilySymbolIds() )

    {

      Element symbolElem = doc.GetElement(

        symbolId );

 

      str = str + " типоразмер: "

        + symbolElem.Name + "\n";

    }

  }

Опубликовано 30.09.2015     Читать далее >>>
29/09/2015

Создание крыши

Изначально вопрос бы задан на форуме Revit API и Stack Overflow:

Вопрос: У меня проблема с программным созданием крыши. Я знаю, как создавать лестницы, к примеру, используя CreateSketchedLanding с корректными параметрами. Но вот как воздать крышу с нуля, не пойму. Может кто-нибудь направить меня в нужное русло?

Опубликовано 29.09.2015     Читать далее >>>
27/09/2015

Чтение общей площади зоны здания и площади офисных зон

Небольшой пример того, как читать площадь зон, являющихся общей площадью здания и офисной зоной. Начнем с получение объектов класса Area (зона), используя FilteredElementCollector и фильтр SpatialElement. Затем, AreaScheme и, если требуется, ограничим по уровню, на котором располагается зона. В итоге отобразим общую площадь зон по зданию и площадь офисных зон.

Опубликовано 27.09.2015     Читать далее >>>
27/09/2015

Закрытие активного документа

На форуме один из пользователей говорит, что он хочет закрыть активный документ и заново его открыть.

Опубликовано 27.09.2015     Читать далее >>>
27/09/2015

О геометрии в Revit и грани цилиндров

Вопрос: При обходе по граням, представляющим границы цилиндра, я обнаружил, что цилиндр имеет 2 плоских грани (верх и низ цилиндра) и две цилиндрических грани (два полуцилиндра). Я проверил еще несколько различных закругленных поверхностей в Revit и заметил, что все они поделены на 2 или 4 полу- или четверть-цилиндра. Почему так?

Опубликовано 27.09.2015     Читать далее >>>
22/09/2015

Отмена ограничений для VendorId

Опубликовано 22.09.2015     Читать далее >>>
22/09/2015

Нахождение конечных точек оси цилиндрического твердого тела

В недавнем запросе от разработчика потребовалось найти конечные точки оси цилиндрического твердого тела. Для этого требуется найти круглые ребра тела и найти их центры. Я вспомнил про элегантный образец кода Gilles Chanteauна форуме, который использует Linq запрос к BRep API здесь. Мы немного изменим его код чтобы получить концы осей цилиндра. Вот немного модифицированный код и благодарности Gilles.
Опубликовано 22.09.2015     Читать далее >>>
21/09/2015

Синхронизация свойств Vault для эквивалентности свойств

Рассматриваются особенности метода GetComponentProperties в Vault 2016 API
Опубликовано 21.09.2015     Читать далее >>>
20/09/2015

Получение данных о семействе и типоразмере элемента трубопроводной сетиАвтор: Дмитрий Загорулькин

Иногда нужно получить данные о семействе и типоразмере трубы или колодца, которые уже присутствуют на чертеже. Например - чтобы создать такой же элемент в другом месте сети. Метод создания трубы или колодца в сети требует указания ObjectId для семейства и типоразмера (из справки):

Опубликовано 20.09.2015     Читать далее >>>
18/09/2015

Устанавливаем ортографический вид без изменения ПСК

Вот предыдущая статья с подобной темой об установке ортографического вида. В приведённом коде есть ограничение, связанное с тем что модифицируется активная запись таблицы ВЭкранов (ViewportTableRecord) и после изменения вида имя текущей ПСК не отображается в Видовом Кубе. Когда же мы меняем вид при помощи Видового Куба и переключаемся на Вид Сверху – это меняет только вид, но не меняет текущую ПСК. Также оси X и Y соответственно выравниваются горизонтально и вертикально. Вот код, который позволяет добиться подобного поведения при помощи API. Он устанавливает направление вида вдоль оси +Z и выравнивает оси X и Y так же, как это делает Видовой Куб:

Опубликовано 18.09.2015     Читать далее >>>
17/09/2015

Особенности, характерные для Python - Часть 3

Особенности, Fusion 360 API, характерные для Python
Опубликовано 17.09.2015     Читать далее >>>
16/09/2015

Как удалить профиль вращения после создания тела вращения

Иногда я получаю запросы от партнеров ADN о том что:

“После использования AcDb3dSolid::createRevolvedSolid() образующая кривая вращения видна в твердом теле.”

Профиль используемый для вращения виден в твёрдом теле как показано на картинке.

Он может быть удалён при помощи метода cleanBody класса AcDb3dSolid, который удаляет все грани и ребра, которые не нужны для поддержки топологии твердого тела.

Опубликовано 16.09.2015     Читать далее >>>
15/09/2015

Особенности, характерные для Python - Часть 2

Особенности, Fusion 360 API, характерные для Python
Опубликовано 15.09.2015     Читать далее >>>
15/09/2015

Регистрация команды для функции обратного вызова UnknownCommand

Этот пример отвечает на множество вопросов по поводу функции обратного вызова unknownCommand и использования UnknownCommand.

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

В этом примере пользователь пытается ввести некоторую неизвестную команду, например, в функции обратного вызова, запущенной из реактора события unknownCommand, мы будем загружать наш "TestUknCom".

Опубликовано 15.09.2015     Читать далее >>>
12/09/2015

Создание новой ТП на трассе для трубопроводной сети в заданном пикетеАвтор: Дмитрий Загорулькин

С помощью инструментов пользовательского интерфейса редактирования трассы, мы легко можем добавить на нее точку пересечения (ТП). Однако в API Civil 3D 2013-2016 нет никакого готового метода, позволяющего выполнить то же самое программно. Мне же был крайне необходим такой метод для автоматизации работы с видами профилей трубопроводных сетей, поэтому пришлось разрабатывать его самостоятельно.
В общем случае, эта задача крайне непроста. Достаточно взглянуть на список возможных типов объектов, которые могут входить в состав трассы:

Опубликовано 12.09.2015     Читать далее >>>
12/09/2015

Устанавливаем текущий вид в ортографический вид

Ниже пример кода, устанавливающий текущий вид в вид "Справа". При помощи подобного кода вид может быть установлен в любой ортографический вид.
Опубликовано 12.09.2015     Читать далее >>>
11/09/2015

Как отобразить статус внешнего процесса в командной строке AutoCAD

Предположим, что у нас имеется .NET-команда, которая запускает внешний процесс, которому требуется много времени для выполнения. Пока мы ожидаем его завершения, мы можем вывести индикатор прогресса в командную строку.

Замечание: Следующая процедура доступна начиная с .NET 4.5, так как использует методы await и async.

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

Особенности, характерные для Python - Часть 1

Особенности, Fusion 360 API, характерные для Python
Опубликовано 10.09.2015     Читать далее >>>