How to modify existing apertures from existing model

Hey everyone! I’m currently trying to modify the geometry of the external apertures for a model imported as gbXML. To this end, I broke the model into rooms and the rooms into faces (with DeconstructModel and DecnstrObj, respectively). Afterwards, I tried to scale the apertures with the HB Scale component, and subsequently merge them with faces from the DecnstrObj component with HB Add Subface. However, it seems that the old child apertures are kept within the new faces, even after deconstructing the rooms, resulting in what you see bellow.

It seems like a pretty simple problem, but I’m really stuck with it :expressionless:.

Modelo TCC.3dm (36.8 KB)
Modelo TCC.xml (133.7 KB)

@gzorzeto ,

We don’t have a component to remove Apertures (so that you can re-add the new scaled ones) but it only takes a few lines of code with the Ladybug Tools SDK to do this. Just plug this into a Native Grasshopper GHPython component and connect the rooms to the x input:

a = x.duplicate()
for face in a.faces:

Then, you can add your new Apertures as you are doing now.
Maybe if this becomes a common problem, we will add a dedicated component for this.



It worked wonderfully. Thanks for the quick reply!


Found this thread after a quick google, though not sure if this has been tackled more recently? - i’d like to add support for a remove aperture function if this is possible! :slight_smile:

It’s the first time I have used the HB Move component to readjust glazing after it has been generated by HB Apertures by Width Height or HB Apertures by Guide Surface.

Appreciate that it’s solvable without GH Python by referencing the original room and then assigning the generated & moved subface via the HB Add Subface component.
Though a remove aperture/subface/shade component feels more natural after/or at the point of setting up the adjustments + assist in script readability.