TRY
@thsa2501
# Blocks numerator
# ©2017, Khasan Mamaev
# www.dynamobim.ru
import clr
from operator import itemgetter
import re
import System
clr.AddReference('ProtoGeometry')
import Autodesk
from Autodesk.DesignScript.Geometry import *
DPoint = Autodesk.DesignScript.Geometry.Point
app = System.Runtime.InteropServices.Marshal.GetActiveObject("Autocad.Application")
AcDoc = app.ActiveDocument
AcDoc.SendCommand("(SSGET\"_x\"'((-4 . \"<OR\")(0 . \"*TEXT,*Polyline\")(-4 . \"<AND\")(0 . \"INSERT\")(66 . 1)(-4 . \"AND>\")(-4 . \"OR>\"))) ")
AcDoc.SendCommand("SELECT (SSGET\"_p\") ")
sset = AcDoc.PickfirstSelectionSet
def ptD(p):
return DPoint.ByCoordinates(p[0],p[1],p[2])
def vertex(pl):
pts = []
for i,k in enumerate(pl):
if i%2 == 0:
pts.append(DPoint.ByCoordinates(k, pl[i+1], 0.0))
return pts
def cir(p,r):
return Circle.ByCenterPointRadius(p,r)
blocks = []
circs = []
RRR = []
for j in sset:
if j.ObjectName == 'AcDbPolyline':
poly = j
#RRR.append(j)
acPoints = poly.Coordinates
OUT = acPoints
# Blocks numerator
# ©2017, Khasan Mamaev
# www.dynamobim.ru
import clr
from operator import itemgetter
import re
import System
clr.AddReference('ProtoGeometry')
import Autodesk
from Autodesk.DesignScript.Geometry import *
DPoint = Autodesk.DesignScript.Geometry.Point
app = System.Runtime.InteropServices.Marshal.GetActiveObject("Autocad.Application")
AcDoc = app.ActiveDocument
AcDoc.SendCommand("(SSGET\"_x\"'((-4 . \"<OR\")(0 . \"*TEXT,*Polyline\")(-4 . \"<AND\")(0 . \"INSERT\")(66 . 1)(-4 . \"AND>\")(-4 . \"OR>\"))) ")
AcDoc.SendCommand("SELECT (SSGET\"_p\") ")
sset = AcDoc.PickfirstSelectionSet
tagARK = IN[0]
blocks = []
circs = []
RRR = []
for j in sset:
if j.ObjectName == 'AcDbPolyline':
poly = j
#RRR.append(j)
elif j.ObjectName == 'AcDbBlockReference':
attr = j.GetAttributes()
#RRR.append(j)
for i in attr:
#RRR.append( i.TagString )
if i.TagString != tagARK:
p = ptD(j.InsertionPoint)
blocks.append([j, cir(p,r)])
circs.append(cir(p,r))
elif i.TagString == tagARK:
arknum = re.sub("\D", "", i.TextString)
RRR.append( arknum )
ark = i
OUT = RRR
