require('sketchup.rb') module TIG def self.selected_connected_into_components() model=Sketchup.active_model ents=model.active_entities ss=model.selection faces=[] ss.each{|e| if e.class==Sketchup::Face faces << e faces << e.edges end } faces.flatten! faces.uniq! cons=[] faces.dup.each{|e| next unless e.valid? and e.class==Sketchup::Face and faces.include?(e) con=e.all_connected con.each{|c|faces.delete(c)} cons << con } model.start_operation("TIG.selected_connected_into_components") cons.each{|con| grp=ents.add_group(con) ins=grp.to_component defn=ins.definition defn.invalidate_bounds defn.name="Component#1" ### will increment } model.commit_operation end end ### Usage: Select what faces are to become components ### TIG.selected_connected_into_components in the Ruby Console