How to apply materials by Tag?

I know this is probably not possible, but I ask anyways for the best alternative…

I have a very complex model with many components inside components.
Despite these components having many levels, they have similar geometry which share same tag.
For instance, I have 3 types of buildings (components) these buildings have typological units inside of them (other components) each building has approximate 7 types of units. Each unit has glass, walls, slabs, facade, etc.

All glass geometry is in tag named ‘Glass’
Now, on any other software I could apply a Glass material to my Glass tag and have all the geometry there be actual glass.

But here, it seems my only option is to:
click inside my building component > click inside my cluster component > click inside my unit component > select all tagged by glass tag.

repeat for all my units components (aprox 30)

First, geometry should NOT be tagged. Only objects (components and groups) should be given tags.

Tags are not meant to have materials like glass. You could use Color by Tag and choose a color for the Glass tag to suit. And you can reduce the opacity of the color in the Color picker panel.

1 Like

You can assign a textured material to the TAG in SketchUp already.
Then to show the textured material from TAGs activate the Color by Layer rendering option in the Style menu.

Here is a tutorial

I disagree. It’s fundamental for most workflows.

I have Enscape materials with multiple textures (albedo, normal, rougness)

Not in SketchUp. You ought to read the Help article on using Tags in SketchUp.

1 Like

A SketchUp Extension could be created to transfer TAG materials to model and display them without needing to change rendering option to ‘Color by Layer’.

I might give this a try in the future.

1 Like

But isn’t tag material limited to color only?

1 Like

No. You can add a texture in the Edit Material panel. Did you even try?

Concrete texture on piers comes from texture applied to tag.

There is a Tray dialog called: Outliner. Perhaps might be easier to navigate in-out such a structure…

One of the benefits of components is that if you paint the face in one component it will also be painted in all the other components. A correctly built skyscraper can have textured windows quite simply.

2 Likes

You can use Textures with TAGs.

Here is Example Video:

As I mentioned before it would be cool for a SketchUp extension to transfer material from Tags to SketchUp faces affected by the Tag. Will see if I can develop this feature soon.

Cheers!

1 Like
I'm afraid you will have some difficulties...

You can not retrieve material via Ruby API. You only have the #color method to retrieve the color of the layer. (with the limitation that the alpha channel can not be read properly)
See also e.g. here:
How can set the material of layer by RUBY API? - #2 by dezmo

Perhaps using C API, but I’m not familiar with it…
C API : Get and Set Material Color for a `SULayerRef` · Issue #418 · SketchUp/api-issue-tracker · GitHub

1 Like

Right, but where do I add the ‘normal’ and rouguness texture?

Natively SketchUp materials don’t have ‘normal’ and roughness. That comes from the renderer.

If you were using a proper modeling workflow you wouldn’t have issues like this. I don’t understand why you are so resistant to developing a useful and efficient workflow. It’s clear from your replies to those of us trying to help you that you don’t want to do that so I’ll stop trying and just wish you good luck.

Thanks for the heads up.

Maybe in the future, the SketchUp Team can add a method for retrieving Tag/Layer material.

I want to learn C in the future for creating SketchUp Extensions.
I wonder what is the best way to learn it.

1 Like

1 .“Books”,
2. examples,
3. trial-and-fail
4. Start form 1.
…and ask in a proper Category in a Forum :stuck_out_tongue_winking_eye:
:innocent:

1 Like

I am using an industry standard workflow where you organize your geometry by layers. This is a Sketchup’s limitation which goes against every other CAD and CGI modelling software. I say a limitation because layers are extremely useful when combined with tools such as Locking, Hiding, Coloring, assigning Materials, etc.

There is nothing efficient about not being able to assign materials per tag. You obviously have never worked on a complex model like a master plan. Besides, not everything is done in Sketchup but many things are imported from other team members as well as exterior consultants, many who do not model in Sketchup alone.

Also, this model was not done solely with the purpose of visualizing, but instead it is a construction of typological units. Like I previously described, each building being a component, with other units inside of each, which are different types of units, and then each unit has louvers, slabs, rails, windows, etc.

What useful efficient workflow do you suggest or does Sketchup offer me to apply materials to these objects without.

  1. having to enter each individual component.
  2. having apply a material to each individual object inside each component, for example, for each window inside each unit.

You are not trying to help me. Telling me to use a ‘proper’ workflow, meaning I should re model my file form scratch is not help.
Even doing so would not solve my problem.

What are you suggesting actually? That I have no components except my 3 main buildings, and the units are not components but rather groups, and each planar surface that has to be assigned glass be one big group? And then how would I update my units and buildings when I want to perform changes to the components and have them update across the entire masterplan?

I want to keep the parametric advantage of components (so that I can make a change and all units of that type are updated) and also have all my glass be render like glass. Please tell me how I go about it.

I have 3 level nest components. x 20 components x 5 windows.

So just to do one I have to:

Get inside main component>second level>third level>select 5 windows individually>apply material.
x 20

From what you describe, you have groups.
It you had actual components, modifying one would modify the other 20. unless your 20 windows are actually 20 different sizes. THen again, there is an easy solution, as long as you implement it from the start of the design.

———

Every software has its workflow. You don’t work in sketchup the same way you do in blender, revit or maya. Trying to force sketchup to work like archicad (for example) would be like trying to hammer screws. We all adapt to our tools, different tools have different outcomes.

well, I have, 40K square meters, 300+ animal boxes, each with a window and a door (and elements coming fro and to archicad, autocad and rhino), and I can tell you, there is nothing efficient about working your sketchup model by assigning materials by tags. Sketchup is an object oriented software, you’re supposed to paint the objects. Colour by tag can be a very useful secondary colour in your model, but I’m pretty sure it wasn’t implemented as a main way of putting materials

I believe what you’re describing is actually part of the reason why Layers got renamed to Tags. Many cad users tended to attack their model in SU the same way they did in autocad (for eg.), trying to assign different geometry element to different layers, resulting into a layer nightmare.
Tags are for objects. Make an object, group it or compose it, then tag it.

———

Now for the tip.

Here is a simple glass panel. Because it’s late, I did it without thickness. I made a component of it, called GLASS PANEL.

whenever I need a glass panel in a window, regardless of the size, I’ll use this one, and (if needed) scale (from the outside) so it fits. Result ? All my windows have the same glass panel, stretched if needed. And By repainting ONE glass panel, I repaint all my windows. It helps that my glass panels are basically a simple colour with a low % of opacity, so deformations are invisible.


20 different components… not instances of one same component.
I have 20 unit types. Each one is a different component.

I am afraid this doesn’t work, about 7 people did the totality of the 20 units, so no one single glass panel block for all.

Also, having to actually construct your whole model with a single panel component for all your windows in your model is an extreme long shot, like I can’t believe you are actually endorsing this instead of layer material assignment, which is exactly the kind of problem it solves.