Moving objects to another layer


#1

I tried moving an object from one layer to another using the Entity Info window. The layer name changed but when I turn off the old layer the object disappears. It’s like the layer name is changed but the object really didn’t go there. It is still in the original layer.


#2

Scott, all Edges and Faces need to go on “Layer0”, which should usually never be turned off.

Group or Component Instances can be put on other layers. These layers can be toggled on / off as needed for display purposes.

But it is only the “anchor” of the Group or Component that is on these other layers. The various primitive drawingelements in their entities collection, are still on their original layer.

Dimensions and Guides (Construction Lines and points) are special and can be put on separate visibility layers.

Lastly, layers do not separate geometry from interacting. Group and Component contexts are for separation.


#3

Great. Thanks for the answer. I am using layers wrong. This all came up because I need to cut away part of a model the has a lot of edges. Trying to select the right edge was getting impossible. So I decided to work on a different layer and turn the visibility off all the others. I guess I need to rethink layers. Still, if I have a component on layer “Floor” and I want it moved to layer “Wall” don’t I just change the name in the Entity Info window? Shouldn’t that component now be on layer “Wall?”


#4

Have you ever changed the active layer?


#5

This is one of the two most common points of confusion about SketchUp layers. When things are nested inside Groups or Components, there is a one-way relationship between the way that layer visibility affects them. If you put the container (Group or ComponentInstance) on a non-visible layer, its contents remain on their original layers but are also made non-visible regardless of the visibility of their layers. But this override does not work the other way: if you put the container on a visible layer, this does not override the visibility of layers the contents may be on. If the contents are on non-visible layers, they remain non-visible. When contents are on anything but layer0, confusing interactions of visibility result and the confusion can lead to modeling errors.

As Dan already stated, the other common confusion is that layers do not isolate geometry. This nearly always trips up users coming to SketchUp from other CAD tools.

When part of your model is getting in the way, the best answer is to wrap it in a temporary Group and hide that Group. When you are finished, unhide the Group and explode it. Note: due to a peculiarity of explode, hide the Group, don’t put it onto a non-visible layer. if you explode a Group, the contents will be placed on the layer that the Group was on, overriding their original layer. There are plugins available that address this (including one of mine).


#6

I suspect from this that you are one of the few people that could unravel Donald Rumsfeld’s [Known Unknown][1] speech.

I couldn’t disagree more, this is a sure road to insanity.
[1]: https://www.youtube.com/watch?v=GiPe1OiKQuk


#7

What would you do instead?


#8

I would put the group on a layer that I could hide. I generally have a working layer and a hidden layer so I can easily flick from one to the other and move things around.
Hiding specific geometry is too easy to loose track of.


#9

And if you subsequently explode the Group? Don’t you have to remember to move it back to layer0 first?


#10

Perhaps to a greater extent than you think. Layers have a single use in SU: to control visibility. Other functions you may have associated with layers in other programs are generally accomplished using groups and components. Not only, as Dan said, do groups and components isolate and protect geometry, they are the main structural/organizational tools in SU. That is, the hierarchical array of gozintas (this gozinta that which in turn gozinta that) is built using groups and components.

Groups and components can be nested as deeply as you wish–although I prefer a flatter model structure just to make things easier to get at (easier to get into their context so they can edited). You control the visibility of an entire branch of the model by controlling the layer of the topmost (outermost) group or component that defines the branch. Even though Layer0, which contains all the raw geometry, is set to active and therefore visible, when you turn off the layer of some higher-level containing group or component, all the subordinate objects it contains are also turned off, all the way down to raw geometry.

-Gully


#11

Thanks to all who have replied. This discussion has been very helpful.

Why do the layers have an active button then? As I understand this discussion, I should be working on the individual components that make up the entire model on Layer 0. Then by grouping the desired components and putting them on a separate layer, I can turn the visibility off on that particular layer thus hiding the group. But the group still exists in Layer 0 where it belongs. The layers, therefore, are simply masks.

I’ll do some more searching and reading about layers. The info at help.Sketchup is not very complete.
I appreciate everyone’s input here.

Thanks,


#12

Raw geometry remains on Layer0 even though the group(s) that contain it are moved to some different layer for visibility control. If you create a group from raw geometry and place the group on LayerX, if you dive down into the group to the level of the raw geometry and check it with Entity Info, you’ll see it’s still on Layer0.

-Gully


#13

This question comes up repeatedly. There have been requests to take the “active” layer buttons away, or at least to make them less conspicuous. So far, no change.


#14

The day that happens is the day I uninstall SketchUp for good.

Dimensions and Guides can go on any layer. It helps when inserting many component instances, to switch to the layer that you’ll be inserting on.

No. The group, meaning it’s “anchor” (or origin, ie, insertion point,) is on it’s own insertion layer (or the layer you changed it to sometime after insertion.) A group or component is a container object that has many properties. Among them is it’s definition, which holds an entities collection. Each entity in the collection has it’s own set of properties, among which is a layer property. If the entity is a primitive (edge, face, curve, etc.) they should be on “Layer0” to prevent later weirdness in dealing with layer visibility.


#15

[quote=“slbaumgartner, post:13, topic:14373”]
This question comes up repeatedly. There have been requests to take the “active” layer buttons away, or at least to make them less conspicuous. So far, no change.
[/quote] I made this Plugin which alerts you if you try and reset the current Layer away from the logical default of “Layer0”.
You CAN reset the current Layer, BUT at least you were warned of your folly !
It also automatically makes all new geometry [edges/faces] on “Layer0” even if the current Layer is set to be something else.
It also assigns “Layer0” to any geometry [edges/faces] affected by Exploding a Group/Component-Instance, irrespective of that “container’s” own Layer [the native default is to assign the “container’s” Layer]
It also adds a context-menu item which resets all geometry [edges/faces] in a Selection to “Layer0” [including geometry within any Selected “containers”, IF you choose that option from the resultant dialog].
http://sketchucation.com/pluginstore?pln=TIG_LayerWatcher


#16

@ScottinTexas

A layer in SketchUp isn’t a separate place.
A layer in SU is merely an assigned attribute which controls visibility … nothing more.

Delete all layers, thereby assigning all entities back to the Default Layer 0
Then read and follow this advice:
Does SketchUp support layers? — SketchUp Help


Use of the Hide command to temporarily aid visibility while modeling generally leads to confusion.
Reason being, Hide/Unhide is context sensitive after one go.

Using layers and scenes to temporarily control visibility while modeling is generally slow and cumbersome; the exception being very large, complex and highly organized models.

The fastest way to temporarily control visibility while modeling is by creating two keyboard shortcuts.
View > Component Edit > Hide Rest of Model
View > Component Edit > Hide Similar Components

It’s taken years, but thankfully there’s now a video tutorial. Props to @TysonK and company!


#17

I suppose it is a question of personal workflow and it depends a lot on whether the Group has some fundamental reason to exist versus being just a temporary thing.

If the Group or Component is a genuine “part”, I will always use layers to control its visibility. In my workflow, I only work with “free” geometry as a starting point. I make Components of it at the earliest possible moment. As a result, tagging an instance with a non-visible layer is fast, easy, and safe.

But what about when the entities in question are just an unrelated bunch of “stuff” that are blocking your view of where you want to draw? That is, they have no long-term reason to be collected as a part and the Group will be exploded immediately after drawing the other geometry. In that situation (unless, as he already noted, you have TIG’s plugin installed) you have to remember to retag the Group with layer0 before you explode it or the dreaded “primitives off layer0” mess will result. To me, it is just as easy and lower risk to do “unhide last” as to remember to restore layer0.

Regarding the component edit options, they are excellent mechanisms when what you need to edit is (or can be made into) a Component. They aren’t much help when you are drawing the first entity of a new Component and other entities are blocking the view!


#18

This made me think that maybe we should revise the way we talk about layers. It is unlikely we will change the name SketchUp uses for this concept (would break too much), but we can use better language to help users. Instead of saying an entity is “on” or “assigned to” a layer, we should say that the entity is “tagged with” the layer (or something similar - open to suggestions). The point is to reverse the thinking so that the layer is a property of the entity, as Dan observes, rather than implying that the layer is some sort of collection that contains the entity. This language would go a long way to avoiding the confusion that people have when coming to SketchUp from other apps in which a layer is indeed a collection of items. It also more correctly reflects what is going on, as there is no way to query a layer to find out what is “on” it, but you can query an entity to find out what layer it is “tagged with”.


#19

So I should have really said:

Each entity in the collection has it’s own set of properties, among which is a layer property. If the entity is a primitive (edge, face, curve, etc.) their layer property should be set to "Layer0" to prevent later weirdness in dealing with layer visibility.


I don’t actually care for the term “tagged” as it is synonymous with attaching attributes (dictionaries) or classifications. So it may lead to confusion in that respect.


#20

If you wanted to be precise you might say that each Drawingelement references one Layer object.

Maybe a better concept would be Mask, or Layer Mask, or Visibility Mask.

It’s odd that Drawingelement also has a separate visibility property which is independent of its Layer.