Make your own tools: Parametric Arc by 3 points


There are aspects of all software that will fall short of what you want to do. So the question often comes up about how to make your own tools?  Revit does not have a point hosted arc, which can make for aggravation when trying to make complex geometry.  This tutorial shows how to roll your own.

Constrained Arc by center

Download the adaptive component from here


  1. Great tutorial! I hadn't thought about doing this with an adaptive component. I've attached an arc to a circle before and tried to drive the length of the arc, but it ended up with a lot of parameters!

    I think I'll try and recreate the geometry using an adaptive component instead.


  2. Thanks Zach, this is a great blog - I have learned so much from it.
    Nice simple but clever solution for an adaptive arc, so I thought I'd try similar logic for one which works like the Revit sketch tool Start/End/Radius (where the third point is on the circumference). But, it turns out to be about ten times more complicated as the centre of the arc is not an adaptive point and has to be infered by geometry or trigonometry. I've been defeated by the fact that reporting parameters not based on host objects can't be used in calculations - a frustrating limit in Revit.

    Any suggestions?

  3. Great question Tim, I've been wanting to get to a post on this since I did this one. The short answer is yes, with nesting. Nest your arc by center into a new adaptive component, draw adaptive points 1, 2, and 3, connect 1-2 and 2-3, find the midpoint of each line and derive the intersection of the normal of these 2 midpoints. Place your arc by center on this derived intersection and points 1 and 3. I have a couple working examples of this, it's pretty robust

  4. Zach,
    Thanks so much for that answer - it worked a treat. I had already built my framework with ref lines normal to midpoints and derived the intersection, so all I had to do was nest your adaptive arc component into it and hey presto it worked. Not totally robust if you drag the middle circumference point across the chord, but its pretty good. Now for the geometry to go onto the framework . . .

  5. Hi Zach,
    Thanks for the post. I came across this entry since I'm trying to create a curtain panel based on a proper arc. have you tried nesting this component in a pattern based curtain panel family? I can't seem to host the points correctly since the association would break when I move the adaptive points in the curtain panel family.
    Thanks, Jenny

  6. Hi Jenny
    Take a look at a couple of the "arc" panels in this post