Block Base Plane

I found while editing the base point of a block, the plane axis always aligns with the world X,Y plane. Is there anyway to change the base plane orientation for a block with command of Rhino, Instead of using Grasshopper.

Does Rhino 8 have a better control of it?

Hello- block definitions are always based on the world origin - can you post an example of what it is that you want to do?

-Pascal

Attached are two images depicting the same cube from different perspectives—one from a side view and the other from a top view.

In the image on the right, when obstructing the cube, its geometry aligns with the world’s x and y axes. The base plane of the obstructing block also follows the world’s x and y axes. Conversely, in the image on the left, blocking the cube results in a rotated geometry. However, the base plane of the blocking block remains aligned with the world’s x and y axes. This distinction is more apparent when viewing the images from a top-down perspective.

When attempting to modify the base point of the left-side block in the block editor, I encountered a challenge—I couldn’t find a feature that allows me to align the block’s base plane with its geometry.

Another observation about blocks is that modifying the base point of a block leads to the block’s relocation in the world coordinates based on the new position of the base point. This can be inconvenient when a set of objects is correctly positioned, but adjustments to the block’s base plane are necessary.

Hello- yes, the block definition is based on WorldXY - that is always true. The insertion point is aways at the world origin in the block definition, so if you modify the base point in BlockEdit, the geometry will be closer or farther from the base point and the instances all adjust to reflect this.

See if this script helps when creating a block - it should orient the plane as you like, I think, but you need to specify a plane at creation time. In your example use the 3Point plane snapping to corners of a box face.

BlockOriented.py (1.4 KB)

@hali - updated again to slightly improve the naming process.
@hali cleaned up a bit more and updated here.

To use the Python script use RunPythonScript, or a macro:

_-RunPythonScript "Full path to py file inside double-quotes"

-Pascal

1 Like

Hey Pascal,

Thank you for providing the script – it’s working flawlessly! I have a small enhancement request: Is there a way to customize the name of the block created by the script? Currently, with each script execution, the existing blocks are replaced. When producing a complex model, I need to repeat the process for different block definitions.

Moreover, it would be great if this feature could be incorporated into future releases of Rhino 8. This customization option would significantly enhance the synchronization between Rhino and Revit, especially when utilizing Rhino.Inside Revit.

Hello- updated above - sorry about that…

-Pascal

No problem at all, thank you for helping out!

go to food4rhino and download blockplugin which will solve all your problems.Block Edit New | Food4Rhino

1 Like

Thank you Ivan :+1:

Hey Ivan, the Bock Edit plug-in is excellent for performing unique block operations. However, it doesn’t seem to allow the setup of the origin plane with any custom plane, does it? When it comes to changing the block origin, the tool permits setting it based on a point (no orientation index) or the worldxy, worldyz, worldxz planes. Unfortunately, I couldn’t find a way to set it based on a free plane, similar to the Py script Pascal created

it does check closely options in command line

Hey Ivan, it only has 2 options, PointOrPlane = UsePoint or PointOrPlane = UsePlane. Both of them doesn’t have control over free plane setting. Can you show me a screen shot. If you know how to use the tool set up the block base plane?

use plane lets you pick three points defining x and t vector of the plane

1 Like

I see, I was too focused on the command line. Thank you!