Description
Sélectionne toutes les instances identiques au block(s) sélectionné(s).
Le script suivant fonctionne sur :
- Rhino pour Windows ;
- Rhino pour macOS.
Script par Ejnar Brendsdal sous licence MIT.
Code
#******* Imports ********************
#************************************
import rhinoscriptsyntax as rs
import scriptcontext as sc
import Rhino.Geometry as G
#******* Main function ********************
#******************************************
def RunCommand( is_interactive ):
if sc.escape_test(False):
print "script cancelled" #do something
print "Selecting all blocks of same definition..."
#******* Get blocks *****************
#************************************
objectIds = rs.GetObjects("Pick some blocks", 4096, preselect=True)
if not objectIds:
print "No objects"
return False
#pause viewport redraw
rs.EnableRedraw(False)
#******* Sort blocks by Name ********
#************************************
blockNames = []
for id in objectIds:
blockName = rs.BlockInstanceName(id)
if blockName not in blockNames:
blockNames.append(blockName)
#******* Get block instances by name ********
#********************************************
selIds = []
for name in blockNames:
blockIds = rs.BlockInstances(name)
selIds.extend(blockIds)
#******* Select blocks **************
#************************************
rs.SelectObjects(selIds)
rs.EnableRedraw(True)
print "...aaand its done."
#End RunCommand()
#end sane
return 0
RunCommand(True) #Run script