Draw Order and Blocks

Hello, I saw another old thread from 2015 and Youtrack on this, but I really find hard to believe this is not solved.
I just inserted a few blocks on a 2d drawing with solid hatches. The blocks are not visible. Other blocks inserted earlier are visible.
The blocks are on one layer, I selected the layer objects, typed BringToFront, and it asked me to select the objects. Meaning it did not recognised the blocks.
Then I typed BringToFront and then Selected the layer objects, and it said no objects were selected.
I tried to BlockEdit and bringing the contents to front. Didn’t work.
I tried to export the block, purge it and re insert. Didn’t work.
In desperation I try to move them to a higher Z coordinate. They were still displayed behind everything else.

Any ideas? N

@pascal I know you have dealt with this one in the past. Did it come back or never went away?

Here’s another problem.
I thought about sending all entities except the blocks to the back. It is not satisfactory, but it would work in my situation today.
I selected all the objects of all layers at the same time and typed SendToBack.
What happened was completely messing the order of the hatches. So line hatches that were displaying above solid hatches, are now at the back.
More importantly a image that was displaying behind everything else is now displaying above everything else except the blocks.
And apparently, this picture is behaving as the blocks, meaning I cannot select it in the SendToBack command.

So, basically it seems impossible to have some blocks/images behind and some blocks/images above the lines.
This is really upsetting. is there any trick?
N

See help file on this subject and in particular:

Notes: Only the draw order of annotations, hatches, details, curves, and point objects can be changed. Surfaces, meshes, and SubDs cannot be selected by the draw order commands. Therefore, you cannot send a surface behind a hatch, but you can bring a hatch in front of a surface.

Thank you @Gijs
But Blocks are not on that list. My main problem right now is about blocks.
Also my perplexity is at the unmoveable display stacking seems to be Surfaces (assuming pictures are surfaces), blocks and hatches, from bottom to up makes no sense…
And again I would expect that if I change the z coordinate of any of those elements they would display in the right “draw order”, but that also seems not to happen.

@pascal
Is this a problem that Rhino has dropped and will never solve?
N

blocks (or better: block instances) aren’t geometry, just containers of geometry, and that geometry can be anything

This is new to me, if you have an example where this happens, I would like to see.

Hi Gijs,
Sorry for the late reply.
Considering block are just containers, I still don’t understand the behaviour.
Here’s the situation.
I have a image, which I want to be in the background.
I have a hatched area, which I want to be on top of the image.
I have a block, which some geometry and annotation that I want to be visible on top of the hatch.
I can bring everything on top of the image, but the block stay behind the hatch.

I tried to explode the block and redefine it.
I tried reinserting the block.
I tried to move the block vertically.
The block is always behind the hatch.
Inf I explode the block everything is visible…

Hello- - I can’t tell from your description whewther the hatch has been set with draw order (BringToFront)? If so, ClearDrawOrder will allow it to use its 3d location for draw order.

-Pascal

The hatch has been brought to front, then all the lines have been brought to front. So I have image in background, hatches in front of image, lines in front of hatches.
The blocks are the problem. No matter what I do they are behind the hatches.
Note in this case the block has a polyline, a hatch and a text. All three display behind the hatch, even after the steps described in the my previous post.
N

@pascal @Gijs
I am really puzzled by this. The file I was talking about was until now only a 2d drawings with some hatched zones.
I now created a volume and all the lines (and hatches) are visible on through the volume, they are clearly displayed on top of the surfaces even when the surfaces are 3dimensionally above the lines.
This never happened to me.
hereis a rendered view screenshot.


and here is a ghosted vies screenshot

Here is a similar volume on another model on another project
rendered view
image
ghosted view
image

any ideas?
N

Did you try ClearDrawOrder on the misbehaving file?
Does SendToBack on one of the items make it display behind the surfaces?

yes, I had forgotten that. But that messed up the other ordered stuff.
What is supremely annoying is that all the new curves now drawn appear behind the previous hatches and curves… Is there a way to solve that?
N

Hi Nuno -

From Rhino 7, the draw order of hatches, annotations, and curves is primarily taken from the layer order. If the objects are on the same layer, annotations are drawn on top and hatches at the bottom. Draw order commands (SendToBack, etc…) can be used to override the primary behavior.
-wim

+1 on this.

Draw order in Rhino is a problem. Its not intuitive, inconsistant or outright doesn’t work. Blocks are a problem and so are layouts and transparencies. Sometimes the draw order in a printed layout ends up different than in model space. Sometimes a block and all its content is on a layer above another block and all its content, but its still shown behind, even after ClearDrawOrder. But I think these are known issues, as there are several youtrack posts on them.

I think the draw order system needs a complete overhaul to fix all these issues and make it intuitive. Its not easy though and I won’t pretend to have the perfect solution ready to go.

Maybe the approach of Adobe Illustrator (or the Blender Outliner?) could also work for Rhino:

  • Draw order is strictly by layer
  • Draw order can only be modified within one layer, otherwise the object needs to be moved to another layer
  • In the layer panel you can expand layers to see all objects in their respective order. This might be a uncontrollably large list in big drawings (like it is in Illustrator), but maybe they could be grouped by type. You would also be able to see block instances and groups in that list.
  • Blocks don’t affect the draw order, the objects within a block just comply with the draw order of their respective layers.

There could also be an option in the properties of each object: Draw Order: (by Layer/by Parent). This would allow you to manage the draw order of objects in a block by the layer of the block instead the layer of the object.