Rhino 8 Feature: Block Manager Panel

Hi @grant I can repeat the slowness when there are a lot of block definitions. I logged RH-72681 Blockmanager: slow scrolling

Hello Gijs.

Sure.
Here it is:

Sysinfo

Rhino 8 SR0 2023-1-24 (Rhino WIP, 8.0.23024.12305, Git hash:master @ 036f76afc2fd6926adb81ca67cbe460a4210c0e8)
License type: Commercial, build 2023-01-24
License details: Stand-Alone
Expires on: 2023-03-10

Windows 10 (10.0.19044 SR0.0) or greater (Physical RAM: 32Gb)

Computer platform: DESKTOP

Standard graphics configuration.
Primary display and OpenGL: NVIDIA Quadro RTX 5000 (NVidia) Memory: 16GB, Driver date: 11-23-2022 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 527.27
> Accelerated graphics device with 4 adapter port(s)
- Windows Main Display attached to adapter port #0

Secondary graphics devices.
Intel(R) UHD Graphics 630 (Intel) Memory: 1GB, Driver date: 5-26-2022 (M-D-Y).
> Integrated graphics device with 3 adapter port(s)
- There are no monitors attached to this device!

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: 4x
Mip Map Filtering: Linear
Anisotropic Filtering Mode: High

Vendor Name: NVIDIA Corporation
Render version: 4.6
Shading Language: 4.60 NVIDIA
Driver Date: 11-23-2022
Driver Version: 31.0.15.2727
Maximum Texture size: 32768 x 32768
Z-Buffer depth: 24 bits
Maximum Viewport size: 32768 x 32768
Total Video Memory: 16 GB

Rhino plugins that do not ship with Rhino
C:\Program Files\Rhino 6\Plug-ins\DATAKIT\Rhino6_Import_x64.rhp “Datakit_to_rhino6”
C:\Program Files\Common Files\McNeel\Rhinoceros\8.0\Plug-ins\ClippingBox (4dfff1df-5f09-43ae-a044-77b115244b02)\1.0.0.0\Rhino 6\ClippingBox.rhp “ClippingBox” 1.0.0.0
C:\Users\Andrey\AppData\Roaming\McNeel\Rhinoceros\packages\7.0\Iris\0.7.1\Iris.V7.rhp “Iris” 1.0.0.0

Rhino plugins that ship with Rhino
C:\Program Files\Rhino 8 WIP\Plug-ins\Commands.rhp “Commands” 8.0.23024.12305
C:\Program Files\Rhino 8 WIP\Plug-ins\rdk.rhp “Renderer Development Kit”
C:\Program Files\Rhino 8 WIP\Plug-ins\RhinoRenderCycles.rhp “Rhino Render” 8.0.23024.12305
C:\Program Files\Rhino 8 WIP\Plug-ins\rdk_etoui.rhp “RDK_EtoUI” 8.0.23024.12305
C:\Program Files\Rhino 8 WIP\Plug-ins\rdk_ui.rhp “Renderer Development Kit UI”
C:\Program Files\Rhino 8 WIP\Plug-ins\NamedSnapshots.rhp “Snapshots”
C:\Program Files\Rhino 8 WIP\Plug-ins\RhinoCycles.rhp “RhinoCycles” 8.0.23024.12305
C:\Program Files\Rhino 8 WIP\Plug-ins\RhinoCode\RhinoRoslyn.rhp “RhinoRoslyn” 8.0.23024.12305
C:\Program Files\Rhino 8 WIP\Plug-ins\RhinoCode\RhinoCodePlugin.rhp “RhinoCodePlugin” 8.0.23024.12305
C:\Program Files\Rhino 8 WIP\Plug-ins\RhinoCode\RhinoCPython.rhp “RhinoCPython” 8.0.23024.12305
C:\Program Files\Rhino 8 WIP\Plug-ins\Toolbars\Toolbars.rhp “Toolbars” 8.0.23024.12305
C:\Program Files\Rhino 8 WIP\Plug-ins\3dxrhino.rhp “3Dconnexion 3D Mouse”
C:\Program Files\Rhino 8 WIP\Plug-ins\Displacement.rhp “Displacement”
C:\Program Files\Rhino 8 WIP\Plug-ins\ConstraintsUI.rhp “Constraints UI” 8.0.23024.12305
C:\Program Files\Rhino 8 WIP\Plug-ins\SectionTools.rhp “SectionTools”

Sure. Here is my system info. Thanks for looking into this.

Rhino 8 SR0 2023-1-24 (Rhino WIP, 8.0.23024.12305, Git hash:master @ 036f76afc2fd6926adb81ca67cbe460a4210c0e8)
License type: Commercial, build 2023-01-24
License details: Cloud Zoo
Expires on: 2023-03-10

Windows 10 (10.0.19045 SR0.0) or greater (Physical RAM: 96Gb)

Computer platform: DESKTOP

Standard graphics configuration.
Primary display and OpenGL: NVIDIA GeForce RTX 3090 (NVidia) Memory: 24GB, Driver date: 7-21-2022 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 516.94
> Accelerated graphics device with 4 adapter port(s)
- Secondary monitor attached to adapter port #0
- Windows Main Display attached to adapter port #1

Secondary graphics devices.
Microsoft Basic Display Adapter (Microsoft) Memory: 0MB, Driver date: 6-21-2006 (M-D-Y).
> External USB display device with 0 adapter port(s)
- There are no monitors attached to this device!

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: 4x
Mip Map Filtering: Linear
Anisotropic Filtering Mode: High

Vendor Name: NVIDIA Corporation
Render version: 4.6
Shading Language: 4.60 NVIDIA
Driver Date: 7-21-2022
Driver Version: 31.0.15.1694
Maximum Texture size: 32768 x 32768
Z-Buffer depth: 24 bits
Maximum Viewport size: 32768 x 32768
Total Video Memory: 24 GB

Rhino plugins that do not ship with Rhino
C:\Users\dcmor\AppData\Roaming\McNeel\Rhinoceros\packages\7.0\SubstanceImporter\2.0.3\Substance.Win.rhp “SubstanceImporter” 2.0.3.0

Rhino plugins that ship with Rhino
C:\Program Files\Rhino 8 WIP\Plug-ins\Commands.rhp “Commands” 8.0.23024.12305
C:\Program Files\Rhino 8 WIP\Plug-ins\rdk.rhp “Renderer Development Kit”
C:\Program Files\Rhino 8 WIP\Plug-ins\RhinoScript.rhp “RhinoScript”
C:\Program Files\Rhino 8 WIP\Plug-ins\RhinoRenderCycles.rhp “Rhino Render” 8.0.23024.12305
C:\Program Files\Rhino 8 WIP\Plug-ins\rdk_etoui.rhp “RDK_EtoUI” 8.0.23024.12305
C:\Program Files\Rhino 8 WIP\Plug-ins\rdk_ui.rhp “Renderer Development Kit UI”
C:\Program Files\Rhino 8 WIP\Plug-ins\NamedSnapshots.rhp “Snapshots”
C:\Program Files\Rhino 8 WIP\Plug-ins\RhinoCycles.rhp “RhinoCycles” 8.0.23024.12305
C:\Program Files\Rhino 8 WIP\Plug-ins\RhinoCode\RhinoRoslyn.rhp “RhinoRoslyn” 8.0.23024.12305
C:\Program Files\Rhino 8 WIP\Plug-ins\RhinoCode\RhinoCodePlugin.rhp “RhinoCodePlugin” 8.0.23024.12305
C:\Program Files\Rhino 8 WIP\Plug-ins\RhinoCode\RhinoCPython.rhp “RhinoCPython” 8.0.23024.12305
C:\Program Files\Rhino 8 WIP\Plug-ins\Toolbars\Toolbars.rhp “Toolbars” 8.0.23024.12305
C:\Program Files\Rhino 8 WIP\Plug-ins\3dxrhino.rhp “3Dconnexion 3D Mouse”
C:\Program Files\Rhino 8 WIP\Plug-ins\Displacement.rhp “Displacement”
C:\Program Files\Rhino 8 WIP\Plug-ins\ConstraintsUI.rhp “Constraints UI” 8.0.23024.12305
C:\Program Files\Rhino 8 WIP\Plug-ins\SectionTools.rhp “SectionTools”

Managed to solve this by doing a clean install of 8.

Hi David.

I’ve just tried to uninstall v8 and reinstall it. No luck still. Block Manager is empty with block in scene.
What steps did you make?

In detail.

-uninstalled Rhino 8
-deleteted all the files in %userprofile%\AppData\Roaming\McNeel\Rhinoceros\8.0
-Restart
-downloaded the Rhino 8 WIP from the website and installed.

I have a feeling it was a plug-in or some other old preference that was causing a conflict. I’ll have reinstall the plugins one by one and see if any cause the problem again.

1 Like

Yes. This works for me too.
Thank you for instruction.

No worries.

I narrowed it down to some conflict when I import custom display modes using OptionsImport. The next time I restart Rhino after doing that, the BlockManager panel is empty.

Interesting. I am using custom display modes too.
So this is the case.
This should be raised as issue for YT.

@David_Moreau @Screamer Would it be possible to send your exported options to me. I would like to try to reproduce the problem with the empty Block Manager you reported. Thanks.

Hi Lars.
Sure. Here it is:
Opt.ini (276.7 KB)

Thanks. Found the problem and fixed it.

1 Like

Hi All.

Is it possible to have manual categorization of block list?
I want to create a file with list of fasteners in it to import it in running project file when needed.
And while using ReplaceBlock and SelectFromBlockDefinitionList I would be happy to see tree structure of those fasteners (Screws, Nuts, etc.), which I could manually create.

2 Likes

Can the lists of child objects be collapsed by default?

At the moment (7) they are all expanded and visible by default and it’s infuriating.
I often model using a lot of nested block instances (sometimes hundreds). At some point, the block manager becomes unusable as I have to spend minutes each time collapsing lists to find the parent block I want to edit. Otherwise, I have to scroll endlessly. My hack is to copy the nested block out of the parent block and edit it by itself. This is a bit clumsy and unnecessary.

By the way, I’m thrilled to see the block manager getting some much-needed attention. It is both my favourite tool and my worst enemy in Rhino at the moment.

1 Like

Tried. Looks like the collapse/expand status (hamburger menu) is kept, even when selecting new blocks, or switching to another panel and back.
When closing the panel and re-opening it again, though, the blocks are expanded per default.

Something else: consistency across panels, whenever possible. Please.

The new Bock Definitions panel (1) has this layout:
image

but the refurbished Layer panel (2) this:
image

(1) has a hamburger menu. (2) has a RMB context menu.
(1) has a [+] icon for creating a new thingy, and (2) this page icon.
(1) has the search bar in the same row as the icons, and (2) in a second.

On a general note:
Not that we couldn’t find our way around those few UI elements, but it’s typical for Rhino’s UI to be somewhat kinky and off. Too many exceptions, too many times reinventing the wheel, always a little bit unbalanced. No doubt there’s much progress and ambition in R8 to do it right, but it’s still not there.

I’ve seen much worse, though. The most horrible example of a program falling victim to the bad UI virus is 3ds max. No strict design guidelines, too many generations of developers doing their thing without much respect or feeling for such matters. A disgusting, raving patchwork mess of a UI… Just no.

Not gonna happen here, right? Please, before you release R8, take all the love for graphic/UX design that you can muster and make it nice and tight!
Thanks!
No hard feelings, right? =}

3 Likes

Hi Eugen, I agree fully and there is in fact RH-67622 Interface: Ensure common icons for similar functions

Of course that is only part of the issue you reported, the other part, to get similar look and feel of the arrangement is another thing to address

2 Likes

Hi All.
Here are some thoughts about blocks I have.

I had an idea of personal lib of fasteners (not a big deal), represented as blocks.
Each fastener located in separate file and has personal part number in layer name.
For example I have Screw_1 and Screw_2. Two files, each has according layers with geometry.

I insert Screw_1 file as a block to current working project. Layer “Screw_1” appears in layer structure.
Let’s say I move this layer as sublayer to “Assembly” layer.

For some reason I want to replace Screw_1 with Screw_2.
I have two options:

  1. Insert Screw_2 as a new block. Then use ReplaceBlock.
  2. Open BlockManager, open Screw_1 Block Properties and relink to Screw_2 file.

Both methods have issues.

  1. After inserting Screw_2 and replacing the block of Screw_1 I get new layer “Screw_2” which is a 1st-level layer and sublayer “Screw_1” still remains in the layer structure.
  2. All the same as in ver.1 and even worse. Without manual changing name of the block still refers to Screw_1.

What I wish is to replace layer “Screw_1” despite of it’s location in layer structure with “Screw_2”. And if I change linked file in block properties have a hint with proposition to change block name according to new file name.

Please, suggest an elegant way to create desired workflow in v7, if it’s possible without additional scripting.
I would also be happy to have such features in v8 “from the box”.
As a small improvement I see adding an option From file to ReplaceBlock command.

Rhino doesn’t have the feature geometry inside a block to inherit the layer of the block instance. I put all my geometry inside a layer named “Blocks” when create a block and display color “By Parent”. This way all my geometry inside blocks is in this layer when I insert them.

1 Like

Great to see the block manager getting new features. I like the object-tree display, but see a key missing feature: the ability to modify user attributes of blocks within the block manager.

@osuire made an entire custom tool to do this, and it’s an essential feature when working with large architectural BIM models which have so many custom user attributes tied to objects.

The real pain-point is when block instances have user attributes. If those instances are then within nested blocks, you have to manually open every nested block to select the instances to change. In a large model, this is a massive inefficiency.

Instead, I’d like to search for the block name (or even better, search by any user attribute) in the block manager, select all the instances to change (within the block-manager window), and have their in-common user attributes immediately accessible in the window below.

2 Likes

Hi!

Exciting to see the development of the blocks feature and panel.

I am testing it out with a Rhino 7 file I am currently working on, which contains 30+ linked block definitions (a mix of 3DM and DWG files, linked as reference materials à la AutoCAD xrefs). I opened the file and that went very smoothly, but the performance for opening the Block Definitions panel is abysmal. I’ve been waiting for over 30 minutes now, Rhino WIP has frozen and is using a lot of CPU and memory. My PC is quite powerful, and opening the Block Manager in Rhino 7 for the same file takes about two minutes.

It’s great to have a more detailed panel for Blocks, but this seems to have broken my workflow which relies heavily on linked blocks.
If there was a way to improve the performance of the panel, or some kind of setting to opt out of the new Block Definitions panel, it would be greatly appreciated. Or could the performance issues have to do with the fact that I’m trying to do this in a Rhino 7 file - would the blocks be handled differently if I recreated the file from scratch in WIP?

Thanks in advance!