Сообщество программистов Autodesk в СНГ
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
1 час
1 день
1 неделя
1 месяц
Навсегда
Новости:
Образовательный курс по платформе Autodesk Forge.
Начало
Сайт
Правила
Помощь
Поиск
Непрочитанные
Календарь
Вход
Регистрация
Сообщество программистов Autodesk в СНГ
»
ADN Club
»
Revit API
»
создать Round Duct
« предыдущая тема
следующая тема »
Печать
Страницы: [
1
]
Вниз
Автор
Тема: создать Round Duct (Прочитано 2507 раз)
0 Пользователей и 1 Гость просматривают эту тему.
Тема содержит сообщение с Решением.
Нажмите здесь чтобы посмотреть его.
Олег
ADN OPEN
Сообщений: 79
Карма: 0
создать Round Duct
«
:
05-02-2018, 12:28:09 »
Добрый день всем.
Вопрос может простой но я не смог сходу найти ответа.
Нужно в коде создавать круглые воздуховоды.
Подскажите пожалуйста куда смотреть ?
спасибо
Записан
Александр Пекшев aka Modis
ADN Club
Сообщений: 1658
Карма: 366
Отец modplus.org
Re: создать Round Duct
«
Ответ #1 :
05-02-2018, 12:36:59 »
Не пробовал сам, но могу предположить, что для круглого нужно задать диаметр, а прямоугольного - высоту и ширину. А Ревит там сам уже разберется.
Вот вроде похожая тема
.
Записан
ModPlus
Блог
Олег
ADN OPEN
Сообщений: 79
Карма: 0
Re: создать Round Duct
«
Ответ #2 :
05-02-2018, 12:38:19 »
спасибо. интересная мысль. счас проверю
Записан
Олег
ADN OPEN
Сообщений: 79
Карма: 0
Re: создать Round Duct
«
Ответ #3 :
05-02-2018, 12:46:25 »
после создания Duct он сразу стал квадратным
и конечно параметер диаметр отсутствует
Записан
WhiteShark
ADN OPEN
Сообщений: 2
Карма: 1
Re: создать Round Duct
«
Ответ #4 :
05-02-2018, 13:00:35 »
Установите сначала дефолтный тип семейства для категории воздуховодов равный вашему желаемому а потом уже создавайте воздуховод. Типа того
Код - C#
[Выбрать]
private
void
SetDefaultTypeFromduct
(
Document document, FamilyInstance duct
)
{
ElementId ductCategoryId
=
new
ElementId
(
BuiltInCategory
.
OST_Ducts
)
;
// It is necessary to test the type suitability to be a default family type, for not every type can be set as default.
// Trying to set a non-qualifying default type will cause an exception
if
(
duct
.
Symbol
.
IsValidDefaultFamilyType
(
ductCategoryId
)
)
{
document
.
SetDefaultFamilyTypeId
(
ductCategoryId, duct
.
Symbol
.
Id
)
;
}
}
Записан
+1/-0 к карме за данное сообщение
Отмечено как Решение
Олег
06-02-2018, 11:36:35
Алексей Кузин
ADN OPEN
Сообщений: 116
Карма: 8
Re: создать Round Duct
«
Ответ #5 :
05-02-2018, 13:04:24 »
А как вы создаете дакт?
Код - C#
[Выбрать]
Duct
.
Create
(
doc, systemType
.
Id
, ductType
.
Id
, level
.
Id
, start, end
)
ductType.Id - это и есть тип дакта.
для поиска нужного типа могу предложить вот этот подход
Код - C#
[Выбрать]
public
static
List
<
DuctType
>
GetDuctTypes
(
this
Document doc
)
{
var collector
=
new
FilteredElementCollector
(
doc
)
;
collector
.
WherePasses
(
new
ElementClassFilter
(
typeof
(
DuctType
)
)
)
;
return
collector
.
OfType
<
DuctType
>
(
)
.
ToList
(
)
;
}
private
static
List
<
DuctType
>
GetDuctTypes
(
Document doc,
string
shapeType
)
{
var result
=
new
List
<
DuctType
>
(
)
;
foreach
(
var type
in
doc
.
GetDuctTypes
(
)
)
{
var shapeName
=
type
.
get_Parameter
(
BuiltInParameter
.
ALL_MODEL_FAMILY_NAME
)
;
if
(
shapeName
.
AsString
(
)
==
shapeType
)
{
result
.
Add
(
type
)
;
}
}
return
result
;
}
где shapeType один из вариантов - "Rectangular Duct", "Round Duct", "Oval Duct". В результате получите список типов дактов нужного shape. А после создания уже у экземплята изменяете его размеры. в вашем случае диаметр.
Записан
Олег
ADN OPEN
Сообщений: 79
Карма: 0
Re: создать Round Duct
«
Ответ #6 :
05-02-2018, 13:12:28 »
создаю через NewDuct
Записан
Алексей Кузин
ADN OPEN
Сообщений: 116
Карма: 8
Re: создать Round Duct
«
Ответ #7 :
05-02-2018, 13:14:54 »
в методе NewDuct, если не ошибаюсь, тоже можно передавать DuctType.
Как получить нужный написано выше.
А вообще этот метод вроде как устаревший, помечен как obsolete в 2017 версии.
Записан
Олег
ADN OPEN
Сообщений: 79
Карма: 0
Re: создать Round Duct
«
Ответ #8 :
05-02-2018, 13:16:14 »
верно. есть такое. спасибо за ответ. счас попробую
Записан
Печать
Страницы: [
1
]
Вверх
« предыдущая тема
следующая тема »
Сообщество программистов Autodesk в СНГ
»
ADN Club
»
Revit API
»
создать Round Duct