Skip to content

Commit bc6dfea

Browse files
committed
add sample count block
1 parent 0dfd892 commit bc6dfea

1 file changed

Lines changed: 38 additions & 0 deletions

File tree

Script Examples/countBlock.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#Many thanks Cyril-Pop
2+
import clr
3+
import sys
4+
import System
5+
pf_path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.ProgramFilesX86)
6+
sys.path.append(pf_path + '\\IronPython 2.7\\Lib')
7+
import os
8+
import math
9+
clr.AddReference('acmgd')
10+
clr.AddReference('acdbmgd')
11+
clr.AddReference('accoremgd')
12+
# Import references from AutoCAD
13+
from Autodesk.AutoCAD.Runtime import *
14+
from Autodesk.AutoCAD.ApplicationServices import *
15+
from Autodesk.AutoCAD.EditorInput import *
16+
from Autodesk.AutoCAD.DatabaseServices import *
17+
from Autodesk.AutoCAD.Geometry import *
18+
doc = Application.DocumentManager.MdiActiveDocument
19+
ed = doc.Editor
20+
db = doc.Database
21+
# Write Code Below
22+
all_blkName = []
23+
with doc.LockDocument():
24+
with doc.Database as db:
25+
with db.TransactionManager.StartTransaction() as t:
26+
bt = t.GetObject(db.BlockTableId,OpenMode.ForRead)
27+
btr = t.GetObject(bt[BlockTableRecord.ModelSpace],OpenMode.ForRead)
28+
for objectid in btr:
29+
blkRef = t.GetObject(objectid, OpenMode.ForRead)
30+
if isinstance(blkRef, BlockReference):
31+
if blkRef.IsDynamicBlock:
32+
block = t.GetObject(blkRef.DynamicBlockTableRecord, OpenMode.ForRead)
33+
all_blkName.append(block.Name)
34+
else:
35+
all_blkName.append(blkRef.Name)
36+
resultcount = ["{} - total:{}".format(x, all_blkName.count(x)) for x in set(all_blkName)]
37+
print("\n".join(resultcount))
38+
t.Commit()

0 commit comments

Comments
 (0)