From 4bf7a95201a361ed2f3cdaebe9049d4aa7dc6bbc Mon Sep 17 00:00:00 2001 From: Chris Mackey Date: Fri, 9 Aug 2024 14:56:49 -0700 Subject: [PATCH] fix(create): Expose an option to set the name when resetting ID --- .../icon/HB Set Identifier.png | Bin 812 -> 811 bytes .../json/HB_Set_Identifier.json | 11 +++++++++-- .../src/HB Set Identifier.py | 6 ++++-- .../user_objects/HB Set Identifier.ghuser | Bin 3905 -> 4032 bytes 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/honeybee_grasshopper_core/icon/HB Set Identifier.png b/honeybee_grasshopper_core/icon/HB Set Identifier.png index f0243db34dbdfe60510d0d747cdb8c994125888c..10605a60e5353fc2780273a058b9453c084805f3 100644 GIT binary patch delta 737 zcmV<70v`RW2CD{;R)4@rL_t(YOYKzKOB7)g-(IxZ#7$lIGPApCv#xEKH}XOZLepa&5oe2@^o`Nnl;cHGsSU+4QK3W?l@ zedr+%{FvdK@0{P9-}%mXR_#Br=}>4rSGA+5NW7PY>xu>s$A5ddqV;?a1iX@fDVl0U z>Va4ToM@tGAliThs%HdZHIiU9k_hXnX3a<9&;^1uVCyTu)-8wbk3bLCxv^!agkBwU zb5#u~HI5m-Kg&aP(LV|3pwYGinXw1RJbH}Gy@#-$Jca%ICFZ*KgEut6e)aeG*ergIl*$llZQlJ9?AyJhIqidH;p6@;3N)(8Jm6XH0bPZU{(OC_%Yke@b?}THT z$bR?)w!u#X+6n{|6kr>}Fj~7LLHgK9FfZvW{G_*e<$pST@{*KANIJX5OOoEFlMcAH z1u6Q#!UQx>qqWl|=sOEm=6C(xDwso8-D1fWNg#ab(*yD>Z)!)1e1!=r6!6A2nUp@& z4_4}fu55A%1_q^{CmO-ZgP8S{z#1KMef5n6IuHoe$_{u-hfFdDFVpZ;mq18#VMzMt zcJGx1=YNm%0J$8^;G^tx#Tl?lg%Z1wpP7M^$;d*&96JMR_%`%fTBeNk)BD?UpT9`` z_3CJWTSV>gt!=RG+?9i~ZVbb^IYQ4{nA@{Yb|EB7_n$|4;3Cpz&LMT+kSxsTivE2M z$~D`hph2Jjbg`YZrS8)O7lRiwDyxQ0v(V{E3R-Yq2%I)tBmBHr*1C<^L7(0|}V5vuf|NXgl=O?Nljq|JWLIV(yL zn}SnK?7x&NpY)vts{=O$UQ(xuPCUN8)`fR9`fBD1Y9^!)ovMK)@>rSXfo8 zNCOaSgcD5^4MZC;PxbUbtX2}FB8iZusMcI04o#q@7Hn+=*qWu#{1IrOdN;NNmC&kV zZmyytt;8|o_h)&qKKdsC9n{;mAv1mtnFkM%xpN=(qsOqHKF4g&Uhu|d*iW9pe(@6X zuiha0`Yo){F@NyH7O;wtBw3b#`D&2fe-L?%!LdvTb8H*=>1h~8`@uK1z|nQ-U!0u8 z;>3h}&reN(CtILZMGABvAS9|%pm*<($#Z?jT!{iPu#$3^7p?#cIXbH%wb}=L>vlM% ziR`-%VC(!upe{o|K>@Zt1ih_W5*SC0gLz43;U~S#OMh4ClNY5dLekVKFG+frPCDS~ zCZy>D3lq>l^|mgTp#L;jncww$t6&aac8eujC4ul6CkN$O-rRvS`3e(Mgu$EIWs-4X z0IbvpExf@c7#xy*o@fFquR+RF0&8sC^))mV=s+M?Cp+M+oifQBx=6!QTmm7{xnb#_ z-ML#9oPRsi3*>S%gZHx2WoN)D!<5*A{LBoTOhy(G=GYlnBR8Sd(K2PMpWfe=`}j%f zuT@72+#+g^Z*GTm>$V)6b!`OJ^-+4>!0fI)vI`-ZF>n^f;CUFQ&LF+-fGo`DivE2M z%2nH>piZCwG_jqurS8)O7lRiwDyxP@v(V^D3R`er5S%t#tqV{GzI*l3>ODp?N$%0N@M} UK~!UW`v3p{07*qoM6N<$f+8qif&c&j diff --git a/honeybee_grasshopper_core/json/HB_Set_Identifier.json b/honeybee_grasshopper_core/json/HB_Set_Identifier.json index 089621e..8d853f5 100644 --- a/honeybee_grasshopper_core/json/HB_Set_Identifier.json +++ b/honeybee_grasshopper_core/json/HB_Set_Identifier.json @@ -1,5 +1,5 @@ { - "version": "1.8.0", + "version": "1.8.1", "nickname": "ID", "outputs": [ [ @@ -26,10 +26,17 @@ "description": "Text for the identifier of the object. Note that, if this identifier\ndoes not conform to acceptable values of the object type (eg. no\nspaces for a radiance modifier id), then an exception will be thrown.", "type": "string", "default": null + }, + { + "access": "item", + "name": "name_", + "description": "An optional text string to set the name of the object to something\nother than the identifier.", + "type": "string", + "default": null } ], "subcategory": "0 :: Create", - "code": "\ntry: # import the ladybug_{{cad}} dependencies\n from ladybug_{{cad}}.{{plugin}} import all_required_inputs\nexcept ImportError as e:\n raise ImportError('\\nFailed to import ladybug_{{cad}}:\\n\\t{}'.format(e))\n\n\nif all_required_inputs(ghenv.Component):\n hb_obj = _hb_obj.duplicate()\n hb_obj.identifier = _id\n hb_obj.display_name = None\n", + "code": "\ntry: # import the ladybug_{{cad}} dependencies\n from ladybug_{{cad}}.{{plugin}} import all_required_inputs\nexcept ImportError as e:\n raise ImportError('\\nFailed to import ladybug_{{cad}}:\\n\\t{}'.format(e))\n\n\nif all_required_inputs(ghenv.Component):\n hb_obj = _hb_obj.duplicate()\n hb_obj.identifier = _id\n hb_obj.display_name = None if name_ is None else name_\n", "category": "Honeybee", "name": "HB Set Identifier", "description": "THIS COMPONENT IS INTENDED FOR ADVANCED USERS WHO UNDERSTAND THAT IDENTIFERS\nSHOULD BE UNIQUE AND THAT, TO SET THEM OTHERWISE CAN HAVE UNINTENDED CONSEQUENCES.\n_\nChange the identifier of any Honeybee object.\n_\nNote that this component only changes the identifer of the input _hb_obj and\nnone of the identifiers of the child objects.\n-" diff --git a/honeybee_grasshopper_core/src/HB Set Identifier.py b/honeybee_grasshopper_core/src/HB Set Identifier.py index 993e2cb..9d3d909 100644 --- a/honeybee_grasshopper_core/src/HB Set Identifier.py +++ b/honeybee_grasshopper_core/src/HB Set Identifier.py @@ -24,6 +24,8 @@ _id: Text for the identifier of the object. Note that, if this identifier does not conform to acceptable values of the object type (eg. no spaces for a radiance modifier id), then an exception will be thrown. + name_: An optional text string to set the name of the object to something + other than the identifier. Returns: report: ... @@ -32,7 +34,7 @@ ghenv.Component.Name = 'HB Set Identifier' ghenv.Component.NickName = 'ID' -ghenv.Component.Message = '1.8.0' +ghenv.Component.Message = '1.8.1' ghenv.Component.Category = 'Honeybee' ghenv.Component.SubCategory = '0 :: Create' ghenv.Component.AdditionalHelpFromDocStrings = '0' @@ -46,4 +48,4 @@ if all_required_inputs(ghenv.Component): hb_obj = _hb_obj.duplicate() hb_obj.identifier = _id - hb_obj.display_name = None + hb_obj.display_name = None if name_ is None else name_ diff --git a/honeybee_grasshopper_core/user_objects/HB Set Identifier.ghuser b/honeybee_grasshopper_core/user_objects/HB Set Identifier.ghuser index 096164c999cb3565a9c05d230fb01bd54b648091..8ded44aab206b9cea49403ed44db1d4d2b4011e8 100644 GIT binary patch literal 4032 zcmV;x4?pl-R|im2Teqf!-Vy0aK#HJ((v&VCfrOIKn?QgNNGJ&Mzev@ z0Vsd0F9D0k{W%rsJ~1;pF} zXahw6t*D3Q7M8kjFwhdJOO=4BLYO|4<6yObBCL$TKoErL1v9gP0RMPh23jJ377$A+ zfS3RgRBLVnvw#5gbm2g#uJu3ufAZ=f;1&?7n3~r@o`V(1!K#OG!Fiy81PmI8bwlF_ zSa&SiABcAcy5K^Af4&ch|EE^}D&Tm+Z+{m8)nEgFD7=p^)eT1g;&I-gK-53+0{%PT zzw!PdaK3>AAQIz>qz0sBaN}UbQMLa${?7{p{Gm`7thd|$rVpUzzrqX&@x=!O`lEl> znf{+^qoo1BQ2!R5j|wkQ*}JB20}fW<-}k@)gM!VePr=`tnUQMegS8HR%L2>|Kr~fD zq7*6sc<7qwQm;If?WYR^6|?w4?E+|MI6HrD+HU+aHyRqcHW*mf5^A(&Ic>z}!Z+ts zKlPW1*)-Fny+=n*tCR)G9^EX{g%CL#QrIM>gIU-CEd=kn(cheE8^bZRK37%iLECC{Ox zoVf2vj9lG!nx5>2aREpfk+Qj-kd-J~`h3h23~(xv;e`jlRVBk&HG}#43->{Tg<*zh z73c4l+CE)LSWmslHQrQ%eirL=E+D{)Lslh4s8y$5FOaOm@~xQMK>w(QsYmm6@<2;M zb&+P=$xo@}xBD^ImD`DXbbA%!wjtY`lZ_iL_miV#8ltRXrFxS90|MZcd6&gN#%@LN zff}F1^73@;S*CYQLMblLUn7f>*nv?7;a^}VKwBlx2tR-GK#)TVNUkv#Y zqp~tPNdykt0kR!OomcqPhK*QMZV&MQ(9n(mOtAv^_?$&Lui7_D>K;wNt}0M2|150` zT~ZJKk&y|3syBBTWz3d8;C$1-AbZr-0Z=wAc|9uiO@qyPIrwB&?xCK|XV+eS7%+@7 zO8?_B-qRo{ERIEvZ?jAFQKt47m-R|amA5|&BV$>SjBtBj%){NxHsNyt;k)-4)VZ0* z`Zz<35{wm@6h=2Kb8bQjF3_W|K^s{NUsHEznnVZZOI8W*g{lqXc$?FU9z{Lq?E!U& zYS4QfsP5R?KTX~pJ)ZV2YK5Ncu3(~Wf!DSweX7@IvSR9R?457bKp$>BoUTIziAx&o z7a821ml*LF5)YhDyFBnM=`@_HPi4BaShtvlP*YG}wm!-r5F?-@R}l}d8>Set`XZV0 zRUH5voAW(d;l>0Ko-^LK_5P-TsU|-ZR)WvgFT1ve;ir5rpphfk4ApdLS(A)Uaqd9`%&UZUV;i_j$N>?uVwb8wF%aBaIrCKt6C3NfeJ2ZMOUY+P;itc;Hub<5+6m^*{Rc}mCggZ{| zO>ydy*?pjd(p*~-9Wpia(K7e@Q3t52RHmb~Sz*a&%1wElu(4`U{Y{Z#h!Bg4*{$2d zKtp|TZeF`0r2gcrs4{N#O^1UeTcLL2@-1eGUIl;};~|AH8NB-5o8F!K zKIv-FMAnI5*5v2J7th1f%upO*%vK+d7O~IuWILJccQmL)gS?QN_tJEa{ zze=#6lqVJXY4wOi6slyln`t-tTmRROhvr0{Es^xb8=CPK6R+b*MDIf2vR{2NWGosW zT}q>*KqM+GNfcO@4-O1`#5(dtA?!`T zvY|{a)(?1{`BH&=9}XnX#$aK5m2A(7Qm-6c@Xg6Hy(?7za`dx1AGr@A&*Y!$xara$ z&h)b~9~+pPo?d%_O+}BK`qGOqQQ-cN{kyujZz|ktXOzTs2~)=|Sy<^J?%YEIyAp``2&quswV((y0hWB^QJiDxI@C!w`5>jX29YYq@K{?QYs4x4 zUOq85N=z;iqIPjXR5DRuEj=OSTHL0l5bqFcSiTm>Pz-QoGvhL2i(*eeI#lWM;2l5G z>)TOgpnfyMO7e%>Cpk~fS0#Fi>Zg;t0X>S0i*yQ^l$KG5euo{1%)TVipg%YQSqgb2 zNbAp#1p?7@?n3#w*LD{ojcxP_t`9qK8*S~Si?TYaggGTPN;A;d!M4&;I=JtP=J)hU z#fL=l(@0ft-xRS+xuDxmG{Y>ST$d@gSH)!^(N9>G6wUx>y!Z{zJ7iVA4AECs*ySw+ zX~lmFMUrypFg(odcSA&XdHk(hodII~3Oq~zGgV-Vc9%|80Pmty--t5 zqfTa@ewjpZbZ_;qa6x~@3Y1E>L=3GEgk3NEq6K^B3)wnnc~d#oUFr7kmOrFr>*}EM zwStO3WxASOfTNU1{#&aMa8F*OplF+B>;}4~bis-K=|a|yc6xR(fsPh*ZH#x&?>x^O zj~iqlBy*sRkmc9&;@Lw;dbK6!Mm{>-{qcS`b6wqw19RaZjd)*K?;AL@-dUuSg6+dH znJm5j$r~~W;IdKB*zOnIJt^Q)tPN*lr);|PQ;%rc2_((LYQ8N;ID5j=w0LeAH(S{@ zvN+ePjCS~u+`;3I+>@`eXa``PH8;f&*Iarp)f%E9oJ<>1rxBw^T;BFEgQgtOw(>X4 zJ26NuOmK$=r&Fa|Q0?|L9&y1bri4aWm@l!e`r6kMK6lF6f+hFqVE@`dQL zCo}YwLIgt3cyiUVN7uO}jDedjkDjjNTI8sP_naK&RTVC4Ibf#UwRU)K9sd;AUmegU z=NE#dI7|#F5lhc^9Y={;+h2-s1z8cC=%6Cl;3uNy>+LF37o}eZi3&YAS!?KGNf=+d zwe#t(YmFS?u9U@qfCu-4txZHDb}Cuk(N9;jVr!(XkFVL@X=z!FiEENad?Br_w={bp zBJ4D}g+gz2foXb5wKQP&gzMBb z+~b4kuiV2kQxDEl!n*qLPI*mOM0?S@owx=*#~#BsRo^%9IMLRNfmZ%2F&d>J?+%t` zuTcjG;jkT)_(o0grGBKF#$YJuy|&s*fp+8RsM3rMZaD0@t7)*k2S zS07J_zFQOt+>% z%NOI9f2ZWPG;Q{sd5^LFREo+g6x~01tzZ|VQNfF!X^qitI!e`8E^UOb7#^Bl_CEEW zZk}lL+F4KFQr#zoLcBt;N7XuFB+pNYEMBwII-Gci&*3}dS3`C>#39FQf62N%+9;&3 z<`~h(t6H1VHc8oT4i2vk?Q6&su{jGEL2B>|pH?&u4~?2M;R|g~cRM~_pGg>hJvpr$ zcdICjcv8Nx_W?5`sB<)V$FMQD@QsPcCOfvJY^8Ha!5n4~(YWhTSo$No>{W8rmA+?q zMFmG(A-Rq)S*t^6QLX)3VW2^Zzf)s}ZD0QFDCv&H6s7R>hnGmT{jpc$vC@b!(#CoF zo#8+eber$}v+DiJ8BM|E7t7FDa+pamS?R&E);9*z9~jxCp?fZFB9%^J_XdmhHSHVL zq9_9I1Wz7mPRN-V)017jqwNFw7A-}t7!q@1=%hx=Fn6WX9o0uX685I1nDkYDBpN;$ zD=l-IxKv~$*k-2S~EKAy3j!G!WHTJ%NtUgW+Sc9KHQm~eCgAz`J#40 zA5=y2x2rpt8rK`2k)_bUN{=rJ3bsF0WXX+>C-urHv)Aa-yxDGNGvah={T#Hh#bAI# zowpN7m-)#Sx`1Ak^<=wuD`!IZSqjo2M0NZ4_>7Z~+il7ydmhf%zI^2sFQ*wf{%e`J zsEqPkaI)-;RzrcP4X+|E#6i@4tQhh7fzy7J_H#AN$g28dRPbSKgy=@Kj0V?V*RH6M z{B{>?Ea#bvDoY|c0_A*VnUR0hA|HmUmy0>aUy6)dS`y4G0GaMAydlU@?mn|O;fWZP z6C*VZf3~eXc<+^>DW%f7eGWUzsEn6T7GqP!m&iXp-0XE9tg3t}=r0+D^j|eP@LRXj z`H9;tnJGV795~Fj-Wy{$za4HZu5ndpj;H$((YImsy#RW%bttPNIZt}^q`rfEx^wSX zXIiOdeQrL<{kYMO!QPeKhPPG02KVcle0ff5+TNq)906O-w>eokuZ*f5{UVHuu>I{n zj#T@+-{%x^5Fs03q7dd)*_hX%0VT)?a>JdGp}C=xm)@4nlCgZ;ejFNHWcHHT1K`=0 zi5=r|H@4{`dDTw43lEOr!*?|JOD)#1**3SebK`mOHQiE}HuTX}WPd$s5KTVCnernz m8V4OB6@4j``7PHnzEc)9i$K@^|9j7N6{xNb)bmGE`TqeySLxdT literal 3905 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 P$lm}I3g~(h==}cyzk$BV