by the looks of it, since a few updates ago the Bounding Box (also with “Union Box” -setting) of Block Instances keeps extending to the World Origin. I suspect it’s somehow including a “plane” -element inherent to Blocks (by which I mean a transform matrix from world XY, that somehow leaves behind the world XY plane as geometry included in the bounding box).
If I explode the Block Instance geometry, the Bounding Box resolves as expected; there is no ‘actual’ geometry in the Blocks at the world origin.
It looks like the real issue is blocks that have a different Unit system to that of the Rhino document have their bounding boxes calculated differently in Grasshopper.
In my case my document is in meters, with some blocks definitions also in meters and others in millimeters - the latters’ bounding boxes don’t encompass their geometry correctly, though the center-point of “Box Properties” calculates out correctly.
I’ve attached a Rhino file with a few blocks in meters and millimeters, with associated Grasshopper -file calculating the bounding box and box-properties-center for the block instances and their exploded contents.
I was also trying to use the convert units component, and I was also confused and I got the impression the component is more for numerical conversions (for, say, reports or use in formulas) rather than for modifying the unit system of blocks.
I solved my situation by manually modifying the blocks with millimeter scale. In Rhino, I first ran “BlockResetScale” on them, and then changed the units in the Block Definition list, selecting the option “Change unit system and maintain object sizes”. This resulted in the block geometry staying the effectively the same size, while the block definitions’ units changed.
So my situation is solved, however I’m still reporting that the bounding box calculation for blocks with a unit system different to the Rhino document appears to have a bug in it.
I’d like to celebrate that in that definition, content-caching the scaled block definitions doesn’t break the script, while ‘repairing’ blocks of the undesired unit system imported from elsewhere (as I want to do in this case), because after the caching the unit conversion becomes meter->meter and does no harm.