Edge of face on invisible object obscures coincident edge on face of visible object

Sometimes in my drawings I have some part of the drawing that I wish not to display. In some cases it is easiest to turn of the visibility of the tag that I don’t want to see. I find that when there is an edge of a face that is on a tag that is not visible it will obscure the visibility of part of an edge of a face that happens to be coincident with the invisible edge. This also happens when I just select and hide the object that I don’t want to display. I checked and this problem seems to occur only when the faces are primitive objects (not part of groups or components) so there is a way to work around the problem. Still it seems like something that should not be happening.

Without seeing your model I can’t give a specific diagnosis. But tags should be applied only to components and groups, not to edges and faces.

I sounds like there is some confusion here about how Tags work. All raw (primitive) geometry should be created and left with the untagged designation, always. Only groups and components should be assigned tags. Tags do not separate geometry, only groups and components do that, so all raw geometry regardless of its tag or visibility state will automatically merge together and interact. In raw geometry it is impossible to have an edge “hiding” an edge. There are no “coincident” edges, if you draw an edge over an existing edge they merge and there is only one edge present. Regardless of if one of the edges is made invisible through assigning it a tag, this is why it should never be done. Tags do not separate geometry, only control its visibility on your screen, invisible things still interact, you just cant see it. If you have two rectangles sharing an edge, there is only one edge there, this is standard behavior. You need to be leaving the pencil in the tags window set to untagged and making groups and components of your geometry.

OK - Given the fact that there is only one edge where the edges of two faces might coincide I can see why part of an edge might disappear if I turn off the visibility of a given tag. However it is interesting to speculate as to why SketchUp makes the decision that the given edge belongs to the tag whose visibility has been turned off rather than to the tag that is still visible.

As to whether or not I am confused about how tags work you can be assured that I am not. I simply do not happen to agree that tags should only be used for groups and components. It seems to me that as long as tags are used to control the visibility of objects that there need not be any reason why that should not apply to simple objects if a given user chooses to use them that way. It is obvious too that SketchUp does in fact allow tags to be used that way. I find that to be useful in some circumstances. Rather than trying to steer users away from using tags for simple objects why not make tags used with simple objects even more useful than they currently are? It could, for example be very useful (at least to me) if simple shapes with different tags could be prohibited from merging with each other. It would then not be necessary to use groups and components as much in some situations.

I have one example that occurs to me that I have in my work that seems like it would be hard to deal with without using tags on primitive objects. I have a dynamic object that is a simple block of wood. I use that object quite a bit for building 3D models of house framing. I built the dynamic object tagging the faces with “wood”. When I place copies of the object I usually tag them as “wood” as well. However I sometimes want to use tags that indicate the actual use of that particular piece of wood. I might tag one instance as “header”, another as “stud” and another as “trimmer”. I still want to be able to turn the display of “wood” on and off without having to turn off all the usage types of tags that contain wood objects. I also want “wood” to be displayed for any usage type of object that is visible.

OK. I can lead a horse to water, but I can’t make it drink. If you continue to assign raw geometry to tags you will likely continue to see the popup warning window that your geometry has merged with invisible geometry. Groups and components are the correct way to isolate geometry, there is no need to change the way tags work. The more nuanced multi level hiding you describe is currently available by grouping tags in folders. Visibility can be controlled individually or in batch by hiding the whole folder. There are a few rare cases when primitive objects can be assigned tags without risking unintended interaction, but 99% of the time it’s inappropriate. If you would rather carefully manage all potential geometry interaction manually, visible or invisible then OK. I would point out that you are holding the tool backwards but I see from your previous posts that this is an opinion you have held for a long time and you seem convinced that it’s the right way, so go for it. Best of luck.

I have not actually been using tags on primitive objects to isolate geometry since SketchUp clearly does not work that way. I had some hopes that SketchUp could be modified to let me do that but there seems to be a lot of sentiment against that approach. I can also see that it might not be all that easy to change the code relative to primitives depending on data organization - and I do have some experience with coding CAD software by the way. I do in fact use components to isolate geometry and perhaps should make greater use of groups than I currently do. I really do only use tags to control what is visible in a given drawing and except for an occasional very simple drawing pretty much everything I draw is in components once I finish the drawing.

I can try creating the objects that I use without assigning tags to the primitive geometry. If I were to do that how would you suggest that I configure the type of object I described in my last post? I had not been aware that there were tag folders but I am not sure how that could apply to my case. Certainly the content of my basic wood object could have the primitive content un-tagged and I could tag all placements of it as “wood” but then how would I also tag some placements by function - such as “stud” or “header”? Usually when I draw something like a concrete foundation I set the default tag to “concrete” and draw. I then set the default tag to something like “foundation” and make a component. I guess I could first select all of my un-tagged concrete shapes and put them in a group with tag “concrete” and then put the group into a component with tag “foundation”. Is that the approach you would suggest?

Clearly you have thought this through and have developed a way of working that is functioning for you, fair enough, I’m not here to argue or call that wrong. It might just be working a bit too hard. It sounds like you are very aware of the dangers of merging invisible raw geometry and are taking careful steps to manage and avoid that. For the majority of users especially beginners it is extremely important to grasp the concept that tags do not isolate geometry and that to move the pencil to a tag other than untagged or to tag raw geometry almost inevitably sooner or later leads to merged, unsquare, distorted models and frustrating confusion. As you said, its just not the way SketchUp was designed to work.

Your profile is not complete so I don’t know what version of SketchUp you are using. Tag folders were introduced in 2021 to allow more nuanced hiding. Since you asked, here is an example of how I would organize a model using components, tags and tag folders.

The added advantage of this method of naming components as you go is that it allows you to use the Outliner to quickly navigate and organize you model in hierarchical text form, which becomes more and more use-full the more complex a model becomes.

The main reason I am using a dynamic wood object rather that primitive objects like in your example is that I have set it up so that the internal name of the object changes with the size of it. I can then take advantage of that information in the reporting mechanism when I want to create a parts list. I have done that quite a bit for tiny house designs where I can produce a complete design for the frame that includes a materials list, a cut list and build drawings for each of the panels to be prefabricated. Of course since I build the complete 3D model I can also show various assembly oriented views. As far as organizing the various wall panels and etc. I typically do not use tags to label them. I usually only use component names and tag all objects of type wall as “wall”. For a tiny house design there are not all that many different wall panels, roof panels and etc. I have typically found it sufficient to control my viewing by turning off a whole tag - such as roof - and then hiding any wall panel that does not need to be in a given scene. Once I have scenes set up I don’t have to use tags all that much to change my views. I also have built some more complicated dynamic objects that allow me to, for example, place a wall panel and specify its height, width and thickness. The dynamic object then places all the internal components needed for that size wall panel. I have one that allows me to also specify the size and location of an opening along with the overall dimensions of the wall and the dynamic mechanisms are capable of placing the hole in the wall and building the framing around the opening. That’s all done with the dynamic object capabilities without having to write any Ruby code by the way. Since I am using my smart wood block inside of the more complicated dynamic object I can also get a report for material usage and cut list purposes.

I could share one of these more complicated dynamic objects but I am not sure how to do that here on the forum. Would I do that by using the upload button in the menu and uploading a drawing file?

That’s one good way of doing it.

You could also (if you want to make them easy for others to access and use) upload the models to the 3D Warehouse, and provide a link or links in the forum thread here. Or better, start a new thread.

I had another thought about the fact that using different tags on primitive objects can cause problems. Since primitive objects that are in groups are prevented from merging with other primitive objects a simple extension of the grouping mechanism could perhaps be used to allow using different tags on primitive objects without having the merging problems. Of course a user could do that manually but what I thought might work was to have a hidden automatic mechanism that assigned any primitive objects that have a different tag than “Untagged” to groups that are invisible to the user. This would prevent primitives with different tags from merging so the prohibition of using tags on primitive objects could go away. Then it would no longer be necessary to warn new users about the evils of using tags on primitives. How about it?

That would work, if implemented.


  1. I don’t see how your proposal would work in practice any differently from leaving the geometry Untagged and manually creating a group or component, and assigning a tag to it. What’s the advantage of your proposal? And by hiding the group, you make it even more likely that the user (especially a new user) will be confused by what’s happening.

  2. The current way of working has been fundamental to the way SU works since groups and components were first introduced. It’s extremely unlikely to change for that reason alone, and even less likely since I see no apparent benefit from the change. (Just a user observation - I have no inside knowledge of the SU team or its priorities).

My thought was that if the grouping by tag of primitive objects could be done in the background without the user needing to know about it then it would eliminate the need for new users to be taught that they should not do something that the software now clearly allows them to do. It would make SketchUp more bullet proof which I happen to think would be a good thing. SketchUp folks could stop having to explain to users like me why I should not be using a feature that for the most part works fine. The solution I suggested would make the feature work entirely fine and would make the use of SketchUp even more flexible than it already is.

To answer an earlier question I have the latest 2021 release and I do see that there are tag folders.

I am uploading a drawing file that has two examples of nested dynamic objects. They are both different types of wall panel that I have used in tiny house design work. The primitive objects nested inside of the lower level dynamic objects have different tags on the primitive objects. Open the “component options” dialog box and click on one of the panels. You will see the options that I can use to size that wall panel. Try changing some options. Click on the “frame” scene and select one of the wall panels and edit into that component. Select one of the wood frame members and look at the “component options” dialog box. Note that the name of the component in there shows the size of that wood member. That is the information that I can use in the reporting mechanism to create a materials cut list. Those values change as the size of the wall panel changes. See what you think…
2 wall panels.skp (413.7 KB)

The main problem is that a face cannot exist if it doesn’t have edges that bound that face. Wether this was intended or not, you can group edges, but not faces without SketchUp generating the edges that are needed to create that face. You cannot control that by setting the active ‘tag’, so this might invoke situations of obscuring edges.

I doubt they will address this. The whole purpose of SketchUp at the time most CAD applications where difficult for senior drawers was to implement a very intuitive way to draw edges in a 3D environment and have it create those faces automatically for them!

As you said, if you have the discipline to be aware of the active tag while creating stuff, this should all work fine.

Along the way, most modelers seems to go ‘object’ based, instead of ‘visual representation’ based

The outliner or model tree is more important than Visibity Tags

This is not a bug. As you wrote, a face cannot exist without the edges that define its perimeter (“outer loop”). But no entity can exist in two contexts (model, group, or component), so if you group a face SketchUp must make copies of its edges in the context of the new group, regardless of whether the edges were selected when you made the group.

Yes, if should have said that it was intended :grinning: