Block Manager is unusable in a "large" project

System Info

Rhino 8 SR7 2024-3-28 (Rhino 8, 8.7.24088.06001, Git hash:master @ f39d2478d0e77eb325f46d0c6d8cfc8754fe44b2)
License type: Commercial, build 2024-03-28
License details: Cloud Zoo

Windows 11 (10.0.22631 SR0.0) or greater (Physical RAM: 64GB)
.NET 7.0.11

Computer platform: LAPTOP - Plugged in [100% battery remaining]

Non-hybrid graphics configuration.
Primary display and OpenGL: NVIDIA RTX A3000 12GB Laptop GPU (NVidia) Memory: 11GB, Driver date: 2-15-2024 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 551.61
> Integrated accelerated graphics device with 4 adapter port(s)
- Windows Main Display is laptop’s integrated screen or built-in port
Primary OpenGL: NVIDIA RTX A3000 12GB Laptop GPU (NVidia) Memory: 11GB, Driver date: 2-15-2024 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 551.61
> Integrated accelerated graphics device with 4 adapter port(s)
- Windows Main Display is laptop’s integrated screen or built-in port

Secondary graphics devices.
Intel(R) UHD Graphics (Intel) Memory: 1GB, Driver date: 6-15-2023 (M-D-Y).
> Integrated graphics device with 4 adapter port(s)
- Secondary monitor is laptop’s integrated screen or built-in port

OpenGL Settings
Safe mode: Off
Use accelerated hardware modes: On
Redraw scene when viewports are exposed: On
Graphics level being used: OpenGL 4.6 (primary GPU’s maximum)

Anti-alias mode: 8x
Mip Map Filtering: Linear
Anisotropic Filtering Mode: High

Vendor Name: NVIDIA Corporation
Render version: 4.6
Shading Language: 4.60 NVIDIA
Driver Date: 2-15-2024
Driver Version: 31.0.15.5161
Maximum Texture size: 32768 x 32768
Z-Buffer depth: 24 bits
Maximum Viewport size: 32768 x 32768
Total Video Memory: 11520 MB

Rhino plugins that do not ship with Rhino
C:\Users\Czaja\AppData\Roaming\McNeel\Rhinoceros\8.0\Plug-ins\Bella (813de3fb-18eb-405f-bfcd-b0b4d3da91fb)\24.2.0.0\bella_rhino.rhp “Bella” 24.2.0.0
C:\Users\Czaja\Desktop\Rhino_7_Win_2023.0417\HDRLightStudioTexture.rhp “HDRLightStudioTexture”
C:\Program Files\Common Files\McNeel\Rhinoceros\8.0\Plug-ins\Crayon (39629248-4fa6-47b8-83c7-745a7efea259)\1.2.0.0\Crayon\Crayon.rhp “Crayon” 1.0.0.0
C:\Users\Czaja\AppData\Roaming\McNeel\Rhinoceros\BlockEditNew\BlockEditNew.rhp “BlockEdit” 1.0.0.0
C:\ProgramData\McNeel\Rhinoceros\7.0\Plug-ins\Datasmith Rhino Exporter (d1fdc795-b334-4933-b680-088119cdc6bb)\DatasmithRhino7.rhp “Datasmith Exporter” 5.4.0.0

Rhino plugins that ship with Rhino
C:\Program Files\Rhino 8\Plug-ins\Commands.rhp “Commands” 8.7.24088.6001
C:\Program Files\Rhino 8\Plug-ins\rdk.rhp “Renderer Development Kit”
C:\Program Files\Rhino 8\Plug-ins\RhinoRenderCycles.rhp “Rhino Render” 8.7.24088.6001
C:\Program Files\Rhino 8\Plug-ins\rdk_etoui.rhp “RDK_EtoUI” 8.7.24088.6001
C:\Program Files\Rhino 8\Plug-ins\NamedSnapshots.rhp “Snapshots”
C:\Program Files\Rhino 8\Plug-ins\MeshCommands.rhp “MeshCommands” 8.7.24088.6001
C:\Program Files\Rhino 8\Plug-ins\RhinoCycles.rhp “RhinoCycles” 8.7.24088.6001
C:\Program Files\Rhino 8\Plug-ins\Toolbars\Toolbars.rhp “Toolbars” 8.7.24088.6001
C:\Program Files\Rhino 8\Plug-ins\Displacement.rhp “Displacement”
C:\Program Files\Rhino 8\Plug-ins\SectionTools.rhp “SectionTools”

I wrote “large” in quotation marks because I don’t really know what is a large Rhino file. I have ~ 1000 Block Definitions that ironically were made to keep my file small & fast. Reusable geometries are in the form of nested block structures and despite the fact there are a lot of Block Instances in the file, it only weighs 94 MB.

I had many challenges that led me to do some things just for a test and I need to recreate/swap some geometries.
In my file, Block Definitions consist of geometries put on different layers, one layer “ShrinkWrap” has shrinkwrapped geometries that have been done in a draft quality and I would like to replace them with better geometries. I’ll just list all the things out.

  1. I can’t normally remove ShrinkWrap meshes using Grasshopper because of problems with some components. Using data dam, and disabling troublesome components thankfully does the job as a workaround.
    Looking for the right Rhino 8 build - #5 by Czaja

  2. I can’t delete the ShrinkWrap layer from the Layers Panel, because this move is forbidden in Rhino. The ShrinkWrap layer doesn’t have any Block Instances, but geometries inside Block Definitions are on that layer. I would be saved if, after some serious warnings, I could simply delete this layer and thus remove geometries from the Block Definitions. (error shown in the video)

  3. Block Manager is dead slow and unusable even when just filtering data! Mind you that at this point I’m not modifying anything I’m just using the search in the panel. I made a critical error of not assigning names to all ShrikWrap meshes so it doesn’t matter anyway because I can’t use a search to filter them out.

  4. It’s nice that the new Block Manager in Rhino 8 is showing the contents of the blocks but it’s done in a way that is not suited for large projects. Every property is shown underneath the Block Definition / Objects list, there is no way for good grouping/filtering/sorting and making batch changes.

not the best way to display properties for multiple objects and make batch changes

I guess it’s ok when we have only a few Block Definitions but when dealing with a large number all the data should be accessible from the table/property matrix. I know Block Definitions can form a nested structure, but it should be possible to display all the objects in a flat list with the help of the “parent” column.
I mentioned it elsewhere, probably you know how large amounts of data can be shown in a flat list but if not, please take a look at Directory Opus. There is no problem at all in transforming nested structures into a flat list and making all sorts of grouping possible while maintaining a good understanding of the structure.

Directory Opus excelent ways of showing nested folder/file structures and search results

Unreal Engine Property Matrix (02:03) - The large number of elements is especially noticeable when working in game engines

If Block Manager could display a flat list of data I could:

a) In this specific case - Use a filter in a “Layer” column to select all objects on a “ShrinkWrap” layer and simply delete them.
b) Batch change any exposed property value of any number of objects.
c) Use multiple column filters to filter out stuff in a custom way and highlight objects in the viewport.
d) Greatly enhance my understanding of what’s going on in the file and make it possible to make changes from the table.
e) Export table out of Rhino.

I understand that many of these will not be implemented tomorrow, but I expect that at least the search bar should work properly.

Video is boring because it shows mostly unbearable UI freezes

5 Likes

Thanks Jakub,

There is a lot to go through here. I’ll dive into each aspect and see what we can do.

For a while I wanted to post about this but Jakub’s report is spot-on. The V8 Block Manager has a potential to be great, but at current state and speed with files with many blocks is unusable and is an issue painful enough for us here stopping us from moving production from V7 to V8 (most of our files have 1000’s of blocks and managing them has to be robust and fast, can’t afford time for UI freezes).

–jarek

1 Like

1000 blocks is a tad sticky.

I’ll get a youtrack going as well as note the feature requests. RH-81374

1 Like

I’m keeping my eye on the YouTrack, you wrote that “Tested in 8.8.24107.06001, response has improved.” Can I check this version with my file? Using Block Manager with Rhino 8.7 (8.7.24113.23001, 2024-04-22) is still very slow.

+1 block manager is not usable at all. Rhino 7 the window pops up instantly .
to give a sense of largeness. i am now dealing with a file that has more than 20,000 referenced block definitions.