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

ADN Club => Revit API => Тема начата: Олег от 16-07-2017, 14:54:03

Название: DuctConnector. создание коннектора с помощью API
Отправлено: Олег от 16-07-2017, 14:54:03
Добрый день.
Подскажите как создать программно коннектор на конце вспомогательной линии только программным способом?
Когда создаешь коннектор вручную с помощью интерфейса то можно выбрать плоскость и вот у вспомогательной линии их 4 штуки. Две плоскости на концах. 
Нужно это автоматизировать и делать программно. Но проблема в том что программно там нет плоскостей и некуда положить (прикрепить) коннектор.

Как можно это сделать ?
(https://s24.postimg.org/7okre2tkx/image.png) (https://postimg.org/image/7okre2tkx/)
Название: Re: DuctConnector. создание коннектора с помощью API
Отправлено: Виктор Чекалин от 03-08-2017, 13:02:25
Олег, добрый день.

При создании коннектора в интерфейсе есть возможность создания либо на Face либо на Work Plane
(https://s3.postimg.org/ma6m6d0pr/2017-08-03_1453.png) (https://postimg.org/image/ma6m6d0pr/)

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

Для программного создания в Revit API есть метод CreateDuctConnector(Document, DuctSystemType, ConnectorProfileType, Reference). Важен последний параметр - куда и где будем помещать этот коннектор. Так вот, последним параметром может быть только ссылка на поверхность элемента, а не на рабочую плоскость. Метод создания коннектора на рабочей плоскости, к сожалению, отсутствует.
Название: Re: DuctConnector. создание коннектора с помощью API
Отправлено: Алексей Кузин от 23-01-2018, 14:09:07
Смотря для чего всё это надо. Виктор Чекалин прав.
Но если задача позволяет, можно применить к примеру такое специфическое решение - создать на конце линии Solid. или очень маленький или сделать его невидимым. от него взять нужный фейс и прицепить коннектор.
Название: Re: DuctConnector. создание коннектора с помощью API
Отправлено: Олег от 23-01-2018, 14:47:56
Спасибо за ответы.
Это нужно для вот чего.
Из файла Аутокада DWG импортируется графика как DirectShape объекты.
Из них строятся семейства с типами.
Каждый тип имеет свой размер. И вот коннекторы должны находиться в нужных местах.
Соответственно меняя размер вспомогательной линии через дополнительный параметр я могу двигать коннектор.
И это должно происходить в автоматическом режиме.
Название: Re: DuctConnector. создание коннектора с помощью API
Отправлено: Алексей Кузин от 24-01-2018, 15:02:18
я делал при импорте dxf по описанному мной выше алгоритму: создал solid и навесил на него коннектор. Хотя в моём случае были уже фейсы на которых это можно сделать, но не всегда они корректно приходили.
Если получится кодом корректно привязать solid к концу линии, чтобы он двигался совместно с концом линии, то метод может с работать, но могу сказать что это специфическое решение, так как появится лишний объект у семейства. Других идей нет...

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