How to mirror a building in eQUEST

4 posts / 0 new
Last post

Xiangjin,

If the building is mirrored on an east-west axis so that the north wall now faces south and south is now north, but east is still east and west is still west, how about changing the latitude from X degrees north to X degrees south? This won?t work if the building is mirrored on a north-south axis.

Keith Swartz, PE | Senior Energy Engineer
Seventhwave
608.210.7123 seventhwave.org

via Equest-users's picture
Joined: 2016-07-15
Reputation: 400

Hello All,
Thanks for your help. Our energy modelling team got a heated discussion and come out two possible ?easier? solutions:

1. Rotate the building by 180 deg and change the Latitude from north to south ? does not work, since the program does not take this revised Latitude in the simulation. The weather file needs to be modified to mirror the location of the building from northern hemisphere to south hemisphere. I will pull out the weather file to see how complicated it is.

2. Edit azimuth values for all exposures in .inp files or in parametric run. The geometry is still the same, but the exposures have been changed. But the problem is the azimuth values are relative to origin of each zone, not absolute. It will be a lot of work to flip the exposures 180 deg by checking what is the original azimuth values in the model. Say if the building is mirrored on an north-south axis, the north is still north, but east becomes west. So the east and west exposures need to be edited, while the north and south exposures can be left untouched.

I am still on my way to solve it out completely. But these two approaches may give some hints to others who encounter the same situation. At the same time, you are always welcome to put your comments and suggestions.

Regards,

Xiangjin Yang Ph.D., P.Eng., LEED AP BD+C
MCW Energy Modelling Centre of Excellence
Building Simulation Engineer

MCW Consultants Ltd.
Queen?s Quay Terminal
207 Queen?s Quay West, Suite 615
Toronto, Ontario, Canada M5J 1A7
Office: (416) 598-2920 ext:255
Fax: (416) 598-5394

This e-mail may be privileged and confidential. Any unauthorized use is strictly prohibited. If you received this e-mail in error, please contact the sender directly.

P Please consider the environment before printing this e-mail

via Equest-users's picture
Joined: 2016-07-15
Reputation: 400

This is just a thought:

If the building is mirrored about a north-south axis then the floor polygons can be mirrored by switching the x coordinates of the polygon vertices. Then the floor in each space has a polygon that is the mirror of the space polygon. You could use those polygons to replace the existing space polygons ? I think. The tricky part is placing each of those polygons on the correct vertex of its new floor polygon. The exterior walls should still be on the same relative space vertex ? I think.

[cid:image003.png at 01D09C46.E75BA0D0]
Christopher Jones, P.Eng.
Senior Engineer

WSP Canada Inc.
2300 Yonge Street, Suite 2300
Toronto, ON M4P 1E4
T +1 416-644-4226
F +1 416-487-9766
C +1 416-697-0056

www.wspgroup.com

Anonymous's picture
Anonymous

Some clever thinking so far ? fun to read!

Furthering idea #2 ? what seems like a lot of work could possibly be automated with user-default expressions?

? The ?starting? Azimuth input for each exterior wall surface is determined the following doe2 default expression:

if( (#P("SHAPE")==#SI("NO-SHAPE","SPACE","SHAPE"))

.or.(#RV(#L("LOCATION"))!=0)) then 0.0

else

if(#P("SHAPE")==#SI("BOX","SPACE","SHAPE")) then

switch (#SV(#L("LOCATION")))

case 1 : 180.0

case 2 : 0.0

case 3 : 270.0

case 4 : 90.0

case 5 : 180.0

case 6 : 0.0

case 11: 180.0

case 12: 90.0

case 13: 0.0

case 14: 270.0

default : 0.0

endswitch

else

if (#SV(#L("LOCATION")) > 10) then

CalcAz( #P("POLYGON"), #SV(#L("LOCATION"))-11 ) - 180.0

else

switch (#SV(#L("LOCATION")))

case 1 : 180.0

case 2 : 90.0

case 3 : CalcAz( #P("POLYGON"), 3 ) - 180.0

case 4 : CalcAz( #P("POLYGON"), 1 ) - 180.0

case 5 : CalcAz( #P("POLYGON"), 0 ) - 180.0

case 6 : CalcAz( #P("POLYGON"), 2 ) - 180.0

default : CalcAz( #P("POLYGON"), 0 ) - 180.0

endswitch

endif

endif

endif

? For my own sanity I?m assuming like most (all?) wizard-generated models, your spaces are all defined using polygons, so we can substantially simplify the above default expression:

if (#SV(#L("LOCATION")) > 10)

then

CalcAz( #P("POLYGON"), #SV(#L("LOCATION"))-11 ) - 180.0

else

switch (#SV(#L("LOCATION")))

case 1 : 180.0

case 2 : 90.0

case 3 : CalcAz( #P("POLYGON"), 3 ) - 180.0

case 4 : CalcAz( #P("POLYGON"), 1 ) - 180.0

case 5 : CalcAz( #P("POLYGON"), 0 ) - 180.0

case 6 : CalcAz( #P("POLYGON"), 2 ) - 180.0

default : CalcAz( #P("POLYGON"), 0 ) - 180.0

endswitch

endif

? In the above if/then & switch statements, #SV(#L("LOCATION")) is returning whatever you would be choosing in this dropdown:

o ?Top? ? ?Back? would return #SV(#L("LOCATION")) = 1 ? 6

o ?V1 of Space Polygon? returns #SV(#L("LOCATION")) = 11, V2=12, V3=13? etc.

o Again falling back to wizard-generated models, I note walls normally use vertices for locations, so we only need to mess with the first case (#SV(#L("LOCATION")) > 10)

? So? to ?flip? azimuth (+180) for all the walls we just add 180 to the 3rd line:

if (#SV(#L("LOCATION")) > 10)

then

CalcAz( #P("POLYGON"), #SV(#L("LOCATION"))-11 ) - 180.0 + 180

else

switch (#SV(#L("LOCATION")))

case 1 : 180.0

case 2 : 90.0

case 3 : CalcAz( #P("POLYGON"), 3 ) - 180.0

case 4 : CalcAz( #P("POLYGON"), 1 ) - 180.0

case 5 : CalcAz( #P("POLYGON"), 0 ) - 180.0

case 6 : CalcAz( #P("POLYGON"), 2 ) - 180.0

default : CalcAz( #P("POLYGON"), 0 ) - 180.0

endswitch

endif

(yeah, I could also just remove the -180, but retaining for clarity at this point)

This makes a model go from this:

To this:

? Notwithstanding some new concerns regarding X/Y positioning to ensure accurate building self-shading (I?ll circle back to this), we now have all walls & their children (windows/doors) facing a 180-degree ?flipped? direction.

? This leaves the issue that you only want this ?azimuth flip? applied to surfaces which are North/South (or East/West) facing. There?s probably a few ways to do this, but I fell back to calculating ?plan north? orientation using parent+grandparent inputs:

if (#SV(#L("LOCATION")) > 10)

then

switch(MOD(#P2("AZIMUTH") + #P("AZIMUTH"), 360))

case 0 : CalcAz( #P("POLYGON"), #SV(#L("LOCATION"))-11 )

case 180 : CalcAz( #P("POLYGON"), #SV(#L("LOCATION"))-11 )

default : CalcAz( #P("POLYGON"), #SV(#L("LOCATION"))-11 ) - 180

endswitch

else

switch (#SV(#L("LOCATION")))

case 1 : 180.0

case 2 : 90.0

case 3 : CalcAz( #P("POLYGON"), 3 ) - 180.0

case 4 : CalcAz( #P("POLYGON"), 1 ) - 180.0

case 5 : CalcAz( #P("POLYGON"), 0 ) - 180.0

case 6 : CalcAz( #P("POLYGON"), 2 ) - 180.0

default : CalcAz( #P("POLYGON"), 0 ) - 180.0

endswitch

endif

Extra Notes:

o I made a few failed attempts to leverage the function ?DEG-FROM-NORTH,? but I sense that ends up being circular logic when applied to an exterior surface azimuth input... if it?s possible, I?d like to see an example!

o The specificed switch case values 0 (North) and 180 (South) should be independent of any global azimuth input, but check the results visually in 3D view for your case? if I?m wrong you may need to work #G("BUILD-PARAMETERS","AZIMUTH") into the switch statement.

o If you have a ?non-orthogonal? building with angled facets, you might instead want to specify the smaller number orientations for facets which DO NOT flip? if it?s a very complex footprint it may be easier to switch to if/then conditional ranges for orientation in lieu of a switch statement.

o Ta-Da!

? From here you could play with X/Y expressions to situate the walls more correctly to avoid oddball self-shading effects, but I suspect the moment your model stops looking like a square ?box? that could get very tricky. You could avoid the issue by just turning self-shading off if you don?t think it?s a big deal? you could also just push each modified wall a few hundred feet away from the building footprint using an X-input expression similar to (but simpler than) the above example.

Please let us know what your solution ends up looking like!

~Nick

------------------------------------------------------------------------------------------------------------------------------

Nick Caton, P.E.

Senior Energy Engineer
Energy and Sustainability Services
North America Operations
Schneider Electric

D 913.564.6361
M 785.410.3317
E nicholas.caton at schneider-electric.com
F 913.564.6380

15200 Santa Fe Trail Drive
Suite 204
Lenexa, KS 66219
United States

via Equest-users's picture
Joined: 2016-07-15
Reputation: 400