Outliner object list is slowing down SketchupPro a lot - option to reduce number of items displayed?

I have a model with about 130’000 component instances (groups and components). Many of them are nested, but a lot of them appear as top level instances in the outliner. Since SketchUp shows ALL instances in the outliner, the list is very long and meanwhile I cannot open it anymore, as every action in the model I do to a component or group, takes ages, because the outliner is refreshed at every action.
Currently I have 700 top level items in the outliner (all collapsed).

I could create groups to minimize the number of top level entries in the outliner, but creating a nested grouping, just for the outliner to work, is not so appealing.

Hiding objects using layers, does also not help, because not displayed instances still show in the list (greyed out).

Is there no functionality, so that I can reduce the number of items in the outliner to those being visible in the viewport?
And in addition instruct the outliner window to only show the top level item that is currently being edited? It could optionally also show all instances of the currently edited component.

This would dramatically reduce the issue of the slow refresh in the outliner window.

Or is there another way?

What version of SketchUp are you actually using?

Hi Dave, the latest which was released yesterday.

Please update your profile.

Do you have to keep Outliner open? It is much faster than it used to be in earlier versions but with as much as you have in the model, it’s still going to load down SketchUp.

I keep it closed, if not needed and then all is fine.

But if I open it, because I need it, then it is currently blocking extremly. Sometimes it even makes Sketchup hang, so that I have to kill the task.

For instance I open the outliner, filter by name and then I change the filter → it hangs mostly.

That’s a lot

That’s all I can think of …
outl

The 130‘000 are from trees with leaves and other such objects.

Filtering lets SketchUp hang often.

Therefore a flag to reduce to visible objects, objects visible in the viewport or the current selected object, would do the trick.

I am changing the category to a SketchUp feature request.

As this performance issue in the outliner does not only occur with a huge number of objects, but starts already when having a few hundred objects, a filtering possibility to reduce the number of items shown in the outliner to those objects visible in the viewport or the objects being instances of the currently edited component, would help many people and make workflows flowing again.

Well first off, you might look for some other tree models that are a bit simpler.

Alternatively, if they’re all nested inside your try components, you might try swapping them with some proxies for now, then swapping your trees back in when it’s finalized.

I believe I talked about it here a bit? https://www.youtube.com/watch?v=Igiq30yydbo

The issue is not the many leaf objects for trees or the size of the file. I can handle this nicely with hiding the heavy trees in layers. Modelling like this in SketchUp is fine for me.
Swapping heavy objects with proxies, just because I want to open up the outliner to arrange some objects and then close it again and then swapping back, is a bit combersome.
If I would use FredoGhost to do this, then in fact I would generate even more objects, as you then have the proxy and the real object in the model. So making it not better.

It is not primarily the heavy objects, that cause issues with the outliner, but the number of items in the top level shown in the outliner. So if you have a 100 objects in the top level, you already have issues, because you cannot further collapse the top level items.
Therefor a feature for hiding objects from the outliner would be a simple method to imrpove its performance. Same as in SketchUp you hide objects from the viewport to improve its performance.

It isn’t clear to me why a large list becomes slow to respond, but I can easily see your issue with the contents being impractical to manage, and how somehow hiding selected ones would be useful. A peripheral thought that occurred to me: presumably you would want to be able to make them visible again at some point. How would the interface for that work? Presumably if you hid (say) 129000 of the components, a selection list for bringing them back would be just as unmanageable as the original! Needs some creative thought…

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?

image

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.

Just as an aside, heavy component nesting makes SketchUp overall somewhat slower. Exploding the contents of the 3D vegetation components might add to your file size, but it might be faster to zoom and orbit.