Way to change coordinate system inside block?


Is there a way to change local coordinate system inside block? I can see you can only modify insertion point but not coordinate system. Maybe some command i dont know about? Major problem is that during definition of a block you cant define coordinate system of that object and world coordinates are taken as default without alternative possible.

1 Like

Elefront can be used to deconstruct a block and save a new block with a new name or overwrite the existing block. However, I noticed when a block is baked with the same name, the geometry is moved. I would not want that so my solution would be to bake a new block and get rid of the old one.

bake_block.gh (12.1 KB)
block.3dm (54.4 KB)

I would not classify this as a grasshopper topic. This should be possible in plain Rhino. How can someone define a block properly without option to define its coordinate system? If you cant define coordinate system of your block you have to work in one dimension only and not in 3D. It is all about coordinate systems in engineering.

There’s _BlockEdit and the option to set the base point but again this moves the content.

Base point is one thing and coordinate system other. In case of basepoint editataion user should be asked if all blocks should be moved or just base point should be moved. Basically two possible options.

1 Like

Hi Ivan -
When you insert a block, the CPlane of the viewport that is active when you do so is taken into consideration. In the following image, there are 3 instances of the same block.


You can use the RemapCPlane command to change the base plane for an instance.

you dont get me.
this is a block of closed curve which was created out in the world coordinates (not aligned to any major axis) and block inherited this world coordinates. as you can see one can only change base point but not coordinate system of the block.

what is absolutely neccessary in rihno 8 is ability to have one more button under set base point, change coordinate system as well as have ability to define coordinate system right away when creating block with options “coicident to world, custom” under custom there would be typical options “defined by 3 points, by x and vertial, etc”

1 Like

when i tried to create rebars and stirups with the blocks it was impossible then to place them to 2d because coordinate system was not aligned to planarity of the curves. those stirups were made in place of real position (not aligned to world axes) and made as blocks.

after invokig block first question should be block coordinate system instead of block base point and suboptions would be as mentioned above (coincident to world, custom)

Summed up what needs to be incorporated in Rhino 8 regarding blocks, otherwise there wont be any real improvement (blockmanager rewrite is something else)

  1. when creating block user must be able to define its coordinate system not assuming world as new blocks coordinate system automatically (options to have: coincident to world, custom)
  2. ability to modify coordinate system (and base point) subsequently
  3. when changing base point of block definition you need to be asked if all instances should be move in respect to the ne insertion point or instances should stay put and only base point is moved

4. I forgot about implementing “blocktools” plugin functionaity which brings things like make block unique, select all instances of a block etc.

Hi Ivan, Thanks for the input. The Object Frame property is going to address these workflows. Similar to Gumball but as a property of the Object (Blocks, Lines, Breps,…).

1 Like

can you please elaborate or send me a link somewhere? blocks are standard objects in cad software and they have their own coordinate system embedded in their definition. all i need is a mean to define it to my own needs not have program assume that i want it to be coincident with world axes

This isn’t a public feature yet. I’ll add your comments for the developers but if I understand things correctly it they will be very close already to what you are asking for.

The Block Plane is a ‘coordinate system’, if you need a sub-coordinate system you can embed a block to make things relative to a different block plane.

1 Like

this sounds like its something on top of regular stuff. it sounds good but what i am primarily concerned about is ability to have what i have described using standard tools.

dear @ivan.galik
as a workarround:
you can use _remapCplane
while in blockedit mode.
instead of changing the insert-plane - transform (move / rotate3d) the objects so they fit to the (already existing) insertpoint / cplane.


You could also try this plugin

You can set the Block Plane when you create the block.


wow this is so awesome. so simple and yet so powerful. why acBlock cant be implemented in Rhino by Mcneel immidiately? (it is not a niche thing but something absolutely trivial and basic)
All of the features are so simple and powerful. Planarity check is cool as wel. But defining block coordinate system is a must.

i wonder if i uninstall the plugin the information about block plane will go away or it is standardly defined as rhinos basic block?

This is a major problem and a must feature for a block to have!! Take a look at a SketchUp’s component’s axes:
SketchUp Skill Builder: Group axis and bounding box - YouTube


Does this script (apart from the UI of it that needs to be better) do what you want?

inplace_block.py (947 Bytes)