[Plugin] #SelectionHideShow.rb v1.1
- 
#SelectionHideShow.rb adds a context-menu sub-menu with various Selection, Hide and UnHide tools, such as 'Invert Selection', 'Hide/UnHide Selection', 'UnHide All Active' etc...#SelectionHideShow.rb

Edit:
v1.1 Now tests with ".is_a?" to speed-up and avoids testing already unique groups[after AlexM's advice]. - 
Very practical!

 - 
Great!
I asked for this a while ago.
I suggested it was something that should be a standard feature in SketchUp
Now it is. Thanks for another great contribution.Regards
Mr S - 
Thanks TIG. However I expected to see Reverse Faces in there too.
 - 
Thanks TIG, and I second the request made by Boofredlay.
erikB - 
Reverse and Orient faces is already built-in on the context-menu - near the top [as are some other 'select tools']... adding them would only duplicate stuff...
 - 
TIG
 Why constantly to use the method of group_miner, when in him practically is not there a necessity?
 Why to apply properties to entity, when are new properties of entity equal to the applied properties?
These questions are linked at a speed of implementation of script on the large scenes.
 Example of considerable increase of speed of implementation of script:class Sketchup;;Group def definition self.entities.parent end end def SelectionTool;;group_miner(ents) ents.each do |e| if e.is_a? Sketchup;;Group e.make_unique if e.definition.instances.length > 1 SelectionTool;;group_miner(e.entities) end end end
 At the use of method of typename speed of implementation of script goes down in once or twice!
It would be desirable to correct these shortages... - 
Alex, I have not run any tests on typename, but I use it regularly. Are you saying that it is much slower than .is_a?
I'd rather use the faster method too, I just never knew there was a faster one. I'm sure TIG isn't using a slow method on purpose either...
Chris
 - 
@chris fullmer said:
Alex, I have not run any tests on typename, but I use it regularly. Are you saying that it is much slower than .is_a?
ChrisEasily to check...
The more elements in the model - the better results script.@unknownuser said:
SpeedTest
is_a? - 0.36c
kind_of? - 0.39c
class - 0.422c
typename - 1.313cModel Statistics:
edges = 48981
faces = 8009
groups = 729
components = 365
construction_lines = 1
construction_points = 4
images = 3
section_planes = 4
texts = 4
others = 2
 - 
That's some interesting numbers. I've always used k
ind_of?- wasn't aware of theis_a?. then again, I've never tested the speed of methods either.Thanks for posting this test.
 - 
Maybe we could add this info to a new stickcy where we collect such useful tips and info?
 - 
Thanks Alex - you've probably noticed I used the .is_a? test everywhere else in the script - however, I didn't realise it was so much slower to use typename=="".

I've also incorporated my own version of your group_miner speed-up suggestion that now avoids testing groups that area already unique...
I just need to edit ALL of my other scripts to change e.typename=="" to e.is_a?() !!!

Here's v1.1 http://forums.sketchucation.com/viewtopic.php?p=161963#p161963
 - 
@tig said:
...I didn't realise it was so much slower to use typename=="".

.....For a model ot a few kilobytes to 10 megabyte of substantial difference it is not, but my models ot 40 to 75 megabyte!
My model statistics:
@unknownuser said:
Model 68.4 Mb:
Edges 485016
Faces 128906
Component Instances 6055
Groups 3078
Section Planes 4P.S.
It was even necessary to write the analogue of SketchUp Text tool, because a standard tool begins to work very long.

 - 
Very good
 ! - 
@alexmozg said:
@chris fullmer said:
Alex, I have not run any tests on typename, but I use it regularly. Are you saying that it is much slower than .is_a?
ChrisEasily to check...
The more elements in the model - the better results script.@unknownuser said:
SpeedTest
is_a? - 0.36c
kind_of? - 0.39c
class - 0.422c
typename - 1.313cModel Statistics:
edges = 48981
faces = 8009
groups = 729
components = 365
construction_lines = 1
construction_points = 4
images = 3
section_planes = 4
texts = 4
others = 2Hmm...
.kind_of?is an alias for.is_a?- Is that fraction of a differences just some other random outside co-incidence?
http://www.ruby-doc.org/core/classes/Object.html#M000370 - 
I did a somewhat larger test. By the looks of it
.is_a?,.kind_of?and.classare pretty much the same. I take the differences due to other system factors at the time of execution.AT - SpeedTest:
is_a? - 0.89c
kind_of? - 0.782c
class - 0.875c
typename - 2.297cModel Statistics:
edges = 159630
faces = 61300
groups = 0
components = 1000
construction_lines = 0
construction_points = 0
images = 0
section_planes = 0
texts = 0
others = 0 - 
Much larger test. (did have a few programs open while I did the tests.)
AT - SpeedTest:
is_a? - 16.297c
kind_of? - 16.141c
class - 18.703c
typename - 88.703cModel Statistics:
edges = 8396595
faces = 1026520
groups = 52643
components = 526428
construction_lines = 2
construction_points = 4
images = 0
section_planes = 0
texts = 0
others = 0 - 
a tool bar will be very great with this script
 - 
i think i need this plugin
thank you in advance, sir. - 
[highlight=#ffff40:2a81c421]NICE[/highlight:2a81c421]!!

 
Advertisement
