import Rhino
import rhinoscriptsyntax as rs
import scriptcontext as sc
import re

    
def atoi(text):
    return int(text) if text.isdigit() else text

def natural_keys(text):
    return [ atoi(c) for c in re.split('(\d+)', text) ]

def SelNameEx():
    
    all = rs.AllObjects()
    x = rs.ObjectName(all[0])
    names = [rs.ObjectName(id) for id in all if rs.ObjectName(id) is not None]
    names = list(set(names))
    pass
    
    names.sort(key=natural_keys)
    selNames = rs.MultiListBox(names)
    if not selNames: return
    
    for name in selNames:
        rs.SelectObjects(rs.ObjectsByName(name))
        

    
SelNameEx()





