I need create ArcDimension for Arc of Polyline , but I can not find node to do this.
I have write python but it do not work.
Load the Python Standard and DesignScript Libraries
import sys
import clr
Add Assemblies for AutoCAD and Civil3D
clr.AddReference(‘AcMgd’)
clr.AddReference(‘AcCoreMgd’)
clr.AddReference(‘AcDbMgd’)
clr.AddReference(‘AecBaseMgd’)
clr.AddReference(‘AecPropDataMgd’)
clr.AddReference(‘AeccDbMgd’)
Import references from AutoCAD
from Autodesk.AutoCAD.Runtime import *
from Autodesk.AutoCAD.ApplicationServices import *
from Autodesk.AutoCAD.EditorInput import *
from Autodesk.AutoCAD.DatabaseServices import *
from Autodesk.AutoCAD.Geometry import *
Import references from Civil3D
from Autodesk.Civil.ApplicationServices import *
from Autodesk.Civil.DatabaseServices import *
import Autodesk.Autocad.DynamoNodes as DA
import Autodesk.Civil.DynamoNodes as DC
import Autodesk.DesignScript.Geometry as DG
The inputs to this node will be stored as a list in the IN variables.
dataEnteringNode = IN
adoc = Application.DocumentManager.MdiActiveDocument
editor = adoc.Editor
def create_arc_dimension(center,xline1,xline2,arcpoint,style = None):
global adoc
if center and isinstance(center, DG.Point):
center = DA.GeometryConversion.DynamoToAutoCad.ToPoint3d(center)
if xline1 and isinstance(xline1, DG.Point):
xline1 = DA.GeometryConversion.DynamoToAutoCad.ToPoint3d(xline1)
if xline2 and isinstance(xline2, DG.Point):
xline2 = DA.GeometryConversion.DynamoToAutoCad.ToPoint3d(xline2)
if arcpoint and isinstance(arcpoint, DG.Point):
arcpoint = DA.GeometryConversion.DynamoToAutoCad.ToPoint3d(arcpoint)
if not center or not xline1 or not xline2 or not arcpoint:
return
dim = None
with adoc.LockDocument():
with adoc.Database as db:
with db.TransactionManager.StartTransaction() as t:
bt=t.GetObject(db.BlockTableId, OpenMode.ForWrite)
btr=t.GetObject(bt[BlockTableRecord.ModelSpace],OpenMode.ForWrite)
styleid = ObjectId.Null
dst=t.GetObject(db.DimStyleTableId,OpenMode.ForRead)
if style is not None and dst.Has(style):
styleid=dst[style]
else:
styleid=db.Dimstyle
dim=ArcDimension(center,xline1,xline2,arcpoint,"",styleid)
btr.AppendEntity(dim)
t.AddNewlyCreatedDBObject(dim, true)
t.Commit()
return dim
OUT = create_arc_dimension(IN[0],IN[1],IN[2],IN[3],IN[4])
Can you help me ?
Thank you !