Layout DrawOrder is causing so many problems. Can you please focus some resources on this?

I thought I’d share how Microstation solves this. Maybe there is something to learn.

Each object has a Draw Order value (Priority, in Microstation terms). This can be set for an individual object in the object properties panel:

Much like the one in Rhino:

You can also set it per layer in layer properties:
1

Much like the one in Rhino:
Screenshot 2021-05-25 at 09.53.05

Or per block (reference, in Microstation terms):

Each of these three places has a different value multiplier:


This means that the draw order set at the block level takes priority over the draw order set at the layer level. Draw order set at the layer level takes priority over the draw order set at the object level. However, because this is just a single value, you can override it. For example, if you have a layer with a low draw order (e.g., background images), but you want one object in that layer to be displayed in front of all other objects in the scene, you can open the object properties and type in priority 999 999 999. This will make it appear in front of all other objects in different layers and blocks.

It is not a very intuitive system, but it works. The draw order is not concealed. At any time you know what Draw Order value each object has and why it appears in front or behind other objects. I think this transparency is critical. The most frustrating thing with the draw order is not knowing why some objects are shown behind when you want them in front. BIM software (ArchiCAD, Revit) is bad at this because draw order is also set by the type of object (a wall will be in front of the slab by default). So another set of criteria is added to the mix, making it difficult to figure out why elements appear on the screen the way they do. This Microstation approach is brilliantly dumb - each object gets a number that can be amended in the object, layer and block settings and the object with the highest number is drawn in the front.

10 Likes