Scenes are not updating

If you create new layers after creating the scenes, there isn’t anything in the scene definitions to say that layer should be turned off. There are several plugins/extensions that can create layers which are turned off for existing scenes, though.

The source of nearly all of the confusion about layers is the misperception that layers “hold” or “own” anything. This results from a combination of user experience with other programs that use “layer” to mean very different things than SketchUp and language that has become conventional in the SketchUp community even though it is misleading. We talk about a Drawingelement (edges, faces, arcs, dimensions, text, Groups, ComponentInstances) being “on” a layer, which encourages a mental notion that the layer is a thing that somehow contains or delimits the DE. People with a background in apps such as Photoshop expect to take the word “layer” literally: they expect a “viewing stack” in which higher layers obscure lower ones. People coming from CAD expect “layer” to be an organizing structure that isolates one kind of entity from other kinds.

But in SketchUp these notions are wrong! Every DE refers to a layer, not the other way around. A layer is a very simple data object that just contains a name, a yes/no visibility, a color, and a variable that determines how it is treated in new scenes. Many DE’s can refer to the same layer object, but the layer has no notion of what refers to it, hence no way to “own” any DE. When a new DE is created, it is automatically set to refer to the current “Active” layer. By various means you can later change the DE to refer to a different layer.

When drawing a DE on the view, SketchUp consults the layer referenced by the DE to decide whether to show that DE or not. That’s a very important point: SketchUp starts with the DE, not with the layer. With one exception, this process is followed independently for every DE in the model. To reiterate, SketchUp does not do all of one layer then all of another layer, it does one DE and then another DE without concern about whether they refer to the same layer. The exception is that if the layer referenced by a Group or ComponentInstance is not visible, SketchUp does not draw any of the contents regardless of the settings of the layers they reference. There is also a subtle wrinkle: the current scene can remember the visibility setting of the layers when the scene is updated, and SketchUp subsequently uses these saved scene settings to temporarily override the ones in the layers themselves while drawing that scene.

The standard advice about keeping all primitive geometry (edges, faces, arcs) on layer0 is to avoid very severe confusion that can result from the logic described above if this rule is violated. You can actually cause the edges defining a face to refer to a different layer than the face! When edges are softened/smoothed to create a surface from several faces, this can cause the profiles of the surface to display even when neither the face nor its edges are visible! Similarly, you can get into extremely confusing problems with Groups and ComponentInstances whose contents mysteriously fail to appear because their contents refer to a layer whose visibility is off. Mix this with the override facility of scenes, and complete chaos can result!

With a great deal of discipline you can successfully ignore the advice. But the majority of people who do so eventually run afoul of SketchUp’s logic and produce models with misbehavior that they can’t figure out.

1 Like

All of this is quite simply a flaw in the design of the program. It is not the only flaw, but it is the main one. I really like SketchUp, don’t get me wrong. But if you should only draw on Layer 0, why is it possible to make any other layer the “Active” layer? Why call them layers? The program would be much more robust and useful if the developers would simply admit that they made a mistake and correct it. Drawing Elements should be attached to layers. The layers should be lockable. LayOut has this correct. Why not SketchUp?

I am not a software developer, but I cannot imagine this would be that hard to fix. Also I cannot imagine any real utility for not having real layers. The concept of layers that can be turned on and off, locked and protected is fundamental to any graphics program. And given SU’s emphasis on getting people like me to try to produce Architectural Construction Documents with this tool, this really must be fixed. I have, in the last 4 months, been trying to use SU for my CD’s. Is has been a challenge, made more difficult by the layer issue. I have worked around it, as I have worked around the lack of any line type definitions of any kind.

The most annoying thing is the introduction of the Layer 0 only “rule” to hide the basic layer structure flaw.

Dave,
you are a saint!
Many thanks for taking the time to correct my model and point me in the right direction concerning layers.
I’ll have to read your post a few times to get my head around it, but it sounds like I’ve fundamentally misunderstood a very basic modelling concept, and you’re right, if I can implement the correct rules it should really cut out a lot of wrangling of my models - which converts to many hours of saved time! So thank-you for that. I think, like a lot of people, the nose always seems to be to the grindstone, trying to hit deadlines and produce drawings, when lifting our heads up can help us find a better solution.
thanks again
Gavin

wfon,
thanks for taking the time to write. Like yourself, getting to grips with groups really transformed how I used Sketchup. The advice from DaveR, I think - I hope, will be equally monumental to my ability to make successful models.

Thank you, Gavin.

I think you’re right about the grindstone. Often there’s such a push to get things done, one doesn’t have the opportunity to learn the best way to do them.

In addition to getting the layers business straightened out, give some thought to how you are constructing your models. Think about ways to create components that might be reused in subsequent models. Make them such that they are easily modified when you need a similar but different cabinet. There are many ways to streamline your workflow to save yourself time. Some of those things may look like additional work on the front end but have the potential to save you many times over later on.

Good luck with the modeling.
Dave

I linked this to a new topic because it has wandered away from the original title.

Please forgive me for the length of my replies. I have a habit of wanting to write essays…

The term “layer” originated in 2D drawing and photo-editing apps, in which it makes sense to imagine that you are looking at a stack of independent sheets that may or may not obscure or interact with the ones “below them”. In that context, it has long been conventional to put related kinds of drawing elements onto the same layer so that you can manage their presentation together: “I want to see how the plumbing relates to the walls, show me just those two layers”. Likewise, 2D apps allow locking a layer so that you can’t accidentally move or draw things to a different, inappropriate one. Each layer is effectively an independent sheet of imaginary paper on which you can draw before stacking them to make a completed document page.

Layout is a 2D presentation and drawing app, so it conforms to this notion of “layer”. The fact that it presents views of 3D SketchUp models does not change this basic aspect of Layout; a 2D presentation of a 3D model is ultimately just another 2D drawing.

However, this notion of “layers” does not make sense in a 3D modeling app such as SketchUp because as you orbit around the model there is no consistent meaning to “in front of” or “on top of”. What’s in front from one direction of view is along side or behind from another. But things can get in the way of each other, in a visibility sense. SketchUp’s layers provide an external place to store a yes/no visibility flag so that by all referring to the same layer an arbitrary collection of geometry can be switched on or off. But that’s all they do; they do not imply that these things are related in any other way or somehow gathered together on some 3D analog of a sheet of paper. So, yes, with hindsight, “layer” was a bad choice of name, particularly since Layout uses it in the conventional 2D sense.

But that does not make SketchUp’s concept a mistake or a design flaw, it just isn’t what 2D CAD people want from “layers”.

It is already possible in SketchUp to use Groups to prevent geometry from interacting with other geometry and for accessing all of some related kind of geometry at the same time. Groups can be locked to prevent editing them, including changing their “layer”. Scenes allow managing the display of different sets of content from different viewpoints. It would seem therefore, that the real question is “how can one organize a model in SketchUp so that all the entities of one sort are mapped to one Layer in Layout, all the ones of another sort are mapped to a different Layout Layer, etc.”? I’m not a Layout expert, so I won’t try to answer that, but no doubt another in this forum can. If it is possible to do, then it is a matter of learning how SketchUp and Layout intended you to accomplish it rather than of demanding that SketchUp replicate the way that 2D apps behave. If not, perhaps this would require a revision to the way Layout imports a SketchUp model.

Regarding the standard advice for how to use SketchUp’s layers, your questions and concerns have been raised many times before. Every time, someone comes forward to explain why the ability to make something other than layer0 “Active” is vital to their workflow, and to insist that they are mature enough to use sharp edged tools without cutting off their fingers. So, Trimble has left this as a matter of guidance and advice rather than hard-coded rules. There are excellent extensions and plugins, such as TIG’s layer watcher to enforce the advice for those who are less self-confident.

As a software developer, I am always amused when a non-developer asserts that something must be simple to change. I don’t have access to the source code, so I won’t pretend to know, but from experience I can think of lots of possible ways such a change might be far more difficult than you imagine. And even if it is simple inside SketchUp, it would likely break a large number of extensions and plugins.

You can always install my Extension:

This runs in the background… and it spots if you intend to change the current layer away from Layer0, and prompts if you really really want to do that.
It also makes sure all new edges and faces you create [with the native tools] will always be assigned to use Layer0, even if you have another layer set to be current; AND if you explode a container [group or component-instance] then its raw geometry is assigned to Layer0, rather than the default result - where container’s layer is used.
It also has a context-menu tool to default raw geometry back to Layer0, in a selection or selected-containers, if you have messed up…

I love how you pointed out how Trimble has left that as matter of guidance and advice.
But I do see a lot of ppl just cutting their fingers off.

The extensions like TIG’s layer watcher so useful.
Thumbs up! :+1:

25 posts were split to a new topic: Questions moving to 2017

Is there anybody in Trimble who can answer my question? At least that with the circle.