Arc with angle more than 360°

Hi everyone,

In order to create my circular rebars using API, I need at first create an arc which should have an overlap distance as shown in the image below (In this case the arc angle is more than 360 degree)

I thought to use Arc.ByThreePoints to bypass the angle exceeding 360 degrree but it not works!!..So is there a way to create this arc?

Here my code:

import sys
import clr
import math
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *

circle = Circle.ByCenterPointRadius(Point.Origin(), 1.7507)
overlap_length = 1.00

Pt1 = circle.StartPoint
Pt2 = circle.PointAtSegmentLength(circle.Length / 2)
Pt3 = circle.PointAtSegmentLength(overlap_length)
arc = Arc.ByThreePoints(Pt1, Pt2, Pt3)

OUT = Pt1, Pt2, Pt3, arc

Thanks in advance for your help

If you manually create the rebar, does it have a sweep angle greater than 360 degrees? Or is it two arcs or even two separate bars?

How about using a spiral?

Hi @jacob.small, @Alien

I can create rebar manually in Revit with 360 degrees as shown below (a single rebar with an angle of 360degrees) after modifiying its constraints, but I can’t extend it as I want with an angle greater than 360 degrees

As I know spiral is a succession of arcs of diferents diameter and that not works in my case

Thanks.

Is there a shape code within your country similar to the below in BS8666, because if there is then you do not need a arc to generate it.

If you have a shape code then you can use the following API that does not require any curve info.

If you can’t do it in Revit, you likely can’t make Dynamo do it in Revit, and if you can it is usually a bad idea…

Use the right shape type as noted by @Brendan_Cassidy

Thanks @Brendan_Cassidy for your replay

I found in my rebar family the shape you indicated as shown below

image

OK… in this case I should use CreateFromRebarShape Method to create my rebar, but how can I using API define or manage the overlap distance that I want (in my case it’s: 50 x bar diameter)? …I can’t figure out how to do it in this case
Have you an example for that you can shared with me pls?

Thanks.