Wall-Slab priorities | Sidings, Paint & more

I cannot find a hidden layer or anything. I cannot create walls in the model after playing with CWs. I cannot imagine the relation with the CWs but this is the only thing I can say.

I am sending the model by e-mail now. Maybe there is something I am missing somehow.

cw-wall-problems

Hi @GabrielB Check that the level where you are inserting these walls is not hidden.

It seems I’ve lost my mind, thank you @fsalla :face_without_mouth:

okay, I lost my mind before. BUT, the confusion started when i started drawing walls (not curtain-walls because of the limitation presented in this thread: Curtain Wall alignment - different system than Wall alignment?

I use ceilings with hidden air-void layer. Normally - in the past - I believe we had walls as priority 1 for intersections. Because of the changes after 2.11, while I was trying creating sidings with walls inside hidden slab layers, the walls were dissappearing.

wall-inside-slabs

wall-inside-slabs-1-ezgif.com-resize

So, sidings with CWs is not something that can work because of the alignment limitations. With walls, I should have the slab without the air-layer, but actually the air-layer is handy and the way it should be created because the structure of the ceiling relies inside that gap in reality. Of course walls is not optimal because of small distance with the walls in the perimeter of the building. Rhino geometry is not flexible at all so it’s not an option. I’ve tested with beams, slabs with the desired height, siding is problematic.

The absolute rule of setting priority to slabs (or walls) in intersections, maybe should be studied for a possible improvement.

Hi @fsalla,

I went back and checked what you had explained in our previous discussion about Wall–Slab priorities:

Wall–Slab intersection priority:
Wall–Slab intersection priority thread

I tried to apply the Core/Normal logic here, but after testing the actual siding condition more carefully, I think there are still two different problems that prevent Walls from being a reliable solution for this.

1. I need the siding Walls to intersect with each other, but not with the perimeter Walls.

The siding in this case consists of four Walls forming a rectangle.

With:

Cleanup Radius = 0
Maximum Extension = 0

I can reduce unwanted interaction with nearby Walls, but then the four siding Walls do not clean/intersect correctly with each other either.

If I use:

Cleanup Radius = 0
Maximum Extension = 1

the four siding Walls clean correctly, but then I don’t seem to have any explicit control preventing them from interacting with nearby perimeter Walls.

So what I actually need is not simply a larger or smaller cleanup distance. I need something like:

these Walls should intersect with each other, but should not participate in intersections with that other group of Walls.

I also found this older discussion about Intersection Groups, which seems very closely related to the same problem:

Feature request: Intersection Groups

Wouldn’t something along these lines be the more robust solution?

2. Core/Normal solves priority, but not the finish condition I need at the Wall–Slab corner.

I should clarify that I do not actually need a construction miter here.

The vertical siding is real gypsum board with real thickness, and the ceiling is also a real layered ceiling assembly. What I need is simply the normal architectural finish condition: the horizontal painted ceiling surface and the vertical painted siding surface should meet exactly at the corner, without exposing the thickness/end face of the gypsum board.

With the current intersection I get the exposed board thickness shown in the image.

Making the slab Core doesn’t solve this case, because once the slab gets that priority it affects the whole slab intersection, including the air-void assembly. I cannot tell VA that only the relevant finish layer should resolve the visible corner this way.

I could possibly fake this by adding a zero-thickness finish layer to the Wall, but this is the classic kind of workaround that may work in one intersection and fail in another, and I don’t think zero-thickness construction layers should be required to obtain such a basic finish condition.

So I think this example actually shows two different controls that are missing:

  1. Wall intersection groups / explicit control of which Walls are allowed to interact with each other.
  2. Layer/finish-level intersection behaviour, independent from the overall Wall–Slab Core/Normal priority.

This also relates to what we discussed in the previous thread about improving Core/Normal together with Layer Functions. A Finish layer does not necessarily need the same intersection behaviour as the structural/core part of the object.

Is there currently another VisualARQ workflow that can produce this condition reliably, while keeping the real thickness of the gypsum board and the hidden air-void layer of the ceiling?

edit: I also tested the remaining workaround: adding a 0-thickness PAINT layer to the siding Wall.

This is actually the closest representation of what I need here, because I don’t need a construction miter or another physical layer — I just need the paint/finish to change at the corner without exposing the thickness of the gypsum board.

However, as you can see in the screenshot, the 0-thickness layer creates another artifact at the edge/corner.

This brings us back to the issue we had already discussed here:

0 thickness slab-wall-layers

In that thread we discussed exactly the use of 0-thickness layers for paints/finishes and the related display / z-index issues. You also mentioned there that in VA4 the plan is to allow assigning a material to a wall face by object, without having to create new wall styles or 0-thickness layers.

So, unless I am missing another workflow, in VA3 I still don’t see a robust solution for this very common condition:

real gypsum-board thickness + different paint finishes meeting at the corner, without exposing the board edge.

The options seem to be either:

  • expose the gypsum-board thickness,
  • introduce a fake physical thickness for the paint,
  • or use a 0-thickness paint layer and deal with artifacts like this one.

Maybe this siding case is another useful real-world example of why finish/material behaviour should eventually be independent from the construction/intersection logic.

Yes. The intersection groups feature (scheduled for VisualARQ 4) will solve these cases. Right now, aligning walls next to each other produce unexpected intersection results, and it is not possible to prevent a wall to do not intersect with another.

Well, there’s no good solution for this right now. I’d just create a 0 thickness “paint” wall layer, or 1 mm thickness, and move it a bit so it’s placed in front of the slab side.

(If you get some artifacts when using 0 thickness layers, we can analyze them).

Yes, this is something under consideration. But it will be a quite “manual” process, and also may arise some other problems like how to handle texture mappings on that face in relation to the rest of the object.

Yes, I think the face-material override is worth pursuing. Maybe the “manual” part could be made more robust if it follows a style default → per-object/per-face override logic.

What I would personally find useful is:

  • the Style remains the default source
  • a manually assigned face material is stored only as an override
  • there is a clear Reset to Style
  • the override can be picked/matched to another face/object
  • and, if the override becomes something reusable, there could be an explicit Create New Style from Current Object or Update Style from Override command.

I would probably avoid automatically generating hidden duplicate styles internally, because this could become difficult to manage.

Regarding texture mapping, perhaps material override and mapping override could be separated. Changing the face material could keep the existing mapping by default, while mapping would only be overriddenn when explicitly requested.

It would also be important, if technically possible, for these overrides to be attached to a semantic face — exterior/interior/top/bottom/end etc. — rather than only to a transient Brep face, so they survive object regeneration reliably.

As for the 0-thickness artifacts: they definitely exist; I have encountered them before as well, although I cannot find the older case right now. In the screenshot I already posted there is also a small visible artifact at the corner. If useful, I can isolate that current case and send you the model.

Hey @fsalla

some artifacts with 0-thickness layer in a wall (the .3dm is the one sent to you by e-mail). To reproduce it, try to move the walls created that are the style with the 0-thickness layer, and with control pressed to move vertically. After letting it in a specific elevation, the 0-thickness layer remains far from the wall.

0-thickness-bugs-ezgif.com-optimize

Also check some more artifacts.

0-thickness-bugs-1-ezgif.com-resize

Add the above to the screenshots in the topic: 0 thickness slab-wall-layers - #11 by fsalla

Please try to reproduce anything related to 0-thickness artifacts. I think it’s relatively easy to reproduce it, unfortunately i cannot find the file produced the screenshots in the topic above.

Hi @GabrielB I can see the wall artifacts (when I get close enough). I’ll report it, thanks.