Understanding Deconstruct Object producing many more faces than I want

Kia ora

I have the following intention to build a semi-automated script examining in context commercial building design options.

I have a script that takes a plan and creates a multi-storey commercial building with a zoned bottom floor, a zoned middle floor (multiplied by the number of intermediate floors) and a zoned top floor.

So with ten floors:

Or with five floors:

Everything at this stage is automated: I wish to add the opportunity to add Air Flow Network openable window ventilation to the interior walls. It seemed to me that I need to add subfaces to the interior surfaces? I had thought that deconstructing the rooms, separating out the interior surfaces and then adding apertures to these surfaces, then adding them back into the model would be a solution. However, I have an odd behaviour where the 9 interior surfaces become 64 different faces / apertures. I am trying to figure out

  1. Am I taking the correct approach
  2. If yes, what is happening in the deconstruction process that I am not understanding

Hi @MichaelDonn

You could also use the “HB straight skeleton” to generate the openings and ad them to the model.

internal openings.gh (30.1 KB)


Ingenious. I will explore, thanks.

At present, I extrude the polygons representing the perimeter and core objects which even works for irregular shaped plans on the Straight Skeleton import layer.

I will investigate how to extract only the line segments where I want openings between zones…

Not quite a solution, but thanks for the insight…

Kia ora @Erikbeeren

This is (to me) genius level understanding of how to process geometry within the gh domain. Thanks. I am struggling to apply the idea, but it is very promising. I will for example have to make sure that the opening sizes are never longer than the wall they are placed in.

I can readily understand how to process the outerskeleton as you have illustrated.

But, I wish to have a core and perimeter set of zones (standard commercial building default)

And I confess I cannot understand what the domain and derivatives sections of the script are doing to customise it, yet.


Hi @MichaelDonn,

Lines have domains. The domains can be 0 to 1 or 0 to length.
With the shatter component you can devide a line into different sections.
In the script below I tried to explain the concept of lines and its domains.
Once you have a propper segment you van extrude the line to a opening.
I hope this will be helpfull for you.

internal openings II.gh (34.3 KB)

1 Like

Hi @MichaelDonn

And here with core and perimeter zones:
internal openings III.gh (36.2 KB)

Marvellous. Thank you.