Angular dimensions between non wall/curve-type elements

Dear colleagues,

I’m trying to create angular dimensions between two faces of a two generic models.

Here’s the code i’m using and surprise, surprise… :shushing_face: it’s not working… :unamused:

import clr
clr.AddReference('RevitAPI')
import Autodesk
from Autodesk.Revit.DB import *

import System
from System.Collections.Generic import *

clr.AddReference('ProtoGeometry')
clr.AddReference('DSCoreNodes') 
import DSCore
from DSCore import *
from Autodesk.DesignScript.Geometry import *

clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)
from Revit.Elements import *
clr.ImportExtensions(Revit.GeometryConversion)
clr.ImportExtensions(Revit.GeometryReferences)

clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

def U(e): 
	return UnwrapElement(e)

def mp(i):
	sp = i.StartPoint
	ep = i.EndPoint
	x = (sp.X + ep.X)/2
	y = (sp.Y + ep.Y)/2
	z = (sp.Z + ep.Z)/2
	return XYZ(x,y,z)
	
def ca(l1, l2):
	pt1 = mp(l1)
	pt2 = mp(l2)
	l3 = Autodesk.Revit.DB.Line.CreateBound(pt1, pt2)
	pt3 = mp(l3)
	pt4 = XYZ(pt3.X, pt3.Y+1, pt3.Z)
	return Autodesk.Revit.DB.Arc.Create(pt1, pt2, pt4)

doc = DocumentManager.Instance.CurrentDBDocument

view = doc.ActiveView

arc = ca(U(IN[0]), U(IN[1]))

ref = List[Reference]([U([2]).Reference, U([3]).Reference])

dt = doc.GetElement(ElementId(32425))
		
TransactionManager.Instance.EnsureInTransaction(doc)

ad = AngularDimension.Create(doc, view, arc, ref, dt)

TransactionManager.Instance.TransactionTaskDone()

OUT = ad