IDK Compilation

Added more search filters and corrected snapping ‘Panel’ shut for Outliner Options:

@DGSketcher You may have posted about something like this today ( Search & Isolate ).

1 Like

Added setting for Light, Dark, and Color Modes to some extensions. Change background color, font color, and font size. Save as profiles. Settings are persistent so last SU opens with last settings used.

I wasn’t sure if the objective was the same, so I thought a new thread might be more appropriate. I can see an overlap, but I see criteria filtering as something that doesn’t rely on duplicating the listing functions of Outliner or Tags. It needs to find & show elements that fit the criteria and hide the rest of the model. So unlike your latest version, under Type there should be the ability to filter Groups AND/OR Components and then add to that find Names that contain (or start with) say “Wall” as a starting point.

The search options in Outliner and Tag are just that, Criteria search would have the advantage of controlling the visibility of elements that meet the criteria and instantly hiding the rest of the model.

The challenge might be managing multiple attributes and how deep you can dig into them?

I’m happy to share my ideas if you think this is workable to develop an extension.

Ah. I just throw most of my extension ‘gallery’ stuff in here so I don’t mess up other people’s threads.

I made a call to show the ‘file tree’ that a group or component is in because it helps to provide context. For example, if you have a component “ThisComponent” in five different groups, listing “ThisComponent” five times doesn’t give enough info (you’d have to click on each one to highlight it in the model to see it and know which one is which). Tag switching was an objective with this extension, so that context seemed important even though it means it’s not only showing what is searched.

But I have another extension that searches components and it may be more like what you are saying. It can search through multiple selected folders, the SU model space, and Unused components. It just finds them but doesn’t have the tree structure.

Like this:

It might be cool to add filtering for tags to this. It doesn’t search groups… yet. Also, the focus there is adding and removing components from models but not controlling their visibility.

It does what you are saying… except not *necessarily" hiding everything else, if the searched term is nested in a group and is a component or is a component if nested in a group. It does do “Type”, which is 'everything/all", Components OR Groups.

And this one sorts ONLY G’s and comp’s because of the nesting:

There’s a lot of jankiness going on still. But I like these two extensions so will keep playing with them.

Maybe I’m misunderstanding what you’re saying. It would have thought you mean “controlling the visibility…” of what’s displayed in the search results (List elements?). Is that right? Otherwise, you could set your SU display to Hide Rest of Model, search with the Outliner, select it (to find it in the model space) then open it for editing in the model space:

That’s one way of hiding. Then there’s Hiding with the Outliner. Then there’s ‘visibility toggling’ with Tags.

These aren’t actually “attributes”. If you want to add attributes, you have to attach an attribute library. The DC extension does that. Or extensions can do that. It’s a little confusing that people say “Multiple Tags” because “Tags” are actually “Layers” and what people usuallly seem to want are “attributes” that act like Tags for controlling visibility… which can be done. Otherwise, you can add all sorts of attributes and then it’s what you’re going to use them for.

For example, adding multiple attributes:

It’s fun to learn of different perspectives on SU in general so I’d be interested to hear any ideas you have.

A change to Outliner Options: rename selected.

Component Browser with filters for name, component or group, and/or by tag.

1 Like

You have a lot going on there James! Let me simplify my vision… This is just a quick mock up in Excel but it should give you an idea of the interface I was thinking of…

Screenshot 2024-08-13 at 10.22.32

So in long form the results of that search would display only Components AND their instance name could be Door-01, Door-02 etc OR Wall-001, Wall-102 etc, AND the walls and doors all need to be tagged as being on the “First Floor” AND have a Status description contains the word “Fire” e.g. “FD60 Fire Door” or “Fire barrier”.

Having applied that search everything else that isn’t a child of the found elements in outliner is hidden when the search is run.

There are other condition options such as “Is not” or “Ends with” and case sensitive might be needing considered.

That’s it, that’s all. Any selection for editing or saving to Scenes etc then follows normal SU workflows.

Edit: While I remember this process also relies on ALL tags being ON. Otherwise they would override the visibility set in Outliner.

@medeek regarding Medeek Floor - #50 by medeek I think having tooltips placed right next to tools is a good idea. It’s kind of like putting the help where it’s needed.

Example html
<button class="accordion main-accordion">
    Select Folder
    <span class="tooltip-container">
      <img src="../icons/info.svg" alt="Info" class="info-icon">
      <span class="custom-tooltip">Select the <b>Tag</b> or <b>Folder</b> checkbox to create a tag or folder. 
        <br><br>Select a folder in the folder hierarchy to <b>Highlight</b> it and add a tag or folder.
        <br><br>Use the <b>Update</b> button to update the folder hierarchy with tags and folders in the SketchUp Tags Panel.
      </span>
    </span>
  </button>
Example css
.tooltip-container {
  position: relative;
  display: inline-block;
  z-index: 1;
}

.custom-tooltip {
  visibility: hidden;
  width: 220px;
  background-color: rgb(230, 232, 235);
  color: #333;
  font-size: 12px;
  text-align: center;
  border-radius: 6px;
  padding: 10px;
  position: absolute;
  z-index: 2;
  top: -95px;
  left: 0%;
  transform: translateX(-100%);
  opacity: 0;
  transition: opacity 0.3s;
}

.tooltip-container:hover .custom-tooltip {
  visibility: visible;
  opacity: 1;
}

.info-icon {
  width: 14px;
  height: 14px;
  vertical-align: middle;
  cursor: pointer;
  float: right;
}

Modus info icon: Info (Modus Outlined) · Modus Icons (trimble.com)

Looks like this:

I could imagine an enhanced version that’s formatted a like the Instructor panel.

1 Like

I have been doing this already with many of the parameters, notice the question mark icon next to some of the parameters in the global settings of the wall plugin:

2 Likes

It looks good. I’m not a user of Medeek but I watch your posts as you have a lot of features that I’d like to get working in my ‘brain child’ extension… that I don’t post here because I can’t get them all working!

Are you using Html Dialogs on an older version of SU or Windows?

Windows 7, SketchUp 2017 Make it appears.

2 Likes

Thanks. I wasn’t sure back when I was trying to get ANY UI working and thought it might be a Web Dialog because of the display… I made a fork in the road and really only looked at Html Dialogs because I thought Web Dialogs were deprecated… So good to know it’s not a Web Dialog! ;^)!

Alright, I had some fun trying to work through these ideas. The first issue seemed not to be searching but adding the ‘what’ is to be searched for (have Terms, Tags and Component Or Group in examples above). I tried using native Advanced Attributes. There’s a Description field and Status… but couldn’t get all of them to work… thought about using Dynamic Components… but that didn’t feel right. So, adding an attribute dictionary seemed to be the only way to go. For something new, I tried creating key-value pairs so attributes are ‘like’ input fields and the value ‘feels like’ a parameter. Really, both can be searched/filtered. Anyway, I need to build out search methods but this way of adding the ‘what’ to search for may be flexible enough to fit all of what you’re describing.

1 Like

I’m still finding my feet on SU workflows, but aren’t Dynamic Components the key to storing custom attributes in SU? I’m not familiar with the term “Attribute Dictionary” so I don’t understand how that fits into the SU workflow.

I appreciate this could be a complex issue and I have a simplistic view of the end requirements, so don’t feel compelled to find a solution.

They can be a way to create/store custom attributes. The DC extension uses an attribute dictionary called, “dynamic_attributes”. But the Dynamic Components extension code isn’t available to read so there’s some guesswork in using it.

Without using the DC extension, there are Advanced Attributes you can access in the Entity Info panel. There’s also a Description field available when you create a component or via the Components panel (this “Description” is not the same “Description” that DCs have - they are in different attribute dictionaries). I believe those are written to the SU_DefinitionSet. So let’s say you wanted a “Description”. Would it be the DC description or the component description? Using one or the other would be the simplest way but if neither is needed and you’re making an extension anyway, you may as well just add your own attribute dictionary.

So to circle back… you’re using terms like “Attribute, Type, Instance Name, Tag and Status” and want to search these (but these are disparate entities). In addition to that you’ve described components as being ‘tagged’ with Strings of words (which could be Tags but you can have only one tag per Component). Hence the idea of adding attributes and having the flexibility to name these as you will (any user could come up with their own schema). Your comments about visibility got me thinking too. Should everything that is not in the search be hidden in the search results, or the model space? Visibility in the model space can be controlled with Tags or attributes… so it’s possible to hide everything except the search result. Well, no conclusions here just opportunities to have some fun messin’ around…

1 Like

Many thanks for the explanations. They’re kind of getting beyond my past programming experience (mostly GDL in Archicad). I didn’t realise there are two hosting systems for data, I was thinking each group / component had its own store. I can see how that complicates things even with just the “Description” field.

I need to go and think about the application of Attributes. I now see why there are extensions out there to apply these rather than just using basic editing of components.

Visible searching was the cornerstone of what I was looking to achieve e.g. only elements that meet ALL criteria are left on screen. That may not be too difficult with instancing or tag names but there is at a basic level a disconnect from the Advanced Attributes. To have any benefit the extension needs to easier to use than simply adding / subtracting elements containing in a well organised Outliner tree.

That’s a cool idea. Is it possible to gray things out (maybe even in x-ray view) the same way objects get greyed out when you open a group or component?

Attributes would be a good name for what you are describing, but “class” might work well too in order to avoid confusing ‘DC Attributes’ with ‘Entity Info Attributes’ with the tag-and-status like attributes you are describing. I don’t know enough about how the ‘classification’ menu works, but even the SU interface itself can’t decide whether to call IFC items ‘classification’ or ‘type’.

Hmm. I just realized that searching and then double clicking (or just double clicking) in the Outliner does basically the same thing (Hides that which is not selected in the Model Space) when Hide rest of model is enabled.

Here I just Double click but the effect is the same:

Otherwise, the Fade similar setting fades the rest of the model… which isn’t quite X Ray but similar (Double clicking in Outliner).

So, one thing that may be possible would be to Double click (enter editing mode) via selection in the extension.

Feature not shown, but may be possible to add (double clicking allows changing the name, like Outliner):

But… that’s something Outliner already does…

Yeah, there’s an issue that people say they want “Multiple Tags” to control visibility. As far as I know, you can’t put more than one Tag on any entity. So, to get around that, you can control visibility with multiple attributes. Then you either have a Tag and an attribute, or multiple attributes (and a Tag if you want) that act like Tags for controlling visibility.

This is an example of ‘Multiple Tags’ (multiple attributes) controlling visibility:

I think it’s the function, not the name, that matters. So, the attributes could be called “Tags” in the user interface as long as the user gets the feature they are looking for ;^)!

I’m not sure about the use of the term “class”. If a class is a “classification”, then that which is in a class is different than that which is not in the class. Think of biological classification (taxonomy). Animals in mammals and birds are in different classes. Contrast that with a “group”. A group can contain all sorts of things: rabbits, birds, chew toys, frogs… I think the way you mean class -in SketchUp- is kind of like the ‘programming’ term where a class is like a ‘prototype’ of a thing… like a component definition. And then there is the Classifier tool! I don’t know much about IFC or any other classification system that can be used in SU. Anyway, I don’t know what to say but that the way the DC extension, Attributes of components, and the Generate Reports feature work together is not seamless (e.g., “Description” is redundant). Then there’s “type”. Maybe Trimble Connect will be the unifier of all model data.

Back to the start… I might try to hide everything in the model except the searched item… 'cause it might be kinda cool.

The double-click functionality from the outliner panel saves a lot of time. I use it constantly on models where I have remembered to name all my objects.

I interpreted your visual search idea to be like an instant spotlight shining on all the components that matched the search terms, similar to Gaia GPS’s interface. More than anything, I thought it would be flashy and cool—but definitely not an important.

Its really interesting and cool too see the ideas you are developing.

That is a good point. Attributes is probably the most appropriate term. I definitely see the need for having attributes as there are often times where I want to define an item by multiple things. But as tags themselves control line weights in Layout, it’s very important that there is only one tag per object.

Because Sketchup is asking for user feedback on panels, I started sketching ideas for a document navigator (similar to Fusion 360) to supplement (but not replace) the outliner, tag panel, and scenes panel.

I began organizing the navigator in such a way that objects (components & groups) could be organized without requiring double-clicking in-and-out: say you have a group that contains 12 groups: 4 of those groups are tagged “furniture”, 6 are tagged "walls " and 2 are tagged “windows”. If the navigator panel recognized this, it could nest groups with the same tag under the tag name, to reduce clutter in the navigator panel while still allowing each group to be moved and manipulated separately. I took this a step further and created a new type of group called “collections” that really only exist to organize the navigator panel and not much more—similar to how Revit and Vectorworks uses the class “levels” to organize layers by level type. But since Sketchup is used by more than just architects, I wanted the term to be generic enough to work in any use scenario. I wish I had access to Sketchup/Trimble/Modus native icons, but since I didn’t I used the MacOS GUI Icons instead.

1 Like

I see. I’m guessing it might be slow to churn through everything. But maybe not.

That’s pretty awesome.

Tag Groups: The Groups are named? The idea being that anything Tagged with the Tag is automatically put in the Group with the same (or specified) name?

Would this miss the finer distinctions among components? For example, in your Tree Tag Group, you want “Tree”. But you also want “Tree - Tall” and “Tree - Short”. Or in Terrain you want “Terrain - Topo” and “Terrain - Mesh”? So, actually you’d want ‘Tag Groups’ that group a number of specified tags? This would be different from Tag Folders because you aren’t Grouping Tags into Folders but grouping Groups and Components that have Tags using ‘Folders’ (which aren’t themselves groups)?

Maybe a Tags Panel that shows Tags but with Groups and Components that have the Tag listed below?

I have something… Attribute Groups. You don’t add the Group or Component to an Attribute Group. You add attributes to Components and then put them in Attribute Groups.

  • I’m super tired but might try some of your ideas over the weekend…

  • I try to modify the Quick Reference Guide for icons:

QRC2024-SU-Windows-en.pdf (sketchup.com)

  • The Modus icons are available here:

Modus Icons · SVG icon library for Modus (trimble.com)

1 Like

I might need to clean up the interface a little to better explain it. As far as the actual data and structure of the document, nothing would change about tag groups from how they are currently (maybe I should have referred to them as “tag folders” as that’s what Sketchup currently calls them. All I’m doing is organizing them into similar groups, sort of like how on a Mac, you can “stack” icons on your desktop icons by file type, date added/modified, and tags. These icons are all still floating in the same “desktop folder” on your hard drive so that you can change the parameters of how you “stack” icons without changing any folder structure. In sketchup, that means that if you have 3 or more objects tagged “Tree-tall” they will automatically show up nested under that tag. But if you only use the tag “tree” and simply rename the objects “tree-tall”, then you will see each object individually without nesting. The idea is that there is that the user doesn’t have to remember to name each individual group or come up with memorable names for every component, but they can still find the objects/groups/components by both their tagging nomenclature and group structure.

I like your attributes panel. I think I use tags for exactly what you are showing with attributes. I’m curious about the “select” list. Are those predefined attributes someone could load into their blank template file so that they would have consistent nomenclature every time they used that template, or are these attributes the user would create on-the-fly and they show up in the list because they haven’t yet been assigned to a Attribute Group?

Thank you for sending the Sketchup icons and the Modus Icons. I wonder if I can peel the sketchup icons out of the PDF easily.