How to show "hidden" geometry as actually visible?
-
Hi all!
I tried searching the web + this forum but didn't find an answer to this so here goes...
I've been using the hidden geometry toggle tagged to the 'H' key - thus hiding objects and unhiding them with a press of a single key. I find this really useful when doing really large models. You can hide the things you have ready with a quick hotkey and bring them up if you need it. However, SU doesn't actually "unhide" them, it just shows them as transparent faces filled with a grid. Therefore, if I need to edit something that I have hidden I have to unhide it first.
So what I'm asking is: is it possible to make SU actually show the hidden geometry as "visible", as if they were not "hidden" at all? Or to toggle the style in which the faces are shown (didn't find any in SU styles window)? Is there perhaps a script for doing this?
I know I can just unhide them, but if I do that, then it seems that there is no quick way to hide the same objects again save selecting them all (there's many of them so this isn't an option). Also using layers for this doesn't seem very efficient.
Thanks!
-
I strongly recommend that you use a set of layers to control the visibility of objects - assign layers to containers [groups/component-instances] not 'raw' geometry.
Using hide/unhide too much can lead to confusion - as you've found...
Especially if they are say faces associated with still visible edges - the face will vanish if the edges is erased and you won't notice it because it was hidden.
If you have hidden an object then its 'ghost becomes visible if View > Hidden Geometry is toggled ON.
You can now select it like any other object - multiple selections are possible if you hold Ctrl or use a fence etc.
The right-click context-menu has a Unhide option [as well as the Hide one] - then the selected objects are no longer hidden.
Also Entity Info lists the selections 'hidden' state and you can tick/untick the option to change them all en mass too...
To unhide all current active entities [assuming you have a confused mess!] you can copy/paste this one liner into the Ruby Console + <enter> to make all active entities visibleSketchup.active_model.active_entities.each{|e|e.hidden=false if e.hidden?}
If objects inside groups or components have been hidden you need to run this whist in the edit context of that container. Use with care because some 3rd-party components etc might contain hidden edges on purpose so that where they abut [say a mirrored instance of itself] there are no visible edges at the junction...
-
Thanks for your concern, and the reply, TIG... however it doesn't answer the question. The model which I'm doing is as such: I have a lot of groups on the same layer and a lot more to come. I'm modeling a part of a city and so all buildings must be on the same layer, and there's a lot of them. I find it useful to group&hide the buildings which are ready, because it saves on comp resources thus making modeling faster.
You are correct in saying that hiding things can cause a lot of mess, but not if you only hide complete groups (in this case, blocks in the city). It saves a lot of time compared to changing the layer of the object each time in entity info... and you can bring them up with a hotkey if you need. It's pretty simple & fast, and when done like this, there is no mess in my model. Would be a lot more messy and complex if I used layers for this...
What I'm actually looking for is just a way to control what hidden objects look like when the "show hidden geometry" button is on. If there is such a way.
Now that I said it like that it does sound a bit trivial. But if there is such an option, it would be useful.
-
When hidden geometry is set to be seen in 'View > Hidden Geometry' it will always be a 'ghost' - this is not changeable.
Hidden objects are remembered in Scene-tabs, so you could think about using those... BUT I suspect it'd get unwieldy.
IF you made a set of layers paralleling your main layers - e.g. BLDG and BLDG-HIDN; and have the '-HIDN' ones all set 'OFF'... then you can quickly 'hide' an object by selecting it and assigning it to a '-HIDN' layer - via 'the Entity Info' dialog OR even quicker using the 'Layers' toolbar dropdown list [e.g. if you put the layers-toolbar in the top-bar].
You can easily view/hide objects on any '-HIDN' layer by switching it on/off, in the Layers Browser pane.You can also use Scene-tabs to control layers' visibility.
Make two that only changes layers and doesn't affect camera, style etc - that can have the '-HIDN' layers 'ON' and 'OFF' respectively.
Then depending on which Scene-tab you click the objects will appear in full Technicolor... or become hidden...
Your main Scene-tabs can of course have whatever views, layers etc you want, and clicking on those brings whatever you want into focus/visibility... Use the other tabs whilst modeling... -
@tig said:
When hidden geometry is set to be seen in 'View > Hidden Geometry' it will always be a 'ghost' - this is not changeable.
All right. Thanks for the info. Could this be manipulated with a script though? I didn't find any which do this.
@muhku said:
IF you made a set of layers paralleling your main layers - e.g. BLDG and BLDG-HIDN; and have the '-HIDN' ones all set 'OFF'... then you can quickly 'hide' an object by selecting it and assigning it to a '-HIDN' layer - via 'the Entity Info' dialog OR even quicker using the 'Layers' toolbar dropdown list [e.g. if you put the layers-toolbar in the top-bar].
You can easily view/hide objects on any '-HIDN' layer by switching it on/off, in the Layers Browser pane.You can also use Scene-tabs to control layers' visibility.
Make two that only changes layers and doesn't affect camera, style etc - that can have the '-HIDN' layers 'ON' and 'OFF' respectively.
Then depending on which Scene-tab you click the objects will appear in full Technicolor... or become hidden...
Your main Scene-tabs can of course have whatever views, layers etc you want, and clicking on those brings whatever you want into focus/visibility... Use the other tabs whilst modeling...There's some ideas... I could to either of these, but it seems that in both cases I would lack the ability to do this with hotkeys, since it doesn't seem to be possible to add a shortcut to toggle a specified layer's visibility. We're talking about quite fast modeling, and I would have to repeat this procedure a lot, so it counts.
I could set up 2 scenes and use the next and previous scene hotkeys to cycle between them. Then I would need to get rid of the camera rotation thingy which SU likes to do when you change scenes. And again, no hotkey for assigning an object to a specific layer...
-
You can't affect the appearance of 'ghosted' hidden objects when view>hidden-geometry is ON - even in code.
If you want a hot key to move selected objects onto 'Hidden' layers then a simple few line script that adds a Plugins submenu it is straightforward
module MUHKU def self.onto_hidden(name) model=Sketchup.active_model layer=model.layers.add(name) layer.visible=false model.start_operation("Onto Layers OFF = "+name) model.selection.to_a.each{|e|e.layer=layer; model.selection.remove(e)} model.commit_operation end def self.layer_on(name) model=Sketchup.active_model model.start_operation("Layer ON = "+name) layer=model.layers.add(name) layer.visible=true model.commit_operation end submenu0=UI.menu.add_submenu("Onto Layers OFF...") submenu0.add_item("HID0"){self.onto_hidden("HID0")} submenu0.add_item("HID1"){self.onto_hidden("HID1")} ### etc submenu1=UI.menu.add_submenu("Layers ON...") submenu1.add_item("HID0"){self.layer_on("HID0")} submenu1.add_item("HID1"){self.layer_on("HID1")} ### etc ### add more submenu items as needed ### shortcut to these as desired. end#module
-
Ok. Thanks TIG!
-
I know this doesn't answer your question about the appearance of hidden geometry but I guess you've got that answer. The way you've described what you are doing makes me wonder; are you leaving Layer 0 active, drawing your buildings there and then associating them with your "Buildings" layer? I kind of doesn't sound like it. If you are working that way, you could leave your "Buildings" layer turned off and when you associate a new building with that layer, it'll be made invisible and out of your way.
-
Not sure if this would help but if you go to Window> Model Info > Components you can automatically fade or hide other components/ groups while you edit a particular component. If each building was a component then the rest of the buildings could be made to disappear while you worked on it, once you finished editing everything reappears.
I have the hide check boxes assigned to hot keys so I can turn on other components for reference and then turn them off again while still editing.
-
...And of course you can use 'Hide Rest of Model' and/or 'Hide Similar Components' using the 'Component Edit' menu items - which can both be given shortcuts...
A very useful toggle to hide things that are in your way... OR to show hidden things that you might want to snap-to... -
Hi, golden thanks for the tips & suggestions! I really appreciate this. I never realised that you could hide the rest of the model while editing or tag doing that to a hotkey. That really smoothened things out and was exactly most of what I was doing with the hiding.
This looks like a good forum, I'll be lurking around...
-
You can also of course use the outliner (Window-Outliner) to quickly select/hide/unhide objects. Although you probably knew that already!
-
@tig said:
I strongly recommend that you use a set of layers to control the visibility of objects - assign layers to containers [groups/component-instances] not 'raw' geometry.
Using hide/unhide too much can lead to confusion - as you've found...
Especially if they are say faces associated with still visible edges - the face will vanish if the edges is erased and you won't notice it because it was hidden.
If you have hidden an object then its 'ghost becomes visible if View > Hidden Geometry is toggled ON.
You can now select it like any other object - multiple selections are possible if you hold Ctrl or use a fence etc.
The right-click context-menu has a Unhide option [as well as the Hide one] - then the selected objects are no longer hidden.
Also Entity Info lists the selections 'hidden' state and you can tick/untick the option to change them all en mass too...
To unhide all current active entities [assuming you have a confused mess!] you can copy/paste this one liner into the Ruby Console + <enter> to make all active entities visibleSketchup.active_model.active_entities.each{|e|e.hidden=false if e.hidden?}
If objects inside groups or components have been hidden you need to run this whist in the edit context of that container. Use with care because some 3rd-party components etc might contain hidden edges on purpose so that where they abut [say a mirrored instance of itself] there are no visible edges at the junction...
Is there a way to run this through all existing objects and not just the active context?
-
@roni estein said:
Is there a way to run this through all existing objects and not just the active context?
Yes, but use with care !m=Sketchup.active_model; m.start_operation('un'); m.entities.each{|e|e.hidden=false if e.hidden?}; m.definitions.each{|d|next if d.image?; d.entities.each{|e|e.hidden=false if e.hidden?}}; m.confirm_operation;
It's one step undo-able...
-
This is an old post, but I figure if anyone else stumble upon it with the same issue this tip would be quite useful:
I have tried out the new plugin "s4u Hide Line" and it does the trick of showing hidden geometry with a click of a button:
Advertisement