Hi Jeremy
I would agree. Unfortunately I have no sample code related to host_area_computed analysis. My findings on the parameter value is based on manual analysis including family editing, measuring, snooping and comparing through a series of small steps. When I eventually stumbled upon the IFCExportUtils methods, I settled my quest for clarity in regards to the bip.
The way I have used them, generally, is pretty straight forward. I've attached a very simple samle implementing both methods to display the surface areas of selected windows/doors/curtain panels. I've also attached a sample project containing the earlier mentioned 1000x1000 mm single sheet window and a 'zig-zag'-shaped window intented to challenge the method a bit - which it doesn't 🙂
One beauty of the GetInstanceCutoutFromWall method is that it returns the opening boundary as a curve loop and thus provides additional posibilities related to windows/door. For instance, the perimeter is available through curve lengths or sealant area can be calculated by adding a CurveLoop.CreateViaOffset to the list thats feeds the ComputeAreaOfCurveLoops, etc.
I've tested the methods on windows intersecting the vertical join between two different wall types and windows interesecting the horizontical join in stacked walls, in each case with consistant outcome.
Ideally the GetAreaCutoutFromWall would instead be *FromHost to cover skylights as well. But with solid performance like this I can't really ask for more, except maybe the values exposed directly by the FamilyInstance class or curtain wall's orientation vector updating accordingly when flipped (a different discussion maybe :))
I hope that the sample can be of use and look forward to hopefully seeing more on this matter on The Building Coder.
Best regards,
Peter