I would like to show particular related components in a different colour. Is there a way to do this through ruby without setting the global style? This will most likely be done in the tool’s draw function.
You can show objects in their tag (layer) color, but yes you have to temporarily change the style to “Color By Tag”. (Or temporarily add a scene page with it’s own style, and change that. Then when the tool ends, switch back to the previous scene page, and delete the temporary page and it’s style.)
Otherwise you would have to trace over the top of a component’s edges with view.draw calls. This might be slow.
You could just draw the component’s bounding box in a highlight color. That might be faster.
Usually when we make style changes, we save the current settings and restore them after whatever we needed to do.
model = Sketchup.active_model opts = model.rendering_options cbl = opts["DisplayColorByLayer"] opts["DisplayColorByLayer"]= true # do whatever opts["DisplayColorByLayer"]= cbl
Ok. Thanks. I’ll think about the design.