From 5e4879369e2e6d534677df2f13b1fb269926c987 Mon Sep 17 00:00:00 2001 From: Chris Mackey Date: Fri, 29 Sep 2023 10:52:28 -0700 Subject: [PATCH] fix(apply): Update components to assign properties to Models --- .../icon/HB Apply Abolute Load Values.png | Bin 1264 -> 1262 bytes .../icon/HB Apply ConstructionSet.png | Bin 1200 -> 1201 bytes .../icon/HB Apply Daylight Control.png | Bin 974 -> 975 bytes .../icon/HB Apply Load Values.png | Bin 904 -> 902 bytes .../icon/HB Apply Opaque Construction.png | Bin 1097 -> 1096 bytes .../icon/HB Apply ProgramType.png | Bin 1123 -> 1123 bytes .../icon/HB Apply Room Schedules.png | Bin 1130 -> 1130 bytes .../icon/HB Apply Setpoint Values.png | Bin 924 -> 925 bytes .../icon/HB Apply Shade Construction.png | Bin 865 -> 863 bytes .../icon/HB Apply Shade Schedule.png | Bin 1331 -> 1332 bytes .../icon/HB Apply Window Construction.png | Bin 1047 -> 1044 bytes .../json/HB_Apply_Abolute_Load_Values.json | 6 +-- .../json/HB_Apply_ConstructionSet.json | 8 +-- .../json/HB_Apply_Daylight_Control.json | 6 +-- .../json/HB_Apply_Load_Values.json | 6 +-- .../json/HB_Apply_Opaque_Construction.json | 6 +-- .../json/HB_Apply_ProgramType.json | 8 +-- .../json/HB_Apply_Room_Schedules.json | 8 +-- .../json/HB_Apply_Setpoint_Values.json | 6 +-- .../json/HB_Apply_Shade_Construction.json | 4 +- .../json/HB_Apply_Shade_Schedule.json | 6 +-- .../json/HB_Apply_Window_Construction.json | 6 +-- .../src/HB Apply Abolute Load Values.py | 35 ++++++++++--- .../src/HB Apply ConstructionSet.py | 30 ++++++++--- .../src/HB Apply Daylight Control.py | 29 +++++++++-- .../src/HB Apply Load Values.py | 45 ++++++++++------ .../src/HB Apply Opaque Construction.py | 17 +++--- .../src/HB Apply ProgramType.py | 26 +++++++--- .../src/HB Apply Room Schedules.py | 49 +++++++++++------- .../src/HB Apply Setpoint Values.py | 35 +++++++++---- .../src/HB Apply Shade Construction.py | 11 +++- .../src/HB Apply Shade Schedule.py | 23 +++++--- .../src/HB Apply Window Construction.py | 11 ++-- .../HB Apply Abolute Load Values.ghuser | Bin 6206 -> 6389 bytes .../HB Apply ConstructionSet.ghuser | Bin 4295 -> 4509 bytes .../HB Apply Daylight Control.ghuser | Bin 6215 -> 6421 bytes .../user_objects/HB Apply Load Values.ghuser | Bin 6343 -> 6438 bytes .../HB Apply Opaque Construction.ghuser | Bin 5062 -> 5097 bytes .../user_objects/HB Apply ProgramType.ghuser | Bin 4240 -> 4426 bytes .../HB Apply Room Schedules.ghuser | Bin 6937 -> 7052 bytes .../HB Apply Setpoint Values.ghuser | Bin 4824 -> 4934 bytes .../HB Apply Shade Construction.ghuser | Bin 4603 -> 4635 bytes .../HB Apply Shade Schedule.ghuser | Bin 5656 -> 5715 bytes .../HB Apply Window Construction.ghuser | Bin 5195 -> 5226 bytes 44 files changed, 253 insertions(+), 128 deletions(-) diff --git a/honeybee_grasshopper_energy/icon/HB Apply Abolute Load Values.png b/honeybee_grasshopper_energy/icon/HB Apply Abolute Load Values.png index 37f9a421f6f5d07846fe92ff70db4ec8a1f24815..108d1d9d6a23a0e6c62fa208c4b4ef36e48ae615 100644 GIT binary patch delta 1154 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 KMNUMnLSTZI%t^2S delta 1143 zcmV--1c>{w39t!}NPiB)000id0mpBsWB>pJMM*?KR7gwRRc%aLRT#d%P(kHOS61i% zTPm<%mO(b`#EBSX(S)EuWBk1zixd$80cR{(P5d){Xh=~v6ZyF@=Y}!P$=vApF0|W9 zX#q(HA7jva`$0>~S9v_=+*3Z{5=`)yPx9ov=e=*A_n!B@=YOs6zryMK{CrDAMMb|} zukS4^EVLXucHB~1Tia7!UOrG&dueG23Wef#F1>|wcDtPgP|VEC!ZGUPyS*`J8Ac!wWVYY$rwMLw zT^ZyA4ddhEEP!G^3078CP*zsf%B5v!G@3KBv$HIKVm}FJiHP1cF1-cge^nx%&-c#~ z5$r3$z=IJ4mP5=A27}1U%e%yNWn^Y%emp%r%>pR?O@D$-@}?V;lZZ@B!PfB$f}+U$ z;cytGrKK0Rw2b)p`1&al7{&bjBe=%4Kl3Bn1`*Hd;JvrllbUst%QF~Ft>5n|(ZJx4T%tezM0amLETqf&y382t z?nNIdnX{@EzGoFIfj3DBM~exAqzSHGx_^w+#KcbI=EiVs27}FJW7m8s5Mcd2;us}^ zD?lzz2m#{v5#H(PW9!oDDtza^hP2hD3iyA!!TcUF>`s)F?7qobt@g|+c^HLTl(vS~ zPB>lLe@eLcBNm@XUtu&aY8zNoCMgvn$I5eD`8DpXg0ing{kpK#G= zL{n1}nwy)~8yY_g8w>`v?|Sb8;6Mg&NDC;{xc*5s^EWm&A}%iOSFXE-B*I+6bV3!k zDGw56b6ZWA!R_2{1mRs|<}`WIG=`0gY{Q3w@JjR0AxVxhEl(I9luQmPmbOlYCdy|~e(7V1u}xN?CB@rN>CQ&K8T) zTI;;CmKH6D zBfy}~oHY*?*jNn>D5a#cVoIgb>yeZfIOns*81C%nqov-{Ya$4_`odW;qobof`di&) z4DBXTYBCCf>wixMcf=_5J+)&X3|G>1CgZKmq`hx&IELDU%95|8+!k?uNfo*%-o^^i zm&@g{e%c$)q&)CZn}&zs-FMywygi8;iYGFba-ZGfd*0FI=@g{BBo&3f&YuV3yS;m1 zSt4;8y(pgeD)@eKJr&O^3i$o>={SHG+rFK=@py74Du2bw8&>Mg*!K|`; zbFj6t3)1Q2FztelC`%;Z;KVO5etZJNntoW#*l$e{-l71&fSWx0!7Y0+p%CvGseYt! z#`6a8IXF?yWM&3et^&>2{k4qkZ|LgAtHtvDn|~Pa0NZq_&cTpVLqkKJv)M&%w?PoW^}s%w&|iI%g#oxpCPfVLh{Td)wR zj(?(WzW6@K-e>H82b+@^OATGjSdB+00000NkvXXu0mjfb9v8& delta 916 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 Xd|@72E?13(00000NkvXXu0mjf2k(y@ diff --git a/honeybee_grasshopper_energy/icon/HB Apply Opaque Construction.png b/honeybee_grasshopper_energy/icon/HB Apply Opaque Construction.png index 71b52439d5cc5c6e3a5bd39719398dae819a1eaf..ca79b4fcb0d80f28559c1187dc65a0252941dd67 100644 GIT binary patch delta 1039 zcmV+q1n~RG2*?PKNPiuN0013_0gvVJWdHyJ-AP12R7gwhm0d`iR~W~`*hE(A>c^Ux zPkoJv?PiRt9bbmw~iZGN(Rdfm>3_--g2sK^=G*Ov`$=H<_;zZ{tfz}SJSnXhT z_;sPV&`#ZKJLcY)D9dV`zW<$*b9`yo3uCa${oo<*b2$8-`!pzCO($dlio6R;!9IrB! zGAR`m6~`b*k`xU}Wo0G&et*oG&*y{31wZ-?#+_=#$t*x!`j4?Mi2Y=t4J3M2IjEsci;^MNnOOeF3 zwzemHzf5CeBUV>edB(UsF@Y~#E=XHjINsa@9zVtx0|UpzagnK%Q9J`Ox_>)^iRo#K zoK8l>WI-S;11P$Rp7!>CY*A7}Lxad2GWGTKSYBS{8ROoA2k@n6aG*{{AXyKopa`FJ zbQ}@KYky3o%!}lpVw+8HI-SzS#s<$A^Zr##n#}lveEYyz6Qs9_G3NC?B@PQyDU)1R zR~O_CnP`iamUzavH9Lc^63*aIZ;lqgyI0_GMqBg-Qz@hT9$dSI`Kc*HKB_{f_$v0U ze1Ppsh4@LEfgmlQ%S1>xkB9cxv8l;i6ZOKoh_nC+Q7d3yZ9>Fgi3UvPAnMGYbFWO|b%)~-_sV?I+A6J* zt08R7h4_*NVyXc_(w6AAKPf~n(3`dojn+q^*4)m$GW3vlxmSiaG9HzG;{Zp~q?PzIfL4SY$QD0x* z5ncP3Tp!;goy8&PcPLH39%Hh<24s1r7j zehxHt$rKq?s$#MpPvXDfcU@+6#E{joZ!|l}L|y00&!AHM1-C-o6o8n*Q~&?~00>D% JPDHLkV1fx^2KN8} delta 1040 zcmV+r1n>LE2+0VLNPiB)000id0mpBsWB>pI-bqA3R7gwhm0d`iR~W~`*hE(A>c^UB z5@TLtV!Ii|+A(JLVO-ZHFU~ImefVy)Xv5+z%e|K8M5aNq?U6yeF#v`L`sR&F1ma z($ep9b8{cksI9FXSF6=Ol$V!(o0pgOBVDuEY}3WX#kY(`VfJ`mSy|bn)oPt0jyIV~ znH0O-eguLfNztHGRaL>~^Tn)rJRWp+cgL*t_xFQ1-eW3dPBk|-{~F!>0!>X#SY2J^ z8DnZ{3PVFfJbz=5{7>S@XDVe*xLn;o@%=LG?d{U~`Z~`Tb8~YT9UbKvV|aLYk2uaU zl`<*S)zx9XU#6m>0!vFvJY!IKXJ;qR7`?r{v_%(~N|}_JnwlNHUxpS~TwLTCV{B{; zU0q!~WAyd)(E>$GrA&g;>D=V|Wv*ZEkk;1Lc*dBYpMQtv&K;gHCMG5#adC0k+@(lj zTU*;RzF(%Xu@PRcmuHOIlau($>4dboiKC4T;OSEgy4^>_ah|D^Q9Ogn%F4f;!Q{*g zMouPU-(W@{%?Q{oqqn2uA6t~v(9j@qhfIBaJyup$c*eN*-~l`-8tkbv5lGfSDzd?S zJZjvL!<>ri0J}$)duYA&C!723`DKzOYW6Pyw=|SgnMN^Yi*Uh zT)RzQ#zAo5UV4z?^-Jl1Ax2Xuz5gAB_PG2PU`y)yKWgWM}at`98J_h5ey z(%y4`#LVnHHl{?*rszZZ;vESu#}~n1h^MijI`<0q%A9b!-LdmXaJgIv24m~`x3@7Z zSP;>W_u%ym;Qf#A-S{_jOa-P=CaIvHV1Ku#rw1b=BN2K#(m$2_{Cu>uv|w;>@Ni&Y z;E=9;O0JKIq|-Pc{SK!I*deX^JAeC diff --git a/honeybee_grasshopper_energy/icon/HB Apply ProgramType.png b/honeybee_grasshopper_energy/icon/HB Apply ProgramType.png index 4b90b31987c436e0f9a639d854cc41507811814b..94b9bedc76cb366a01f9928688aa2274833749cc 100644 GIT binary patch delta 1043 zcmV+u1nm3c2;&HlUw>UpTV)u>E9Ju#SW9b5OQ92i7DChvrP;V4ahPFP>_sssVKbef ze910)K|(4CO2CC=ltly`0!?94)(t`o0RdfH7nyJ|g>0G82+{CSXaOq-w2Z&+dCyt5 zPFRF_;V=2;JbnB0|MWcX7w`W@sZ1ujPM(?U$Nvt2R4TpP+<)8*r*i?NrKJcC4zA?B zdm_RF0zo0+?)3CD9%gK83|g)BJ3gO(jO0DVrth7TLZNUyKR+Lga&vQ0QBeWCUXOx; z0%T`rBQi4bcaoRNrth6lqBDJceVCn{#r*s{mX?+|At#XU{MrJ3oL{RfzHqI8<{JU**s1>b*wduO{3A!<=4{Eg8KS; zR903}F@NWe*=(k9>-qEOYiq-&B#+VP2Q~Op5l;)ON@8(Cr$<*~BR(eMN7ZV)5OJ`9 z^XDZKX^BoGCnx&`1_sgJ-%m9(G~|zOzHPv5UI=bIEu{KItiUqqzdJUOK7SR*(DBI# z2^J1%Fcp``Y{UTgWOoLhY7cSmoCV8aQScB$Mt>{HL~4Ft%iK7lwb&#$rLs-V*N>vO zxY)z_1@M#83G4GOVk1lh4`~M@mq-D3ToPM=JYCPkVnhBcyQ)+g{6)q%Uq7*A$8K_- z0oVrz@P67$z{z)T_m$(gll2-rx;Nlv=71>>eF&b+S8+|PU0YB-_thUUNrNtB!k3({ zpMU70qM~KaGl0w8-8kFOK;sLSE~4q`6<}(Lyal_8TnEHJhYiQej6ZW;I}%k>Q!_(d z9${o;1U8$E#+_uJwAt;z?K}Q`;1WoHPd-D=X~PupVUCy`iPPzHUh47)qoX&`)6>Jn zqxg1w9GIMhn-o~`zdpDJ!Z;)TQVak9 N002ovPDHLkV1i=e{RIF3 delta 1043 zcmV+u1nm3c2;&HlUw>Onn`IcsE9Kw{tfjTk(!)d!l@M8m(rnz2ILt6Ca#09M*i2_Q z!!CM3LMjPLz=dR#MFbrJO<@OCg%CqPz|*?Ogo`O;%Zx^dhC`tRRzaX;{C&Uo`_`=! z7GYlaOaA$uzJ2& zke;57(9qC7NL~V)zIOtN&i3{7VRm*F^YimqT3W)~+#F_RW>8&S4e~uRAABZxzm(Z* zHm)&%!{Oi}z<*>iF$IpXY5Rn%nzxw#GseZm#mLAwiMqNvT3~p1c#WjQv6=fMARypP zv)N30-rnAU_4Res*49F=*Q2bg%tKP1s(>F+M|pWUR#sN%zka~P#01V16oBXFXJAwJ zjygFx`J3L}Ue5BLY?HQ~OG|@6EbZP#L`OxBvkqS0vR@@r{nL4AEa zDl03gn1A!fXf)Ee^}+@8wYA|BlE-ND{Tlo!kD>)uB}&}L)S;`f5g(E9V{vgv3^~}q z`SV^R(h{9aOic6)3=E>bzn^MoXviDid|Qv(ya3#KR!H@$SdL}Vf2T5rK7SKO((%a< z2^J1%Fr|uNHlh!FvO9fGwMV#r-h}0#Ft~^zqkk1e3^jkCWp13&nlcu4sdAI^^&&4S zDspjtKKyLA!~D`=Yy^qmBJE)05Xs?G#j*v+)A5`V8?xuwRi)P8FEYmYdQp-cyUBU_ zU>zL5dr2FMF( zQG7Q(4optMNeV1^-=Gs!CeshZXV)7}m4B0ygT=)~s@2t1Dkg4iZADd872Iw&8p&EW zk^Qj!(*!mpk#Lhq-4e>+F@1e;nskECM?@h#qYY~t4H+q3$0-}fHHVgm& N002ovPDHLkV1ia>57Gbt diff --git a/honeybee_grasshopper_energy/icon/HB Apply Room Schedules.png b/honeybee_grasshopper_energy/icon/HB Apply Room Schedules.png index b33007616e1addd37f34a691a8ac028d63f37922..fe79ec893c410d473211ec991258bfd298c49708 100644 GIT binary patch delta 1073 zcmV-11kU^F2Cnx7U?|Gi@eSgpCsp@|NfXA1Ym*4Yx zy`3zyBYZyJ8y=$cXuNijUp0>Y)g5qv$GSGm6gh# zg@pw)H8sUZ%bb>cfPH4Od6`Piz~!2Q-|uI$ok53;x%qiE0|Y?;Rrfv9&7gq3R%AK< z8g{#Vj_GDlP*+#SPfkwat6eDPJk0H4Mx*ft)6Jlurhle}8yOkFUO4P@!Z|jE;fZm4 zGBE+?xpQ!SI!f_jWxb@NB-@~?tBYe5?uzgo3Eb=)aAgXZxq+=8FCz5&5;nGy$~v_u z+n}wjZBGXAcpTF{KRj;@Kvb#0l^mPR_RkHH$s~eQLHL7@z&~*q zysjL4L4OfK7ruqCxvAtl(m)iWSXsS|Ap4q)jZLi5{5H+y2Be7VcjE|ucoqUP5Xd0- z-4Ec&T*k9D+ceY7AY@2)}??BAg zkbx26VIACOo$$EbxE~6kwYGNtk0N6s(^il%2!94caMOYL`~k%vO21Gy^?d!+*CA>R z5KPtJOvk~MR;JsdH!9@HswiF!p`sdrlFIvharxh>$QazE@+B!ot=Uivwh{?Q)F$!e zwsg-mr4Wir!E4Jh;tGptF2`v-sjq;bGu>j^3Ni+Pz$)FmS*jxaa&V%68TS&_>zg4w z_J1U}gLG^1iy$012L7liEl#8Gv>w7ijdH7?HzA@c^D=D(hdMes_=gQ{k*H$8lfmL| z@V-3&>6O=T=d=T>)UKfA`E(^@AQT(0_Ch1pPn|}rqYJao)JUAJ{Bx$QAXk3-WkLC# z$6|7e(pN4)Et2OFjq(kWArZylQSb+zN`IdN9d>kT3h5ny(Q27tx(}e$YA>zOE!i`^ z_!41tfnpG$w$byegs)z^2DMr(|1V_0K<~P1XlMxI^uCObkMB%c|Jl)lKM!dkP>W)P zM{()Q`#3W=h{D3ci=>s8mdwU}qMi8CZu~}_cOHi0NF1vG3{@CVsRk)-CH^-^nJP}` rQu>N!USHmvpfOc@@&H?6P^ta`pI|4BqaR7gw3Rb5P*RTysEu$jVO&aTjQ z@Vze=vh0{Q5xm{gdaXFXv*jP9-DA{VW z+0feBDzMOwAcK7^EiDl_m-d`s;YXq_D=X`>{{H?e)z#H#Y;3&uVtxI2ycKZy|O(A9A@vP#P>ofRu$)zNRIUd(%Zes50Pl&Cp;okZ>=A2G=`rm<= zt0x09#KT6o&N|?Bxo|%iL~BjW!XNo&9n)5jGJgmJf^gA+d3~#jL4e z6hp97g0mb4S5&UH$7EK>l~ho?5<*!e{DtNB`GV5FRgp5dOXW*alv=Z?7;MMmkf=@K z%WZ1U^+gc!i@+O7QsN2=XfDTTJz*+?V6@y~+6qzztE+yxc}}WAeK|N$z^rQ-8}-c) z9)Eih+(EiEx%m)|90PyUqKeZfJZ*w-P_Nu7m@EhzOFT?l!J&?h4*p?-TO_I&@MN&` z8$53hLVD#j+&SF^Kea1hdtR-C41|JWtiRBJjZ>!)?dXQ{nJS4hmVVB(6=chAzbq)< z^Jr9Vk$UCg)FOE<(J0>_84^((83TXdDS!1G=&&Qx(@=K+=4#t4(|rJg!EkAfZpohU z#g_pyq(;?F|{2-Kpe z?kFyuc^_wnhM?2wE|OM`Dw&S`#5&?jnfQ%1=RAs!BYvz5D6YVuMl(e5YT|!`q$=fv rF=;Am=1rx|aT=2~Cl9bC294$~7|eW7Pf!cb00000NkvXXu0mjfiG>P! diff --git a/honeybee_grasshopper_energy/icon/HB Apply Setpoint Values.png b/honeybee_grasshopper_energy/icon/HB Apply Setpoint Values.png index 09b58a0801cd011de30afdf8a5c33fb6f448213d..0e7c508ffcc11e00dd608dfb81df58377cd0da58 100644 GIT binary patch delta 852 zcmV-a1FQU;2b~9yR(~={L_t(YOTCm`NRv?*fWMlq={8v@xVe3sy6>BRP*xHQQ}aSE z3Smvu(nLeAyeLSzk<68ev3b#zuBb+Ikr~vr5K3g0g;)JR7a^gtiO%^`kn`v5J>NOo z{F${tdf?$Zd*5^3cRS~N3O|)gjU*xl9H0otUg$+)^`|6L{Fe(Vg7dQ99Ow+w7>=m={YcO5C$;5 zJDVF678bt8(0)`VC8O|w<8l{x5f%*sfH4dF2H_D)MSo{=gQB9M*BH{`8BE&k_Sx#H zs+p?l>Y1wgdg)nNf5CU9re@A>Fhf9ZrVV(J+`Qe{_6t6cSbThZV^>!fiz2IQ0Bh^g z^M&IEeAlF60|B=w3uX<%(3sL0y#&)pPdh152cZ9 zk;MInX@8wA=-2BPi2-z3FD|n6l=AZOkE}jmvoRK?D3$k~pRa|LWIgy(O_F5qLk)-l zbQ#Zt_!AA{;j`5grBeB=xw#pdnwmhNP<&$HFxM3cLy(yVtGJN3!dt?{=g=iA8p@H| z1*WV>1C>hk*yHhl&*uZL*9&g9n>2B=w8RFVU4ORDi^EuONK$7WBgM(~kmCL{!5hw@ zKX`G7E#*#jbab%IiO|~GO1{A{I%OvTqa}lE%K}Pokr{7pbS{mIjIgp11_uX8gNt;^ zPUeh4?v@6Bcn{9>_V%%|5u8pZX>f{8*$IB*yjUB^c|QH^`1m+04KO-73Rap2u(-jpJlQNm?F2<5*Dmrt5kQ6Xvo+YlDMEio# ee4M2i9QPZ<{17$mxs6Z&00003xR(~-`L_t(YOTCm`NRv?*fWK1LbepUc+}xkKZ}ShzN`hf(Ug$+3 ztjV;r;bLBSQIK>anJW`x^P($VQH|&#GpK7Jl*lX#ulj*5LPBMVoAak2r|#`N-#MFq zvlfgVc=*oV_ni0L&N<(>|BV>Ei8|3_5=b;|^eTD{?IM9hl7EU0(4hbsC-hgyP%j;F z2hfM8NcfZ>q$p{y4<%<2s{zT`=fBrKb%v26FTEX2&o1Kw>E=DfaH}ZWcw>)&bTxgy#$A z4frn4!UjBUQ$EbA`KQZDV`fA^g~AbHHDI*&4?F=Fc?AJQ4g?F2LZF}oz8=aZ+aiej z4>L+tD1V?*EfIt0ipsFW)>CR~YCf|1fX&8Pm?Dwfdw#wVRx?x($kGXty^k~?2GJEf z6XH)agon>oQzR0}x0aR`a5x+w7K=ZzaFpxf)M3aghBaJBT-6w(#r^0q7LDY{?E+o? zW&^2I`q=CB!tCrU_6G30 zwS3XG27h=D&h+*5v$C7GTrSe!6rHjg{Km!cHV|nvId3N>CRk~Jv9U2wC=@R-x96L@ zpiIg=Ec{Ing};itXDk(y3_Mh?*=(Mvt*xC(N=mwmv2>b>ji2Y!gX+Aq#5JA4vZ&P` dXDJ59{RYc05I5beFEjuE002ovPDHLkV1m+xlEeT2 diff --git a/honeybee_grasshopper_energy/icon/HB Apply Shade Construction.png b/honeybee_grasshopper_energy/icon/HB Apply Shade Construction.png index e677b43d656ad1367fd9c2fda9b42bf277819645..93c9a8110d46854e115eef99cd6b11061eb87a25 100644 GIT binary patch delta 804 zcmV+<1Ka%J2HysdNPiuN0013_0gvVJWdHyI^hrcPR7gwhlL3TUc?BYKf$aZh(AvrhihgNP5Y?Mr8NH~aUT8xn zI4bnqshfA#H1E?n*Rw`(H@(oyKJew7v$OMkc%Jjzqx+9$41WegM^jVN>u@;ys-~vq zo!{?&8;L|7kU0_FdqI?6H#avw4g>;2WbX6%-c(dngs7D|CX?yq+}s=xWLZ}9_ne@% z9vvM8yeS+F>@h7iRY#P&CsRQp!UD z%-CJ3j!N@q9Gta2Nqgc7MCesBM8@FxX4&R%c)kri`1E0Q0zH zlh`nv{W5AeH{jse~WeL6jPChS=M2HEMYU1mLJ5#v5X iMje^o>7iQ`o$eP@RvU2Vc7$~R00001KIrF2H^&fNPiB)000id0mpBsWB>pH_DMuRR7gwhlGpy-zt1yQ}}mC=iSP%pHh z6C4$K@6^q^Ynu1zoav z`_}LGzllU5_wgJH?LEgTtXo=I9t8q{VLbQwe6OpjszSs{9h1rQVs35@FtRKw`g@L1 zTaS*8f?luhAy(>yLZPeqe4ZTBMlzWMWN~rDsRSs^n}rOtl1`_=;c&DOD|O6f^AOMT z-O&e^C*LfzJ8#?`;HSUb*xtF!%~+lp6h_w;9i*Be?ZYpQ%ETf z4lrYP!`J#Ict^Q--p;-kY4-=7az7)sMbIPHQ|hV69*n@Wt`hjoRz<=V2MDxR34oQ^ z%D@8Ug?}G32jJKayq%dMwnc0<+k;XW2=k>qk3Zr7U!P`pJ)BItC#0DvSLm^NVF*#H0l07*qoM6N<$g4jBG3;+NC diff --git a/honeybee_grasshopper_energy/icon/HB Apply Shade Schedule.png b/honeybee_grasshopper_energy/icon/HB Apply Shade Schedule.png index d74d05b8b555978cb31fa2b4871e588b4f419ba8..a804730800effeef8e719b572ef0065dd0e0e379 100644 GIT binary patch delta 1276 zcmV(R7gw3RBKF=R~U9n%oG!fGgeCr zt#XlNI!BC)MwuB-2fA#T?xHRcuTz1xc!4c0vx>_Ma~CsB$TmU1D&yWt<=PfdLPx9nD=Q-c^yx)1>^M9T({~Nqs?`*r>eqdx| zL@7#sLF5*Zm8b)xh{j3ufA0|Rr@($aoq0n*dcJ0y~cdWl4G!VmR2 zo$hCqN`=(a)PFyuQfUr-zlHb=Gy5mTN+dy5J9nkwM1CRi@{VKt_;DyVoyO7ZT>NnK z*kkb&*jTUPXlkg!0SVy^M+UAe8 z;g!y)*3kvECS~*htf)D8Cph&d z3-D863389;^Ld^=pKF#gjj&y{!4W+V?#Ur=Pk&ONKV~tmwqHj><9S|3@_RhM9$h*e zJ2P%{cA>MYn@&^%H@$qNjkex{=C*6drXDe0Xol@Z7aViu`vNRlg0`NUsBgXmHT4qt ztrl#3(0;aOAI#PUzEuWWdpoj@9mo9#5BU5}M+fo_eTVMWR$#z`fw>FdqyWz6<+vLg z$A7i<#wP6Enuz)1Cun|`$pS=g4!(oxS}U9`7u;?Sn&?k+@=l`H>B8Of7vKzyfI~F{ z&hQuEj+hBoNCaGpaDlYuj-1KY`lm% z>S9(7r9uwRR25u|Q;2fWoKYUeH8-sd1b3G4^I)jIZ{}P9u07%%_amG z9tLjRf@{SGxK73FU%3iH37g=ibnqauY4AkN=GyId-bc$T3vn}8bBzDaRnf_^G@M1n*>lJ#F~C6Mx(gT4Psh|F4TXnJ(XE(RSXwWk zrnwdB-MrD>6Ks8WId<_9R8f&x?#qlO80i8tRn+j_U~>cMrb?PqoeXrF-hPQ1ZHkf# z8j8MoF)+}YiGF7Of`u$VxM2HtXmuAXj2U7V7`wQ(ZcFk{x_gr8`Ag(1{7LEYPMwC1 zS#z*WtwD5j^dR|c6zu#%MT{dZ`xn0bThR0&C}#l5DBP5VI!Jqis386~7z&Aq@hZaN m?kghW?#aXFiSi>DGv+U?cHmPZ4^#pG0000& delta 1275 zcmVpJ$Vo&&R7gw3RC`QQR~&Xr%oG!fGgeE1 zmY1?j$Bc842s4A}0GBP(J=7)Q1E&IQ@c~<0CW^}pa}P63h?~4Y#=Diuvn`;A3OE%+ z6tIJh8CLs1h7e=Ix8FJUnz~t>e=OOTe7X00=icwT_jk_kOn>>`FgiLKY&M$@O-xKE zM9C#+es-VP{H4WW2@|EKLve9&>B^NW(bm@Xl_t1($gU$Bco6* zm!qYn<&Y@3M1Oz3TA@%NEiJ7L~XqR6ojM4j-j};0tqS&+}zws$nROf)`_<_Z`le{<5~V-O`QQ{<-)b7q#UK? zy2n^lQi1B)dX!gaQA5{~G9A6&jJ505gZ!2YwodFi{C~|67#q&ul)f6e$|}?u8=*aQ znvW-A1dW_4Iq|&xC z;Kt1!-0bP49o585FJI}PU++U}$2DY9j~FhrqVq-%EQ>>&0n1mQqwf|PTQ5OHy+nTN z1Y0LGpYJ;WgQs z>wju)!QSn02$?=Z{ku%&CVF%5Kd7xY!D_R?Zg-%CzBD`cB>Js3+&zB*R-Zsvl=EQ? zcoFu%1+aMs!sZnqkml_37Vx6`rWt5{9{FL4h?G%J?#`$8WS}fTX1%4RMS^o z%*duv$l;i)gpF|yQ7)P@%Kf=!r@3KIKYzd{2zNaF<3(={UZQ&H-iNq+wF8;i`52j) z0I2@9X&xAv=?RC23|4n3Y-GgE*`LV#xW?x0Nfm(d1z6+(iJ~`0A}i6O0arRYg@6YS zfWbl7R)2`=w3tI{)?zFs7IrEJ50Ux85fsd|+wXpWwpT-O%TsyHA`e_8dUL2#4u2d( zRZTq%#s(NojnL7SWhJVion>q~i>kBdkX@#QmhKxaT*MGEOg>|8@hj3h??3*Y%o>Nf_(d_WO|TQVODX>Ss}i2n`7yaU5Vz5FA` lz2-&UlLssnI2$TqrNPiuN0013_0gvVJWdHyJsYygZR7gwhm2XH>eH6#n+M0uC(fqUA z-MzZ)PSeRy8;_!Ig~vaemJnor$nr%i^ya_=spAQ`F*!TN8XFKQYH-E+d{4y$)>SSYM<3o(G zii(QoBp8M{fzk%av5Ff#|JBviJtCgk+S2 zBA}#_9IG4~9UWcu5$5LRK%>!&P+gw-`uYn?OH1N`6mGYB7Nv{=YPI^{*w`3#NX*aA z1IKZfs6`&T-G6>L^$k*VclW$PNhvub^m@H}VqzjeEh2&-fZbl z=;>Ko0697`GC~~^e!riz$VYW~SeCsJ3Wewq375;YrbWn_0)apPv|6o~>hd%-HJyvc zqMm^do(r&v=WkJmJcWgYH?xQQr?jRUVkZ8~im7BO$e1VJGOT}g zhXcZxoD>KZnqjW;4|rb0hk{1)WW;2d5{#AyQh(Mo8X6h~ve%RrP(+N@Vc>SavdJb! z7<(V21;irx9DKtk(SXI_8;ub$X*zgw{v)%dPl&c)vfc)+6yhdcj0ODE=>-IwM;xC- zORzThl5Yu#Nz;*=!QPIJcSMUa{Lpu{mizVmCnvi@(nW9bQ5oGdUoOzq}DX7Gr*$nHtgK9XZ@=JFDqYve?NG=-na*UnS+Ca z(A?Zi)->}UO{qLGP*Vp<94INUj03;9Yg0FVBBwJQSC5l4v1De^*#U%!+&Hw-a07*qo IM6N<$f_QD;WB>pF delta 989 zcmV<310wvC2$u+uNPiB)000id0mpBsWB>pItVu*cR7gwhm2XH>dl<*p+M0t)yEOkS zcXp0$JJWPB)W%ixt&o2$$&1@_pWivZ$u`dwF7&bwJe;xb_xC*8^M5@1P4S)ojY_2&YHV!0 zk1<_QQSpof!!Uy=ZIc`uxY2XFuCDGO@zmDVK5A`ky{l9zho~-3Zf@@1kw^px$z)QD zmX;O)C6(mZ;N;ZQ)P|3+xVQ)!jb@VS^3>PYpI=>F6%V9vyWI;YWfV}W)kmkNr>R3? zX=w>Kj{A*TzIC5MDwuXp==z67<12!a51dxeKuX7jJ{iH=+s>{Q&?B!4>M2|?gT&_(mLN*l$1OlMdYOhgUo~EXz zbMbhb9+7BkYnwwUqkvAQYk%nTNzcga z-nn@*3G?%iz(~%`!KZicAkSde| z7Cv}9@B`0p-6E&cIUbEhX=({v(|MFK3Me(|ur~OdZwZM>(~+CO!OqUNM2j-~_&;pPM}gr20X+Q4S`N!JdB|virBVmXvivI1 z!+)mYkAl(qQcRjoRaMo6|5{V1u2$o9nKOr>*J^ribsm9rI^-A*c>#xPsjR$A^psD^ zng(9i<23IEU0q$|8)U5M4&L1KbZ{6_YZ}%WV8weK_8vH}^;LnFm3L%h1iW5v+=IW& zv9U2|Zf+)Pn)#2WRGt{Ese>dAloVLQfmUB>-w&!?ySDx%BSwt97)2P>^mRE#Ho6 """ -Apply ConstructionSet to Honeybee Rooms. +Apply ConstructionSet to Honeybee Rooms or a Model. - Args: _rooms: Honeybee Rooms to which the input _constr_set should be assigned. + This can also be a Honeybee Model for which all Rooms will be + assigned the ConstructionSet. _constr_set: A Honeybee ConstructionSet to be applied to the input _room. This can also be text for a construction set to be looked up in the construction set library. - + Returns: rooms: The input Rooms with their construction sets edited. """ ghenv.Component.Name = "HB Apply ConstructionSet" ghenv.Component.NickName = 'ApplyConstrSet' -ghenv.Component.Message = '1.6.0' +ghenv.Component.Message = '1.6.1' ghenv.Component.Category = 'HB-Energy' ghenv.Component.SubCategory = '1 :: Constructions' ghenv.Component.AdditionalHelpFromDocStrings = '3' +try: # import the honeybee extension + from honeybee.model import Model + from honeybee.room import Room +except ImportError as e: + raise ImportError('\nFailed to import honeybee:\n\t{}'.format(e)) try: # import the honeybee-energy extension from honeybee_energy.lib.constructionsets import construction_set_by_identifier @@ -43,11 +50,22 @@ if all_required_inputs(ghenv.Component): # duplicate the initial objects rooms = [obj.duplicate() for obj in _rooms] - + + # extract any rooms from the input Models + hb_objs = [] + for hb_obj in rooms: + if isinstance(hb_obj, Model): + hb_objs.extend(hb_obj.rooms) + elif isinstance(hb_obj, Room): + hb_objs.append(hb_obj) + else: + raise ValueError( + 'Expected Honeybee Room or Model. Got {}.'.format(type(hb_obj))) + # process the input construction set if it's a string if isinstance(_constr_set, str): _constr_set = construction_set_by_identifier(_constr_set) - + # assign the construction set - for rm in rooms: + for rm in hb_objs: rm.properties.energy.construction_set = _constr_set diff --git a/honeybee_grasshopper_energy/src/HB Apply Daylight Control.py b/honeybee_grasshopper_energy/src/HB Apply Daylight Control.py index 6425371e..c7451be2 100644 --- a/honeybee_grasshopper_energy/src/HB Apply Daylight Control.py +++ b/honeybee_grasshopper_energy/src/HB Apply Daylight Control.py @@ -19,6 +19,8 @@ Args: _rooms: Honeybee Rooms to which simple daylight controls should be assigned. + This can also be a Honeybee Model for which all Rooms will be + assigned daylight control sensors. _sensor_points_: A list of point objects that align with the input _rooms and assign the position of the daylight sensor within the Room. This point should lie within the Room volume and a warning will @@ -61,11 +63,17 @@ ghenv.Component.Name = 'HB Apply Daylight Control' ghenv.Component.NickName = 'DaylightControl' -ghenv.Component.Message = '1.6.1' +ghenv.Component.Message = '1.6.2' ghenv.Component.Category = 'HB-Energy' ghenv.Component.SubCategory = '3 :: Loads' ghenv.Component.AdditionalHelpFromDocStrings = '2' +try: + from honeybee.model import Model + from honeybee.room import Room +except ImportError as e: + raise ImportError('\nFailed to import honeybee_energy:\n\t{}'.format(e)) + try: # import the honeybee-energy extension from honeybee_energy.load.daylight import DaylightingControl except ImportError as e: @@ -84,12 +92,23 @@ # duplicate the initial objects rooms = [room.duplicate() for room in _rooms] + # extract any rooms from the input Models + hb_objs = [] + for hb_obj in rooms: + if isinstance(hb_obj, Model): + hb_objs.extend(hb_obj.rooms) + elif isinstance(hb_obj, Room): + hb_objs.append(hb_obj) + else: + raise ValueError( + 'Expected Honeybee Room or Model. Got {}.'.format(type(hb_obj))) + # set default values and perform checks dist_from_floor = 0.8 / conversion_to_meters() if len(_sensor_points_) != 0: - assert len(_sensor_points_) == len(_rooms), 'Number of sensor points ({}) ' \ + assert len(_sensor_points_) == len(hb_objs), 'Number of sensor points ({}) ' \ 'must align exactly with the number of rooms ({}).'.format( - len(_sensor_points_), len(_rooms)) + len(_sensor_points_), len(hb_objs)) _ill_setpoint_ = [300] if len(_ill_setpoint_) == 0 else _ill_setpoint_ _control_fract_ = [1] if len(_control_fract_) == 0 else _control_fract_ _min_power_in_ = [0.3] if len(_min_power_in_) == 0 else _min_power_in_ @@ -99,7 +118,7 @@ # loop through the rooms and assign daylight sensors unassigned_rooms = [] if len(_sensor_points_) == 0: - for i, room in enumerate(rooms): + for i, room in enumerate(hb_objs): dl_control = room.properties.energy.add_daylight_control_to_center( dist_from_floor, longest_list(_ill_setpoint_, i), longest_list(_control_fract_, i), longest_list(_min_power_in_, i), @@ -108,7 +127,7 @@ if dl_control is None: unassigned_rooms.append(room.display_name) else: - for i, room in enumerate(rooms): + for i, room in enumerate(hb_objs): sensor_pt = to_point3d(_sensor_points_[i]) if room.geometry.is_point_inside(sensor_pt): dl_control = DaylightingControl( diff --git a/honeybee_grasshopper_energy/src/HB Apply Load Values.py b/honeybee_grasshopper_energy/src/HB Apply Load Values.py index a8c46c9e..89907339 100644 --- a/honeybee_grasshopper_energy/src/HB Apply Load Values.py +++ b/honeybee_grasshopper_energy/src/HB Apply Load Values.py @@ -18,7 +18,9 @@ Args: _room_or_program: Honeybee Rooms or ProgramType objects to which the input load objects should be assigned. This can also be the identifier of a - ProgramType to be looked up in the program type library. + ProgramType to be looked up in the program type library. This can + also be a Honeybee Model for which all Rooms will be assigned + the loads. people_per_floor_: A numerical value for the number of people per square meter of floor area. lighting_per_floor_: A numerical value for the lighting power density in @@ -61,7 +63,7 @@ ghenv.Component.Name = "HB Apply Load Values" ghenv.Component.NickName = 'ApplyLoadVals' -ghenv.Component.Message = '1.6.0' +ghenv.Component.Message = '1.6.1' ghenv.Component.Category = 'HB-Energy' ghenv.Component.SubCategory = '3 :: Loads' ghenv.Component.AdditionalHelpFromDocStrings = "2" @@ -69,6 +71,7 @@ import uuid try: + from honeybee.model import Model from honeybee.room import Room except ImportError as e: raise ImportError('\nFailed to import honeybee:\n\t{}'.format(e)) @@ -135,81 +138,91 @@ def duplicate_and_id_program(program): if all_required_inputs(ghenv.Component): # duplicate the initial objects - mod_obj = [] + mod_obj, edit_objs = [], [] for obj in _room_or_program: if isinstance(obj, Room): - mod_obj.append(obj.duplicate()) + new_obj = obj.duplicate() + mod_obj.append(new_obj) + edit_objs.append(new_obj) + elif isinstance(obj, Model): + new_obj = obj.duplicate() + mod_obj.append(new_obj) + edit_objs.extend(new_obj.rooms) elif isinstance(obj, ProgramType): - mod_obj.append(duplicate_and_id_program(obj)) + new_obj = duplicate_and_id_program(obj) + mod_obj.append(new_obj) + edit_objs.append(new_obj) elif isinstance(obj, str): try: program = building_program_type_by_identifier(obj) except ValueError: program = program_type_by_identifier(obj) - mod_obj.append(duplicate_and_id_program(program)) + new_obj = duplicate_and_id_program(obj) + mod_obj.append(new_obj) + edit_objs.append(new_obj) else: - raise TypeError('Expected Honeybee Room or ProgramType. ' + raise TypeError('Expected Honeybee Room, Model or ProgramType. ' 'Got {}.'.format(type(obj))) # assign the people_per_floor_ if len(people_per_floor_) != 0: - for i, obj in enumerate(mod_obj): + for i, obj in enumerate(edit_objs): people = dup_load(obj, 'people', People) people.people_per_area = longest_list(people_per_floor_, i) assign_load(obj, people, 'people') # assign the lighting_per_floor_ if len(lighting_per_floor_) != 0: - for i, obj in enumerate(mod_obj): + for i, obj in enumerate(edit_objs): lighting = dup_load(obj, 'lighting', Lighting) lighting.watts_per_area = longest_list(lighting_per_floor_, i) assign_load(obj, lighting, 'lighting') # assign the electric_per_floor_ if len(electric_per_floor_) != 0: - for i, obj in enumerate(mod_obj): + for i, obj in enumerate(edit_objs): equip = dup_load(obj, 'electric_equipment', ElectricEquipment) equip.watts_per_area = longest_list(electric_per_floor_, i) assign_load(obj, equip, 'electric_equipment') # assign the gas_per_floor_ if len(gas_per_floor_) != 0: - for i, obj in enumerate(mod_obj): + for i, obj in enumerate(edit_objs): equip = dup_load(obj, 'gas_equipment', GasEquipment) equip.watts_per_area = longest_list(gas_per_floor_, i) assign_load(obj, equip, 'gas_equipment') # assign the hot_wtr_per_floor_ if len(hot_wtr_per_floor_) != 0: - for i, obj in enumerate(mod_obj): + for i, obj in enumerate(edit_objs): shw = dup_load(obj, 'service_hot_water', ServiceHotWater) shw.flow_per_area = longest_list(hot_wtr_per_floor_, i) assign_load(obj, shw, 'service_hot_water') # assign the infilt_per_exterior_ if len(infilt_per_exterior_) != 0: - for i, obj in enumerate(mod_obj): + for i, obj in enumerate(edit_objs): infilt = dup_load(obj, 'infiltration', Infiltration) infilt.flow_per_exterior_area = longest_list(infilt_per_exterior_, i) assign_load(obj, infilt, 'infiltration') # assign the vent_per_floor_ if len(vent_per_floor_) != 0: - for i, obj in enumerate(mod_obj): + for i, obj in enumerate(edit_objs): vent = dup_load(obj, 'ventilation', Ventilation) vent.flow_per_area = longest_list(vent_per_floor_, i) assign_load(obj, vent, 'ventilation') # assign the vent_per_person_ if len(vent_per_person_) != 0: - for i, obj in enumerate(mod_obj): + for i, obj in enumerate(edit_objs): vent = dup_load(obj, 'ventilation', Ventilation) vent.flow_per_person = longest_list(vent_per_person_, i) assign_load(obj, vent, 'ventilation') # assign the vent_ach_ if len(vent_ach_) != 0: - for i, obj in enumerate(mod_obj): + for i, obj in enumerate(edit_objs): vent = dup_load(obj, 'ventilation', Ventilation) vent.air_changes_per_hour = longest_list(vent_ach_, i) assign_load(obj, vent, 'ventilation') diff --git a/honeybee_grasshopper_energy/src/HB Apply Opaque Construction.py b/honeybee_grasshopper_energy/src/HB Apply Opaque Construction.py index 5091ac83..103b2418 100644 --- a/honeybee_grasshopper_energy/src/HB Apply Opaque Construction.py +++ b/honeybee_grasshopper_energy/src/HB Apply Opaque Construction.py @@ -15,8 +15,8 @@ - Args: - _hb_objs: Honeybee Faces, Doors or Rooms to which the input _constr should - be assigned. For the case of a Honeybee Room, the construction + _hb_objs: Honeybee Faces, Doors, Rooms or a Model to which the input _constr should + be assigned. For the case of a Room or a Model, the construction will only be applied to the Room's outdoor walls. Note that, if you need to assign a construction to all the roofs, floors, etc. of a Room, the best practice is to create a ConstructionSet and assing that @@ -33,7 +33,7 @@ ghenv.Component.Name = "HB Apply Opaque Construction" ghenv.Component.NickName = 'ApplyOpaqueConstr' -ghenv.Component.Message = '1.6.0' +ghenv.Component.Message = '1.6.1' ghenv.Component.Category = 'HB-Energy' ghenv.Component.SubCategory = '1 :: Constructions' ghenv.Component.AdditionalHelpFromDocStrings = '3' @@ -47,6 +47,7 @@ try: # import the core honeybee dependencies from honeybee.boundarycondition import Outdoors from honeybee.facetype import Wall + from honeybee.model import Model from honeybee.room import Room from honeybee.face import Face from honeybee.door import Door @@ -69,21 +70,21 @@ def is_exterior_wall(face): if all_required_inputs(ghenv.Component): # duplicate the initial objects hb_objs = [obj.duplicate() for obj in _hb_objs] - + # process the input constructions for i, constr in enumerate(_constr): if isinstance(constr, str): _constr[i] = opaque_construction_by_identifier(constr) - + # error message for unrecognized object error_msg = 'Input _hb_objs must be a Room, Face, or Door. Not {}.' - + # assign the constructions if len(_constr) == 1: # assign indiscriminately, even if it's horizontal for obj in hb_objs: if isinstance(obj, (Face, Door)): obj.properties.energy.construction = _constr[0] - elif isinstance(obj, Room): + elif isinstance(obj, (Room, Model)): for face in obj.faces: if is_exterior_wall(face): face.properties.energy.construction = _constr[0] @@ -96,7 +97,7 @@ def is_exterior_wall(face): orient_i = face_orient_index(obj, angles) if orient_i is not None: obj.properties.energy.construction = _constr[orient_i] - elif isinstance(obj, Room): + elif isinstance(obj, (Room, Model)): for face in obj.faces: if is_exterior_wall(face): orient_i = face_orient_index(face, angles) diff --git a/honeybee_grasshopper_energy/src/HB Apply ProgramType.py b/honeybee_grasshopper_energy/src/HB Apply ProgramType.py index 4325d74b..4480232f 100644 --- a/honeybee_grasshopper_energy/src/HB Apply ProgramType.py +++ b/honeybee_grasshopper_energy/src/HB Apply ProgramType.py @@ -8,13 +8,15 @@ # @license AGPL-3.0-or-later """ -Apply ProgramType objects to Rooms. +Apply ProgramType objects to Rooms or a Model. - Args: - _rooms: Honeybee Rooms to which the input load objects should be assigned. + _rooms: Honeybee Rooms to which the input program should be assigned. + This can also be a Honeybee Model for which all Rooms will be + assigned the ProgramType. _program: A ProgramType object to apply to the input rooms, - + Returns: report: Reports, errors, warnings, etc. rooms: The input Rooms with their loads edited. @@ -22,12 +24,13 @@ ghenv.Component.Name = "HB Apply ProgramType" ghenv.Component.NickName = 'ApplyProgram' -ghenv.Component.Message = '1.6.0' +ghenv.Component.Message = '1.6.1' ghenv.Component.Category = 'HB-Energy' ghenv.Component.SubCategory = '3 :: Loads' ghenv.Component.AdditionalHelpFromDocStrings = "1" try: + from honeybee.model import Model from honeybee.room import Room except ImportError as e: raise ImportError('\nFailed to import honeybee_energy:\n\t{}'.format(e)) @@ -46,10 +49,21 @@ if all_required_inputs(ghenv.Component): # duplicate the initial objects - rooms = [obj.duplicate() for obj in _rooms if isinstance(obj, Room)] + rooms = [obj.duplicate() for obj in _rooms] + + # extract any rooms from the input Models + hb_objs = [] + for hb_obj in rooms: + if isinstance(hb_obj, Model): + hb_objs.extend(hb_obj.rooms) + elif isinstance(hb_obj, Room): + hb_objs.append(hb_obj) + else: + raise ValueError( + 'Expected Honeybee Room or Model. Got {}.'.format(type(hb_obj))) # apply the program to the rooms - for i, room in enumerate(rooms): + for i, room in enumerate(hb_objs): prog = longest_list(_program, i) if isinstance(prog, str): # get the program object if it is a string try: diff --git a/honeybee_grasshopper_energy/src/HB Apply Room Schedules.py b/honeybee_grasshopper_energy/src/HB Apply Room Schedules.py index 4efa4d5e..7e99a8ce 100644 --- a/honeybee_grasshopper_energy/src/HB Apply Room Schedules.py +++ b/honeybee_grasshopper_energy/src/HB Apply Room Schedules.py @@ -8,7 +8,7 @@ # @license AGPL-3.0-or-later """ -Apply schedules to a Room or ProgramType. +Apply schedules to a Room, Model or ProgramType. _ Note that, if a schedule is assigned to a Room or ProgramType that posseses no value for a given load, an error will be raised. For example, assigning a @@ -21,7 +21,9 @@ Args: _room_or_program: Honeybee Rooms or Honeybee ProgramType objects for which schedules should be changed. This can also be the identifier of a - ProgramType to be looked up in the program type library. + ProgramType to be looked up in the program type library. This can + also be a Honeybee Model for which all Rooms will be assigned + the schedules. occupancy_sch_: A fractional schedule for the occupancy over the course of the year. This can also be the identifier of a schedule to be looked up in the schedule library. @@ -70,7 +72,7 @@ ghenv.Component.Name = "HB Apply Room Schedules" ghenv.Component.NickName = 'ApplyRoomSch' -ghenv.Component.Message = '1.6.0' +ghenv.Component.Message = '1.6.1' ghenv.Component.Category = 'HB-Energy' ghenv.Component.SubCategory = '2 :: Schedules' ghenv.Component.AdditionalHelpFromDocStrings = "3" @@ -78,6 +80,7 @@ import uuid try: + from honeybee.model import Model from honeybee.room import Room except ImportError as e: raise ImportError('\nFailed to import honeybee:\n\t{}'.format(e)) @@ -141,88 +144,98 @@ def duplicate_and_id_program(program): if all_required_inputs(ghenv.Component): # duplicate the initial objects - mod_obj = [] + mod_obj, edit_objs = [], [] for obj in _room_or_program: if isinstance(obj, Room): - mod_obj.append(obj.duplicate()) + new_obj = obj.duplicate() + mod_obj.append(new_obj) + edit_objs.append(new_obj) + elif isinstance(obj, Model): + new_obj = obj.duplicate() + mod_obj.append(new_obj) + edit_objs.extend(new_obj.rooms) elif isinstance(obj, ProgramType): - mod_obj.append(duplicate_and_id_program(obj)) + new_obj = duplicate_and_id_program(obj) + mod_obj.append(new_obj) + edit_objs.append(new_obj) elif isinstance(obj, str): try: program = building_program_type_by_identifier(obj) except ValueError: program = program_type_by_identifier(obj) - mod_obj.append(duplicate_and_id_program(program)) + new_obj = duplicate_and_id_program(obj) + mod_obj.append(new_obj) + edit_objs.append(new_obj) else: - raise TypeError('Expected Honeybee Room or ProgramType. ' + raise TypeError('Expected Honeybee Room, Model or ProgramType. ' 'Got {}.'.format(type(obj))) # assign the occupancy schedule if len(occupancy_sch_) != 0: - for i, obj in enumerate(mod_obj): + for i, obj in enumerate(edit_objs): people = dup_load(obj, 'people', 'occupancy_sch_') people.occupancy_schedule = schedule_object(longest_list(occupancy_sch_, i)) assign_load(obj, people, 'people') # assign the activity schedule if len(activity_sch_) != 0: - for i, obj in enumerate(mod_obj): + for i, obj in enumerate(edit_objs): people = dup_load(obj, 'people', 'activity_sch_') people.activity_schedule = schedule_object(longest_list(activity_sch_, i)) assign_load(obj, people, 'people') # assign the lighting schedule if len(lighting_sch_) != 0: - for i, obj in enumerate(mod_obj): + for i, obj in enumerate(edit_objs): lighting = dup_load(obj, 'lighting', 'lighting_sch_') lighting.schedule = schedule_object(longest_list(lighting_sch_, i)) assign_load(obj, lighting, 'lighting') # assign the electric equipment schedule if len(electric_equip_sch_) != 0: - for i, obj in enumerate(mod_obj): + for i, obj in enumerate(edit_objs): equip = dup_load(obj, 'electric_equipment', 'electric_equip_sch_') equip.schedule = schedule_object(longest_list(electric_equip_sch_, i)) assign_load(obj, equip, 'electric_equipment') # assign the gas equipment schedule if len(gas_equip_sch_) != 0: - for i, obj in enumerate(mod_obj): + for i, obj in enumerate(edit_objs): equip = dup_load(obj, 'gas_equipment', 'gas_equip_sch_') equip.schedule = schedule_object(longest_list(gas_equip_sch_, i)) assign_load(obj, equip, 'gas_equipment') # assign the hot water schedule if len(hot_water_sch_) != 0: - for i, obj in enumerate(mod_obj): + for i, obj in enumerate(edit_objs): shw = dup_load(obj, 'service_hot_water', 'hot_water_sch_') shw.schedule = schedule_object(longest_list(hot_water_sch_, i)) assign_load(obj, shw, 'service_hot_water') # assign the infiltration schedule if len(infiltration_sch_) != 0: - for i, obj in enumerate(mod_obj): + for i, obj in enumerate(edit_objs): infiltration = dup_load(obj, 'infiltration', 'infiltration_sch_') infiltration.schedule = schedule_object(longest_list(infiltration_sch_, i)) assign_load(obj, infiltration, 'infiltration') # assign the ventilation schedule if len(ventilation_sch_) != 0: - for i, obj in enumerate(mod_obj): + for i, obj in enumerate(edit_objs): ventilation = dup_load(obj, 'ventilation', 'ventilation_sch_') ventilation.schedule = schedule_object(longest_list(ventilation_sch_, i)) assign_load(obj, ventilation, 'ventilation') # assign the heating setpoint schedule if len(heating_setpt_sch_) != 0: - for i, obj in enumerate(mod_obj): + for i, obj in enumerate(edit_objs): setpoint = dup_load(obj, 'setpoint', 'heating_setpt_sch_') setpoint.heating_schedule = schedule_object(longest_list(heating_setpt_sch_, i)) assign_load(obj, setpoint, 'setpoint') # assign the cooling setpoint schedule if len(cooling_setpt_sch_) != 0: - for i, obj in enumerate(mod_obj): + for i, obj in enumerate(edit_objs): setpoint = dup_load(obj, 'setpoint', 'cooling_setpt_sch_') setpoint.cooling_schedule = schedule_object(longest_list(cooling_setpt_sch_, i)) assign_load(obj, setpoint, 'setpoint') diff --git a/honeybee_grasshopper_energy/src/HB Apply Setpoint Values.py b/honeybee_grasshopper_energy/src/HB Apply Setpoint Values.py index 650e7b09..4555615d 100644 --- a/honeybee_grasshopper_energy/src/HB Apply Setpoint Values.py +++ b/honeybee_grasshopper_energy/src/HB Apply Setpoint Values.py @@ -14,7 +14,9 @@ Args: _room_or_program: Honeybee Rooms or ProgramType objects to which the input setpoints should be assigned. This can also be the identifier of a - ProgramType to be looked up in the program type library. + ProgramType to be looked up in the program type library. This can + also be a Honeybee Model for which all Rooms will be assigned + the setpoints. cooling_setpt_: A numerical value for a single constant temperature for the cooling setpoint [C]. heating_setpt_: A numerical value for a single constant temperature for @@ -31,7 +33,7 @@ ghenv.Component.Name = "HB Apply Setpoint Values" ghenv.Component.NickName = 'ApplySetpointVals' -ghenv.Component.Message = '1.6.0' +ghenv.Component.Message = '1.6.1' ghenv.Component.Category = 'HB-Energy' ghenv.Component.SubCategory = '3 :: Loads' ghenv.Component.AdditionalHelpFromDocStrings = "2" @@ -39,6 +41,7 @@ import uuid try: + from honeybee.model import Model from honeybee.room import Room except ImportError as e: raise ImportError('\nFailed to import honeybee:\n\t{}'.format(e)) @@ -96,46 +99,56 @@ def duplicate_and_id_program(program): if all_required_inputs(ghenv.Component): # duplicate the initial objects - mod_obj = [] + mod_obj, edit_objs = [], [] for obj in _room_or_program: if isinstance(obj, Room): - mod_obj.append(obj.duplicate()) + new_obj = obj.duplicate() + mod_obj.append(new_obj) + edit_objs.append(new_obj) + elif isinstance(obj, Model): + new_obj = obj.duplicate() + mod_obj.append(new_obj) + edit_objs.extend(new_obj.rooms) elif isinstance(obj, ProgramType): - mod_obj.append(duplicate_and_id_program(obj)) + new_obj = duplicate_and_id_program(obj) + mod_obj.append(new_obj) + edit_objs.append(new_obj) elif isinstance(obj, str): try: program = building_program_type_by_identifier(obj) except ValueError: program = program_type_by_identifier(obj) - mod_obj.append(duplicate_and_id_program(program)) + new_obj = duplicate_and_id_program(obj) + mod_obj.append(new_obj) + edit_objs.append(new_obj) else: - raise TypeError('Expected Honeybee Room or ProgramType. ' + raise TypeError('Expected Honeybee Room, Model or ProgramType. ' 'Got {}.'.format(type(obj))) # assign the cooling_setpt_ if len(cooling_setpt_) != 0: - for i, obj in enumerate(mod_obj): + for i, obj in enumerate(edit_objs): setpoint = dup_setpoint(obj) setpoint.cooling_setpoint = longest_list(cooling_setpt_, i) assign_setpoint(obj, setpoint) # assign the heating_setpt_ if len(heating_setpt_) != 0: - for i, obj in enumerate(mod_obj): + for i, obj in enumerate(edit_objs): setpoint = dup_setpoint(obj) setpoint.heating_setpoint = longest_list(heating_setpt_, i) assign_setpoint(obj, setpoint) # assign the humid_setpt_ if len(humid_setpt_) != 0: - for i, obj in enumerate(mod_obj): + for i, obj in enumerate(edit_objs): setpoint = dup_setpoint(obj) setpoint.humidifying_setpoint = longest_list(humid_setpt_, i) assign_setpoint(obj, setpoint) # assign the dehumid_setpt_ if len(dehumid_setpt_) != 0: - for i, obj in enumerate(mod_obj): + for i, obj in enumerate(edit_objs): setpoint = dup_setpoint(obj) setpoint.dehumidifying_setpoint = longest_list(dehumid_setpt_, i) assign_setpoint(obj, setpoint) diff --git a/honeybee_grasshopper_energy/src/HB Apply Shade Construction.py b/honeybee_grasshopper_energy/src/HB Apply Shade Construction.py index bc0b0f83..e2d016ca 100644 --- a/honeybee_grasshopper_energy/src/HB Apply Shade Construction.py +++ b/honeybee_grasshopper_energy/src/HB Apply Shade Construction.py @@ -30,14 +30,14 @@ construction library. If an array of text or construction objects are input here, different constructions will be assigned based on cardinal direction, starting with north and moving clockwise. - + Returns: hb_objs: The input honeybee objects with their constructions edited. """ ghenv.Component.Name = "HB Apply Shade Construction" ghenv.Component.NickName = 'ApplyShadeConstr' -ghenv.Component.Message = '1.6.0' +ghenv.Component.Message = '1.6.1' ghenv.Component.Category = 'HB-Energy' ghenv.Component.SubCategory = '1 :: Constructions' ghenv.Component.AdditionalHelpFromDocStrings = '3' @@ -50,6 +50,7 @@ try: # import the core honeybee dependencies from honeybee.shade import Shade + from honeybee.model import Model from honeybee.room import Room from honeybee.face import Face from honeybee.aperture import Aperture @@ -84,6 +85,9 @@ elif isinstance(obj, (Aperture, Face, Room, Door)): for shd in obj.shades: shd.properties.energy.construction = _constr[0] + elif isinstance(obj, Model): + for shd in obj.orphaned_shades: + shd.properties.energy.construction = _constr[0] else: raise TypeError(error_msg.format(type(obj))) else: # assign constructions based on cardinal direction @@ -99,6 +103,9 @@ elif isinstance(obj, Room): for shd in obj.shades: shd.properties.energy.construction = _constr[0] + elif isinstance(obj, Model): + for shd in obj.orphaned_shades: + shd.properties.energy.construction = _constr[0] else: raise TypeError(error_msg.format(type(obj))) diff --git a/honeybee_grasshopper_energy/src/HB Apply Shade Schedule.py b/honeybee_grasshopper_energy/src/HB Apply Shade Schedule.py index 9fcaf7da..a336e87d 100644 --- a/honeybee_grasshopper_energy/src/HB Apply Shade Schedule.py +++ b/honeybee_grasshopper_energy/src/HB Apply Shade Schedule.py @@ -18,21 +18,21 @@ - Args: - _hb_objs: Honeybee Shades, Apertures, Door, Faces, or Rooms to which the + _hb_objs: Honeybee Shades, Apertures, Door, Faces, Rooms or a Model to which the input _trans_sch should be assigned. For the case of a Honeybee Aperture, - Door, Face or Room, the ShadeConstruction will be assigned to only the - child shades directly assigned to that object. So passing in a Room + Door, Face, Room, or Model, the ShadeConstruction will be assigned to only + the child shades directly assigned to that object. So passing in a Room will not change the schedule of shades assigned to Apertures - of the Room's Faces. If this is the desired outcome, then the Room - should be deconstructed into its child objects before using - this component. + of the Room's Faces. If changing these sub-children is the desired + outcome, then the Room should be deconstructed into its child objects + before using this component. _trans_sch: A Honeybee ScheduleRuleset or ScheduleFixedInterval to be applied to the input _hb_objs. This can also be text for a schedule to be looked up in the shade schedule library. If an array of text or schedule objects are input here, different schedules will be assigned based on cardinal direction, starting with north and moving clockwise. - + Returns: hb_objs: The input honeybee objects with their shade transmittance schedules edited. @@ -40,7 +40,7 @@ ghenv.Component.Name = "HB Apply Shade Schedule" ghenv.Component.NickName = 'ApplyShadeSch' -ghenv.Component.Message = '1.6.0' +ghenv.Component.Message = '1.6.1' ghenv.Component.Category = 'HB-Energy' ghenv.Component.SubCategory = '2 :: Schedules' ghenv.Component.AdditionalHelpFromDocStrings = '3' @@ -53,6 +53,7 @@ try: # import the core honeybee dependencies from honeybee.shade import Shade + from honeybee.model import Model from honeybee.room import Room from honeybee.face import Face from honeybee.aperture import Aperture @@ -87,6 +88,9 @@ elif isinstance(obj, (Aperture, Face, Room, Door)): for shd in obj.shades: shd.properties.energy.transmittance_schedule = _trans_sch[0] + elif isinstance(obj, Model): + for shd in obj.orphaned_shades: + shd.properties.energy.transmittance_schedule = _trans_sch[0] else: raise TypeError(error_msg.format(type(obj))) else: # assign schedules based on cardinal direction @@ -102,5 +106,8 @@ elif isinstance(obj, Room): for shd in obj.shades: shd.properties.energy.transmittance_schedule = _trans_sch[0] + elif isinstance(obj, Model): + for shd in obj.orphaned_shades: + shd.properties.energy.transmittance_schedule = _trans_sch[0] else: raise TypeError(error_msg.format(type(obj))) diff --git a/honeybee_grasshopper_energy/src/HB Apply Window Construction.py b/honeybee_grasshopper_energy/src/HB Apply Window Construction.py index 7d3f51dd..f36ae012 100644 --- a/honeybee_grasshopper_energy/src/HB Apply Window Construction.py +++ b/honeybee_grasshopper_energy/src/HB Apply Window Construction.py @@ -17,8 +17,8 @@ - Args: - _hb_objs: Honeybee Apertures, Faces, Doors or Rooms to which the input - _constr should be assigned. For the case of a Honeybee Room, the + _hb_objs: Honeybee Apertures, Faces, Doors, Rooms or a Model to which the input + _constr should be assigned. For the case of a Room or a Model, the construction will only be applied to the apertures in the the Room's outdoor walls. Note that, if you need to assign a construction to all the skylights, glass doors, etc. of a Room, the best practice @@ -36,7 +36,7 @@ ghenv.Component.Name = "HB Apply Window Construction" ghenv.Component.NickName = 'ApplyWindowConstr' -ghenv.Component.Message = '1.6.0' +ghenv.Component.Message = '1.6.1' ghenv.Component.Category = 'HB-Energy' ghenv.Component.SubCategory = '1 :: Constructions' ghenv.Component.AdditionalHelpFromDocStrings = '3' @@ -50,6 +50,7 @@ try: # import the core honeybee dependencies from honeybee.boundarycondition import Outdoors from honeybee.facetype import Wall + from honeybee.model import Model from honeybee.room import Room from honeybee.face import Face from honeybee.aperture import Aperture @@ -90,7 +91,7 @@ def is_exterior_wall(face): elif isinstance(obj, Face): for ap in obj.apertures: ap.properties.energy.construction = _constr[0] - elif isinstance(obj, Room): + elif isinstance(obj, (Room, Model)): for face in obj.faces: if is_exterior_wall(face): for ap in face.apertures: @@ -109,7 +110,7 @@ def is_exterior_wall(face): if orient_i is not None: for ap in obj.apertures: ap.properties.energy.construction = _constr[orient_i] - elif isinstance(obj, Room): + elif isinstance(obj, (Room, Model)): for face in obj.faces: if is_exterior_wall(face): orient_i = face_orient_index(face, angles) diff --git a/honeybee_grasshopper_energy/user_objects/HB Apply Abolute Load Values.ghuser b/honeybee_grasshopper_energy/user_objects/HB Apply Abolute Load Values.ghuser index 7c4ff07dc76f7c4c9abcc89166cabfc54f5ff849..5456ba91f3a6fe3a9a2db1bf237ba05bcd6db89f 100644 GIT binary patch literal 6389 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 DNP>&J literal 6206 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 cTFoJ)B-v9sr diff --git a/honeybee_grasshopper_energy/user_objects/HB Apply ConstructionSet.ghuser b/honeybee_grasshopper_energy/user_objects/HB Apply ConstructionSet.ghuser index 8210ae0b0e6916f7bcb30a359ff27300607ae466..50db28c6e4ce79905e9e480d2c27c82b0bdf7ec5 100644 GIT binary patch literal 4509 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 diff --git a/honeybee_grasshopper_energy/user_objects/HB Apply Daylight Control.ghuser b/honeybee_grasshopper_energy/user_objects/HB Apply Daylight Control.ghuser index 7242a8427d2a4358361fe2e85a3b7a5d97b3796f..8d5d873d459f949da7741fc821279048a70c46f7 100644 GIT binary patch literal 6421 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 diff --git a/honeybee_grasshopper_energy/user_objects/HB Apply Load Values.ghuser b/honeybee_grasshopper_energy/user_objects/HB Apply Load Values.ghuser index ed5c27f3d001aea7e926d7e0ce48fa85e7dfd7cd..5b382dd5cdb3b45b174ea3d8aebb2165d27baaef 100644 GIT binary patch literal 6438 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 A%>V!Z literal 6343 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 diff --git a/honeybee_grasshopper_energy/user_objects/HB Apply ProgramType.ghuser b/honeybee_grasshopper_energy/user_objects/HB Apply ProgramType.ghuser index 5faff5ccfcdba8771fdc27aeabffd1b46a9f2f0e..8ddd06bd0770626bdc84402aeace865b02459868 100644 GIT binary patch literal 4426 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 literal 6937 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 diff --git a/honeybee_grasshopper_energy/user_objects/HB Apply Setpoint Values.ghuser b/honeybee_grasshopper_energy/user_objects/HB Apply Setpoint Values.ghuser index eeb93b1d7648471f2c45171af78ceb504a1acae7..41a5b338eaf9cd773ab02bfdfd3cf9f9e4337808 100644 GIT binary patch literal 4934 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≤R1*hG@;rtZB;IWN0iUEDo1T14NVh z4GeZF#C%?u-~v;}4A8WGbECjuivQ^o+)t6QSJlH-Mk^~Ed`E0mr1Rr5qvUaSB^U$M&60%9?$7neE5I`(D%0e@2@I+5oT#=W-TZP4ErD2CzS{Q diff --git a/honeybee_grasshopper_energy/user_objects/HB Apply Shade Construction.ghuser b/honeybee_grasshopper_energy/user_objects/HB Apply Shade Construction.ghuser index f614a45cf0ea8de0f80a71211a9af999d3a25ae5..859f1217bca6d45f253ed7bde65124e02e8152de 100644 GIT binary patch literal 4635 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 F{{vyIVH^Me literal 5656 zcmV+z7U$`Gcm-5c-`6%BLrF-3gS2#sv~+jKh{P}qFvKv-3@D{E2%`u{cXtUQND6{< zNH@~0bi<3k-~0c*Z++`s?^$c#v-Ua9eeQGizU%CJF2EE8Me5r+K_Tedy9U7ew-G3T zQBX~lzeB`#Zj~vaqSixJom|2e(M#2>*F?%-G}OTj>Ghv`h&7Z1RN+vhgBOVk6a_)T z5NMbi{6Dj+IEn~_ix&_KL?gj)lq(F42E!pxAPV9LwexU+0?}?j4L3N{%N7a+8asmR zpg^~OB%uU>iY{m<5)MYgJfSXL{6H8Q2m!;%0ALgf<^ca+8Nn_tKsS3J+7SwbIKo`) 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 diff --git a/honeybee_grasshopper_energy/user_objects/HB Apply Window Construction.ghuser b/honeybee_grasshopper_energy/user_objects/HB Apply Window Construction.ghuser index 78b8b6dfe87755024dae9ca92c28be3c386e6f44..e03994d01e30d5db109ee33e3d98455bdb4e1ac0 100644 GIT binary patch literal 5226 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 literal 5195 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 F{U7fDDu@68