Selecting Doors and Windows of specific Host Walls

Really struggling here. I am trying to select via grasshopper Openings with specific hosts via GUID.

When deconstructing the door and window to grab the host walls and pass in a GUID param, either the GUIDs are completely different or I get in the window host guids that data conversion failed from walls to guid.

Is there any accurate way to grab GUIDs of VA objects? Maybe I am missing something.

I am facing numerous limitations and bugs today. I’ve abandoned guid comparison. I now compare middle points of wall centerlines. But now I am hitting on the door and window profile curve parsing limitation. It outputs empty when i deconstruct the profile..

@fsalla
I can confirm this.

The ‘Deconstruct Door’ passes Referenced wall, but ‘Deconstruct Window’ passes just Wall that does not yet have a GUID.


Host wall.gh (15.1 KB)

@GabrielB
Would this work as a solution for you?
Evaluating Bbox centers, vanilla Gh solution.

Select host wall.3dm (19.4 MB)
Select host wall.gh (17.9 KB)

Hi @Toni_Osterlund . That’s great. But maybe when having complex floorplans, with walls with applied alignment, then the doors and windows bbox centers will be out of position. Of course this does not affect the selection of the host walls. Let me describe what I am trying to do. Calculating area of the building. Which will be dynamic and will follow the changes of the model.

When no openings are present, then things are easy, as we can parse the building outer curve by intersecting the solidunion with a plane. But when openings appear and especially when openings are from 0 to top of the walls, then the solidunion and the plane will not produce a closed polyline as outer building line.

So i thought that I should close the holes of the openings. But then I stepped in all of these. And on top of that, when I applied bbox on windows and doors after selecting via curve midpoint comparison between host and walls of the building then i noticed that the bboxes are mislocated because of alignments applied in the walls (which are necessary for correct wall intersections).

I am trying to figure out something robust that works on every project, no matter if the buiilding is rectangular or curved or angled etc.

@GabrielB
Maybe this is too much of a simplification of the issue..?


Building area.3dm (18.9 MB)
Building area.gh (9.2 KB)

@Toni_Osterlund Unfortunately for the reasons below, the case is more complex.

1. The walls I am having the project, are multi-layer walls, utilizing 15-16 wall-styles. Thad leads to discontinuity of the center-lines.
2. I’ve figured out how to move the center-line with a logic of following the structural layers of the walls to create such line
3. The problem is at least in Greece, the insulation is not calculated in the area for permit purposes. So there is the need to exlude some layers, out of the multi-layer walls
4. Because of the complexity of the plan, offsets have been applied on the walls. So centerline looses entirely track of the actual geometry.
5. So the only solution is to parse the outer line through Visualarq Explode, feeding the c input with a cull-pattern of the layers i need to get rid of and then create solid unions
6. Now the problem is to project each opening profile curve onto it’s corresponding wall surface, that has already explode.

edit1: in the past I had faced a mismatch between numbering of walls from deconstruct walls and wall breps from visualarq explode component, which makes it even harder.

edit2: I am testing it now, and I was wrong. The numbering seems to be working correctly.

Could you post a simplified worst-case model scenario of walls?

@Toni_Osterlund I’ve uploaded the ground-floor of the project i’m working on.

simplified-plan.3dm (3.5 MB)

This seems tricky as the the core has gaps.
If I understood correctly, and the core is the outline for area calculation?

Could you treat this as a 2D problem? As a projection of the wall’s top outline.

@Toni_Osterlund @GabrielB I’ve reported this already to the development team.

I eventually use a cluster for turning walls (and curtain walls) into breps (no matter if they have openings or not), which might be useful in this case.

Breps from walls.gh (34.3 KB)

@Toni_Osterlund Oh I forgot to mention that stone layer is also not calculated. I managed with a looong .gh def to somehow project the curves of openings onto the wall-breps, in order to have an accurate solidunion closed without gaps and holes.

I tried to include the openings profiles in the 3D solid creation in order to have a more generic definition that can be used in various cases - such as when openings dims are from bottom to top of a wall, which leads to break between colinear walls which means that no outline can exist because of the gaps as you mentioned.

@GabrielB
There could be some strategies to deal with gaps. But universal solution for straight and curved would need a bit of research.


Messy outline.gh (15.6 KB)

@GabrielB , @Toni_Osterlund We have fixed the issue of Deconstruct Window component not detecting host GUID in the VA 3.10 RC3 update: VisualARQ 3 - Version 3.10 RC3 released