Refreshing a hierarchy object is very often a CPU intensive activity.
Think of for instance the Windows Explorer: if you have many items displayed, then any refresh or activity in the explorer takes long. If you collapse all folders and you do not have many top level folders in the hard drive, then expanding and closing a folder is quick. Same is with the outliner, because it is also a hierarcy of all objects with subfolders being the nested objects.
As long as the number of displayed items in a hierarchy is not too big, all is fine.
Therefor, if you collapse levels in the outliner and the number of items displayed is roughly below 100 at any time, then all is fine.
In my model, when all levels are colapsed in the outliner, I have 700 top level objects, meaning there are 700 lines in the outliner displayed.
If now I edit one of these objects (double click on a component in the viewport to edit it), the outliner hierarchy has to be refreshed in that the object double clicked has to be expanded to the next level.
Expanding that single component in the outliner is in fact not an issue, but refreshing the outliner with this expanded component is, because it redisplays all the 700 items. (I can imagine, that this refresh operation could already be improved in the SketchUp code - but this is not the point here)
To demonstrate, that the number of lines displayed in the outliner is the issue, I grouped the 700 top level objects into 10 groups. The outliner shows then only 10 lines. Nested underneath these 10 top level objects are still the 130’000 components/groups. (See print screen below. outliner = Gliederung in German)
If now I work in the model and double click a group or component to edit it, all is fine. The refresh takes
no time, if the component you edit has a few sub components and it takes more time, if it has a lot sub components. That is all fine.
If now you continue and double click on different components, the list of lines in the outliner gets bigger and bigger and the outliner refreshes slower and slower.
If now I would choose in the outliner to expand the whole hierarchy (with all the 130’000) subcomponents/groups) then SketchUp will hang. But why whould I ever want to display 130’000 items?
So if SketchUp would provide us in the outliner with functionality to keep the number of displayed items low, all would be much better.
I think we need to have the following options:
-
Option to show only components/groups visible in the viewport
-
Option to show only components/groups selected
-
Option to show only selected components/groups including all instances of the same component definition
-
Option to auto collapse after editing. Meaning if I escape out from a component/group being edited, then collapse the component also in the outliner
-
Option to expand/collapse selected component(s)/group(s). Currently you can only expand/collapse all
-
ability to choose, if the existing search functionality (filter) shall search only in the displayed items or also in the not visible ones.
-
Option to show in the outliner the tag hierarchy on top of the objects. As there are normally much less tags than top level components, this will reduce the number of items in the outliner to the number of tag groups/tags…
With such features I would be more than happy, because it is then in my (user) hands to keep the outliner responsive and the general performance of SketchUp acceptable.