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… it’s not working…
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