Ciao Enzo
Gia’ … il nostro terrificante amico rs.Command() …
Ho provato anch’io, ma senza successo, quindi, parafrasando quanto dici tu …
Non riuscendo ad usare rs.Command, mi sono lanciato su AddAngularDimension … 
Ho provato a scrivere un AddAngularDimension, purtroppo in fretta e furia, come sempre …
import Rhino
import scriptcontext
import rhinoscriptsyntax as rs
def AddAngularDimension( LineA, LineB, PointOrRadius, SmallerAngle = None ):
'''
add an angular dimension
from Guids of 2 lines ( LineA, LineB ):
from a point on the dimension arc or a radius ( PointOrAngle ):
from a flag to pick either the smaller or the larger angle ( SmallerAngle ):
True: draw the smaller angle
False: draw the larger angle
None: pick the angle from the point in PointOrRadius
-> Guid or None
'''
cua = Rhino.DocObjects.ObjRef( LineA ).Curve()
cub = Rhino.DocObjects.ObjRef( LineB ).Curve()
lia = Rhino.Geometry.Line( cua.PointAtStart, cua.PointAtEnd )
lib = Rhino.Geometry.Line( cub.PointAtStart, cub.PointAtEnd )
ok, ua, ub = Rhino.Geometry.Intersect.Intersection.LineLine( lia, lib )
if not ok:
return None
cen = lia.PointAt( ua )
if isinstance( PointOrRadius, float ):
rad = PointOrRadius
elif isinstance( PointOrRadius, list ):
pnt = rs.coerce3dpoint( PointOrRadius )
rad = pnt.DistanceTo( cen )
elif isinstance( PointOrRadius, Rhino.Geometry.Point3d ):
rad = PointOrRadius.DistanceTo( cen )
else:
return None
lia = Rhino.Geometry.Line( cen, ( lia.From + lia.To ) / 2.0 )
lib = Rhino.Geometry.Line( cen, ( lib.From + lib.To ) / 2.0 )
vea = lia.Direction
vea.Unitize()
veb = lib.Direction
veb.Unitize()
bis = vea + veb
if bis.IsTiny( 1.0e-9 ):
bis.PerpendicularTo( vea )
bis.Unitize()
if SmallerAngle is None:
pnt = rs.coerce3dpoint( PointOrRadius )
if not pnt:
return None
vec = pnt - cen
if ( vec * bis ) < 0.0:
bis.Reverse()
elif not SmallerAngle:
bis.Reverse()
pa = cen + ( vea * rad )
pb = cen + ( bis * rad )
pc = cen + ( veb * rad )
arc = Rhino.Geometry.Arc( pa, pb, pc )
offset = rs.DimStyleOffset( rs.CurrentDimStyle() )
adim = Rhino.Geometry.AngularDimension( arc, offset )
gid = scriptcontext.doc.Objects.AddAngularDimension( adim )
scriptcontext.doc.Views.Redraw()
return gid
def main():
ida = rs.GetObject( 'Line A ?' )
idb = rs.GetObject( 'Line B ?' )
pnt = rs.GetPoint( 'Point ?' )
angdim = AddAngularDimension( ida, idb, pnt )
main()
Ho fatto solo una prova. 
Spero si capisca qualcosa.
Vuole le due linee e un punto per cui far passare la quota.
In alternativa al punto puoi dargli un raggio ( non testato )
C’e’ un ultimo parametro opzionale (non testato)
che dovrebbe consentire di scegliere se quotare l’angolo minore o quello maggiore,
di default dovrebbe scegliere l’angolo passante per il punto (parametro precedente).
Se usi la funzione AddAngularDimension() in uno script, ricordati di importare anche i moduli Rhino e scriptcontext oltre a rhinoscriptsyntax
import rhinoscriptsyntax as rs
import Rhino
import scriptcontext
I test sono benvenuti.
Il debugging ancora di piu’ … 
( Non so quando riusciro’ a correggere gli errori gentilmente riportati … )
Grazie, ciao !