import sys, rhino3dm, collections m = rhino3dm.File3dm.Read(sys.argv[1]) layers = {i: l.Name for i, l in enumerate(m.Layers)} cnt = collections.Counter(); closed = collections.Counter(); blocks=collections.Counter() for o in m.Objects: li = o.Attributes.LayerIndex; g = o.Geometry cnt[li]+=1 if isinstance(g, rhino3dm.Curve) and g.IsClosed: closed[li]+=1 if isinstance(g, rhino3dm.InstanceReference): blocks[li]+=1 for li,n in cnt.most_common(): print(f"{n:6d} obj | {closed[li]:5d} fermés | {blocks[li]:5d} blocs | {layers.get(li)}") print("blocs définis:", [d.Name for d in m.InstanceDefinitions][:30])