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

ADN Club => Revit API => Тема начата: GIPPY от 07-02-2021, 16:33:16

Название: Спиралевидное армирование: какой командой можно создать ?
Отправлено: GIPPY от 07-02-2021, 16:33:16
Всем привет. Прошу помощи. Подскажите какой командой можно создать спиралевидное армирование ?
В частности интересует такое армирование по кругу.
Спасибо.
Название: Re: Спиралевидное армирование: какой командой можно создать ?
Отправлено: Александр Игнатович от 07-02-2021, 19:12:17
такое

Какое?

Как бы ты сделал это руками, а не программно?
Название: Re: Спиралевидное армирование: какой командой можно создать ?
Отправлено: GIPPY от 07-02-2021, 19:56:28
К сожалению, понятия не имею как это сделать в ревите.
Я в ревите не работаю, но плагин нужно написать, пока все сделала, но вот со спиралевидным армированием проблема.
Название: Re: Спиралевидное армирование: какой командой можно создать ?
Отправлено: Александр Пекшев aka Modis от 07-02-2021, 20:04:01
Как-будто есть выбор )))

Метод, по сути, всего один - CreateFromCurves (https://www.revitapidocs.com/2020/b020c9d5-6026-b9fa-7e23-f6a7ec2cede3.htm)
Название: Re: Спиралевидное армирование: какой командой можно создать ?
Отправлено: GIPPY от 07-02-2021, 20:26:45
я создавал контур из дуг для выдавливания, но они создаются в ортогональных плоскостях
Код - vb.net [Выбрать]
  1. Dim pl As Plane = Plane.CreateByNormalAndOrigin(New XYZ(0, 0, 1), p00)
  2.         Dim skpl As SketchPlane = SketchPlane.Create(family, pl)
  3.         Dim profile As CurveArrArray = New CurveArrArray()
  4.         Dim loop1 As CurveArray = New CurveArray()
  5.         loop1.Append(Arc.Create(pl, Diametr / 2, 0, Math.PI * 2))
  6.         profile.Append(loop1)
  7.  
  8.         Return family.FamilyCreate.NewExtrusion(True, profile, skpl, Height)
  9.  

как это сделать в произвольной плоскости ?

увидел, что можно создать Plane.Create по трем точкам.....буду пробовать...
Название: Re: Спиралевидное армирование: какой командой можно создать ?
Отправлено: Александр Ривилис от 08-02-2021, 14:31:47
увидел, что можно создать Plane.Create по трем точкам.....буду пробовать...
Ну вообще-то и в том методе, который ты уже использовал, можно задать вектор нормали не ортогональный осям. Например,
Код - vb.net [Выбрать]
  1. Dim pl As Plane = Plane.CreateByNormalAndOrigin(New XYZ(1, 1, 1), p00)