Can't Move Component to Different Layer


I tried layer sets in templates and they didn’t work for me, I quickly found out my layers were very unique from one model to another, so I ended up always screwing around with them. Hence my need for the script mentioned above, which is really neat for me.
I don’t really know, but from an architectural point of view I would think the layers would be pretty standard. I imagined many people would have layers built into their template,

You can save Components/Groups, Geometry, Materials, Layers, Scenes and Styles into a template.


I have used hidden components to preserve them from being purged. I’ll use a layer, like “Component Stockyard” to keep them on. Never really thought about doing it for layers.


Geo-location, (leader)text,Dimension, units, precision, just about everything but the ‘undo-stack’ can be saved to a template. It is just a SketchUp file that is renamed as untitled, so to speak.

You can easily get the Layers in your current model with the ‘import component’ method, but like Moses and the mountain, you could also copy-paste all geometry from your model into a prepared template.

Check the ConDoc tools from Mighael Brightman, his usage of hidden geometry, layering system and use of scenes might be interesting. Though there is an extension that is actively helping you, the underlying principles can be of use in your workflow.



I wrote an Extension: LayerWatcher_v10.0
You can download it from SketchUcation - you do need an account there - but a free one is readily available…

I wrote it to address the issues raised here and a few others…
It Autoloads with SketchUp.
It runs in the background waiting to spot your Layering changes, it also offers some extra layer-utilities…

Its Purpose:

It waits for certain actions…

It adds an Observer onto the Model’s Layers.
If the Current-Layer is changed to be anything other than “Layer0”,
then a dialog asks you if you really want to do that.
“Yes” will change it, “No” will make the Current-Layer “Layer0”.
The purpose is to prevent you from modeling raw Geometry on other Layers -
99.9% of the time it should be on “Layer0”, other Layers are to control the
visibility of Groups and Components which have been assigned those Layers.
SketchUp Layers only control visibility, they do not separate Geometry -
that is the role of Groups and Components.
You could change to another Current-Layer,
e.g. if you are adding lots of Text or Dims etc,
But most modeling involves geometry and then always use “Layer0”

It also adds Observers onto ALL Entities contexts.
Any ‘added’ Geometry [Edges or Faces] will always be assigned “Layer0”,
irrespective of the Current-Layer setting.
It only affects Geometry - other Entities are ignored.
Obviously it’s best to always draw raw Geometry with “Layer0”, the limit is
~200 pieces of geometry in one operation, so only very faceted circles etc
will hiccup, and affect the drawing tool’s ‘undo-stack’.

Since v9.0 LayerWatcher deals with Exploded Containers [Groups/Components]
differently. When you Explode a Container that is NOT assigned to “Layer0”,
then the resultant Geometry that appears in the Container’s context is assigned
that layer, sadly it’s just how SketchUp works, even when that Geometry might
have been assigned to “Layer0” while it’s inside the Container !
Because of limitations in the number of operations that can be in the ‘undo-stack’,
then unfortunately, if a lot of Geometry is reassigned to “Layer0” by LayerWatcher
after an Explode then the Explode itself cannot be Undone !
To avoid this, then any Geometry resulting from an Explode is left unchanged -
after the Explode the former contents are left highlighted, if they are not
assigned to “Layer0”, then you can use the Context-Menu item explained below -
“Selected-Geometry-To-Layer0” to fix the issue…

Alternatively [from v9.0] there is a Context-Menu item, available if the current
Selection contains a Group or Component-Instance -
it is called “Explode-To-Layer0”.
Use it to Explode All selected Containers, and reassign resultant Geometry
to “Layer0”. It only affects Geometry - other Entities are ignored.
The Exploding and Reassigning operation is one-step undo-able, per selection.

There is a Context-Menu item if the current Selection contains
Geometry [Edges and Faces] not assigned to “Layer0”, it is called -
“Selected-Geometry-To-Layer0” - it reassigns that Geometry’s Layer[s] to be
“Layer0”. The Layers of other Entities in the Selection - e.g. Groups -
are ignored, only Geometry in the Selection is changed.
However, if the Selection contains Groups or Components, AND they in turn
contain Geometry that is not assigned to “Layer0”, then you are then prompted
Yes|No to process those too…
These changes then mine down into any nested containers too…
These Layer changes are one-step undo-able, per selection.


Thanks for that !
I assume text and dimensions can exist on another layer because they are not “geometry” froming part of the model and so would be the only exception (the 99% rule?) In adhering to the “layer 0 rule” I always have them on layer 0 and then assign a layer to them, is there any benefit to doing this in one way or the other?


Wow, I thought I was pretty good at sketchup, but clearly I have a lot to learn.

I am not an architect or anything like that, but I do a lot of DIY, and build models to take to county building inspector for my own projects and friends. I also do some modeling of historic houses in my tiny rural community.

I am soooo glad I asked this question here, I have learned a great deal from the conversations it prompted. I’m not sure I do enough of the same type modeling to create template with just layer names (or if that can’t be done, work-around “template” with nominal components as discussed,) but now I know how to go about it. I think a basic house can easily be broken down into repeatable Layer names to be useful. If I like the layers system I end up with on my current model, I will save a copy, then play with template or pseudo-template methods discussed here in order to import and repopulate same layers in next model

thanks all for all the help, really a lot of great insights, I am so glad I took the time to create an account here and post my newbie question :stuck_out_tongue:


The real “rule” is that geometric primitives need to be associated with "Layer0".
Dimensions and Text callouts are complex objects and they are not made up of geometric primitives. They are made of lines, arrowheads, text labels, etc.
Often guidepoints and guidelines are also on dedicated layer(s) of their own.
(But their visibility can also be toggled globally via the View menu if you prefer to leave then on "Layer0".)

And many of the posts in this thread use the term “on layer”. SketchUp does not have geometric layer collections. (Groups and Components are the geometry collections with SketchUp.)

Layers are just a shared visibility tag. Ie, an object’s “layer” property points at a behavioral object (a SketchUp Layer) that describes visibility and color. (Layer color is used in “Color by Layer” render mode.)


I love SketchUp for the type of quick modeling I do for home remodeling, decks, pavilions, etc.

However. I have been dealing with this problem for quite some time. Just found this thread. I was able, for some of the groups, to triple click them OR do a Select>All Connected and get it to seemingly move to another layer BUT it did not always work. Very frustrating until I read this thread, though I found it an odd way for it to work.

I have to say this issue with “Layer0” is very unlike other CAD programs I have used. Makes easily organizing layers, etc. difficult. I hope it is on a feature-fix wish list. It would be on mine. Maybe is a core functionality and designed so tightly into the code it cannot be changed. Hope that is not the case. Thank you for giving such a good explanation of the issue and fix.



TIG, I downloaded the Extension you mention from Sketchucation site, however, it seems to be a couple of years old and when installing states “outdated signature”. Also, the instructions on the site seem to be pretty outdated as well. I may still try it, but on a back of the current file. Thanks for the offer though.



The main difference is that Layers in SketchUp won’t isolate geometry as they do in other Programs.
The ‘Stickyness’ is part of it’s ‘core’ functionality, but confuses traditional CAD-users. You must use groups or components to get rid of the ‘stickyness’
So when you are used to setting the active layer or selecting the lines and edges and then assigning them to different Layers, you won’t get by the stickyness unless you Group.
Forget about selecting the active layer, leave it to Default, draw something you can buy or build, triple click and if it is something you can use again, Make a Component, if it is something that is unique (a wall) then Group it.


The file was last updated almost three years ago, it’s usage notes even longer ago.
However, the usage notes still stand - nothing has changed.
Also the RBZ’s ‘signature’ is out of date, simply because I only get RBZs re-signed when something changes in the code. I have hundreds of plugins and getting them all re-signed every year is not something I’m prepared to do [each signing process is an admin overhead]. Having an out of date signature - or even no signature at all - is not really an issue.
Provided you get RBZs from a reputable source that you trust then the protection suggested by an up to date signature is illusory. Many extensions are only available outside of the EWH - from SketchUcation and authors’ own sites - these can get signed by SketchUp’s ‘portal’, but there is no checking of the content.
A broken signature suggests someone might have tampered with the RBZ’s contents, but an out of date signature is OK.
To use all such extensions change your Extension Manager > Loading policy to ‘Unrestricted’.
There has been talk that in the future a SketchUp version might only run extensions with a valid/current signature - however, there’s then an unacceptable admin onus placed on authors outwith of the EWH [especially when many such downloads are free], and also the complications that users would then have writing their own in-house Ruby scripts [since only accredited developers can get files signed, even outwith the EWH itself]. Going back several versions, the whole question of using ‘signing’ was debated [often in private exchanges], often heatedly, between SketchUp’s team and developers. My opinion is that in its current form it is not fit for purpose. I suspect that it is [or perhaps ‘was’] part of a longer term plan to restrict developers to only publishing through the EWH, and perhaps even change a fee to do so [they already take a % of paid extension purchases…], however, as stated’ such a move would sorely disrupt non-EWH affiliated authors and users’ in-house scripting…


This has been a sore point for me too. It seems that signatures “age off” when a new version of SketchUp is released, even if there has been no change whatever in the extension code. To avoid getting user complaints about outdated signatures, one has to re-sign the extensions every year - which causes the illusion that the author actually changed something.


Great. Thank you for this information. I am relatively new to SketchUp and this is very useful. I am using your extension now and it seems to work fine. I think the issue for me with layers is “change”. Changing how I have thought about it for so many years. Thank you for the free extension too.