DuctConnector. создание коннектора с помощью API

Автор Тема: DuctConnector. создание коннектора с помощью API  (Прочитано 2092 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ОлегАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 79
  • Карма: 0
Добрый день.
Подскажите как создать программно коннектор на конце вспомогательной линии только программным способом?
Когда создаешь коннектор вручную с помощью интерфейса то можно выбрать плоскость и вот у вспомогательной линии их 4 штуки. Две плоскости на концах. 
Нужно это автоматизировать и делать программно. Но проблема в том что программно там нет плоскостей и некуда положить (прикрепить) коннектор.

Как можно это сделать ?


Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Олег, добрый день.

При создании коннектора в интерфейсе есть возможность создания либо на Face либо на Work Plane


В случае с созданием коннектора на конце линии, она создается именно на рабочей плоскости, а не на поверхности элемента.

Для программного создания в Revit API есть метод CreateDuctConnector(Document, DuctSystemType, ConnectorProfileType, Reference). Важен последний параметр - куда и где будем помещать этот коннектор. Так вот, последним параметром может быть только ссылка на поверхность элемента, а не на рабочую плоскость. Метод создания коннектора на рабочей плоскости, к сожалению, отсутствует.

Оффлайн Алексей Кузин

  • ADN OPEN
  • ***
  • Сообщений: 116
  • Карма: 8
Смотря для чего всё это надо. Виктор Чекалин прав.
Но если задача позволяет, можно применить к примеру такое специфическое решение - создать на конце линии Solid. или очень маленький или сделать его невидимым. от него взять нужный фейс и прицепить коннектор.

Оффлайн ОлегАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 79
  • Карма: 0
Спасибо за ответы.
Это нужно для вот чего.
Из файла Аутокада DWG импортируется графика как DirectShape объекты.
Из них строятся семейства с типами.
Каждый тип имеет свой размер. И вот коннекторы должны находиться в нужных местах.
Соответственно меняя размер вспомогательной линии через дополнительный параметр я могу двигать коннектор.
И это должно происходить в автоматическом режиме.

Оффлайн Алексей Кузин

  • ADN OPEN
  • ***
  • Сообщений: 116
  • Карма: 8
я делал при импорте dxf по описанному мной выше алгоритму: создал solid и навесил на него коннектор. Хотя в моём случае были уже фейсы на которых это можно сделать, но не всегда они корректно приходили.
Если получится кодом корректно привязать solid к концу линии, чтобы он двигался совместно с концом линии, то метод может с работать, но могу сказать что это специфическое решение, так как появится лишний объект у семейства. Других идей нет...

Более просто сделать разные семейства, а не одно семейство с разными типами в этом случае. Но тут уже кому что.