<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Library Part Does Not maintain values in Libraries &amp; objects</title>
    <link>https://community.graphisoft.com/t5/Libraries-objects/Library-Part-Does-Not-maintain-values/m-p/24578#M35596</link>
    <description>Barry&lt;BR /&gt;
&lt;BR /&gt;
I don't know whether this would help, but I often see in scripts from third parties, all parameters set to equal themselves i.e. PARAMETERS b=b;zzyzx=zzyzx, and so on... as the first statement in the PARAMETERS Script. I am not sure why script authors use this, but I suppose it must serve some useful purpose and may assist you.&lt;BR /&gt;
&lt;BR /&gt;
In the Parameter script you can ensure that Parameters only change when a relevant Parameter changes by including a GLOB_MODPAR_NAME step.&lt;BR /&gt;
&lt;BR /&gt;
Thus for you: IF GLOB_MODPAR_NAME='joist_size' THEN ... ENDIF&lt;BR /&gt;
If the user changes the 'joist_size' parameter then the steps between IF and ENDIF statements will be evaluated. If that is not the parameter changed they would be unaffected.&lt;BR /&gt;
&lt;BR /&gt;
I have found on occasion that the GLOB_MODPAR_NAME script step can 'stick' and appear not to respond to changes in the relevant Parameter, but have found that this problem can be overcome by adding a parameter called, say, modpar. At the start of the Parameters script add a statement: PARAMETERS modpar=GLOB_MODPAR_NAME (this will also work in the Master script without the PARAMETERS command)&lt;BR /&gt;
&lt;BR /&gt;
This allows you to use the value of modpar in any script and saves typing GLOB_MODPAR_NAME each time you need the value of the last-modified parameter.&lt;BR /&gt;
&lt;BR /&gt;
PS I think you may be able to accelerate your script by grouping some of the steps by interrogation of the 'string' value of your parameter joist_size and/or by declaring a VALUES statement to limit the parameters (e.g. a and b) The values of a and b can be limited as in:&lt;BR /&gt;
&lt;BR /&gt;
IF STRSUB(joist_size,1,1)='2' OR STRSUB(joist_size,1,2)='PT' THEN&lt;BR /&gt;
VALUES 'a' RANGE(val1,16'-0"]&lt;BR /&gt;
VALUES 'b' RANGE(val2,1.5"]&lt;BR /&gt;
PARAMETERS gs_cont_pen=1&lt;BR /&gt;
ENDIF&lt;BR /&gt;
where val1 and val2 are numeric lower limits of the range for the parameters. (Note the use of differing bracket styles to control the Range)&lt;BR /&gt;
&lt;BR /&gt;
This avoids repeating the evaluation of these parameters and gives the user guidance as to what the acceptable limits are!! I am not saying that the script snippet above works for all of your preferred settings, but it might give you an idea.&lt;BR /&gt;
&lt;BR /&gt;
Mike</description>
    <pubDate>Mon, 01 Aug 2005 18:39:12 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2005-08-01T18:39:12Z</dc:date>
    <item>
      <title>Library Part Does Not maintain values</title>
      <link>https://community.graphisoft.com/t5/Libraries-objects/Library-Part-Does-Not-maintain-values/m-p/24575#M35593</link>
      <description>&lt;DIV class="actalk-migrated-content"&gt;&lt;T&gt;I created a supre part for 2x framing. There are approximately 18 different values for a parameter I set up. The part respondds when the values are chosen but when ever I open a plan again the parts are not the size I left them as. I have tried placing the script commands in the Paramter script and the Master Script I have used the "LET" command and "PARAMETERS" together and separately it still doesn't remember the info. Any ideas would be greatly appreciated. Thanks. The scipt is below:&lt;BR /&gt;
&lt;BR /&gt;
IF joist_size='2x4' THEN &lt;BR /&gt;
   parameters b=1.5",zzyzx=3.5",F=1,gs_back_pen=91,gs_cont_pen=3&lt;BR /&gt;
IF a&amp;gt;16'-0" THEN parameters a=16'-0"&lt;BR /&gt;
IF b&amp;gt;1.5" THEN parameters b=1.5"&lt;BR /&gt;
ENDIF &lt;BR /&gt;
IF joist_size='2x6' THEN &lt;BR /&gt;
   parameters b=1.5",zzyzx=5.5",F=1,gs_back_pen=91,gs_cont_pen=3&lt;BR /&gt;
IF a&amp;gt;16'-0" THEN parameters a=16'-0"&lt;BR /&gt;
IF b&amp;gt;1.5" THEN parameters b=1.5"&lt;BR /&gt;
ENDIF&lt;BR /&gt;
IF joist_size='2x8' THEN &lt;BR /&gt;
   parameters b=1.5",zzyzx=7.25",F=1,gs_back_pen=91,gs_cont_pen=3&lt;BR /&gt;
IF a&amp;gt;16'-0" THEN parameters a=16'-0"&lt;BR /&gt;
IF b&amp;gt;1.5" THEN parameters b=1.5"&lt;BR /&gt;
ENDIF&lt;BR /&gt;
IF joist_size='PT 2x4' THEN &lt;BR /&gt;
   parameters b=1.5",zzyzx=3.5",F=4,gs_back_pen=0,gs_cont_pen=3&lt;BR /&gt;
IF a&amp;gt;16'-0" THEN parameters a=16'-0"&lt;BR /&gt;
IF b&amp;gt;1.5" THEN parameters b=1.5"&lt;BR /&gt;
ENDIF &lt;BR /&gt;
IF joist_size='PT 2x6' THEN &lt;BR /&gt;
   parameters b=1.5",zzyzx=5.5",F=4,gs_back_pen=0,gs_cont_pen=3&lt;BR /&gt;
IF a&amp;gt;16'-0" THEN parameters a=16'-0"&lt;BR /&gt;
IF b&amp;gt;1.5" THEN parameters b=1.5"&lt;BR /&gt;
ENDIF&lt;BR /&gt;
IF joist_size='PT 2x8' THEN &lt;BR /&gt;
   parameters b=1.5",zzyzx=7.25",gs_back_pen=0,gs_cont_pen=3&lt;BR /&gt;
IF a&amp;gt;16'-0" THEN parameters a=16'-0"&lt;BR /&gt;
IF b&amp;gt;1.5" THEN parameters b=1.5"&lt;BR /&gt;
ENDIF&lt;BR /&gt;
IF joist_size='2x10' THEN &lt;BR /&gt;
   parameters b=1.5",zzyzx=9.25",F=1,gs_back_pen=91,gs_cont_pen=3&lt;BR /&gt;
IF a&amp;gt;16'-0" THEN parameters a=16'-0"&lt;BR /&gt;
IF b&amp;gt;1.5" THEN parameters b=1.5"&lt;BR /&gt;
ENDIF&lt;BR /&gt;
IF joist_size='2x12' THEN &lt;BR /&gt;
   parameters b=1.5",zzyzx=11.25",F=1,gs_back_pen=91,gs_cont_pen=3&lt;BR /&gt;
IF a&amp;gt;16'-0" THEN parameters a=16'-0"&lt;BR /&gt;
IF b&amp;gt;1.5" THEN parameters b=1.5"&lt;BR /&gt;
ENDIF&lt;BR /&gt;
IF joist_size='2x4 Blocking' THEN &lt;BR /&gt;
   parameters b=3.5",zzyzx=1.5",F=4,gs_back_pen=0,gs_cont_pen=1&lt;BR /&gt;
IF b&amp;gt;3.5" THEN parameters b=3.5"&lt;BR /&gt;
ENDIF&lt;BR /&gt;
IF joist_size='2x6 Blocking' THEN &lt;BR /&gt;
   parameters b=5.5",zzyzx=1.5",F=4,gs_back_pen=0,gs_cont_pen=1&lt;BR /&gt;
IF b&amp;gt;5.5" THEN parameters b=5.5"&lt;BR /&gt;
ENDIF&lt;BR /&gt;
IF joist_size='2x8 Blocking' THEN &lt;BR /&gt;
   parameters b=1.5",zzyzx=7.25",F=1,gs_back_pen=91,gs_cont_pen=1&lt;BR /&gt;
IF a&amp;gt;16'-0" THEN parameters a=16'-0"&lt;BR /&gt;
IF b&amp;gt;1.5" THEN parameters b=1.5"&lt;BR /&gt;
ENDIF&lt;BR /&gt;
IF joist_size='2x10 Blocking' THEN &lt;BR /&gt;
   parameters b=1.5",zzyzx=9.25",F=1,gs_back_pen=91,gs_cont_pen=1&lt;BR /&gt;
IF a&amp;gt;16'-0" THEN parameters a=16'-0"&lt;BR /&gt;
IF b&amp;gt;1.5" THEN parameters b=1.5"&lt;BR /&gt;
ENDIF&lt;BR /&gt;
IF joist_size='2x10 Rim Joist' THEN &lt;BR /&gt;
   parameters b=1.5",zzyzx=9.25",F=1,gs_back_pen=91,gs_cont_pen=1&lt;BR /&gt;
IF b&amp;gt;1.5" THEN parameters b=1.5"&lt;BR /&gt;
ENDIF&lt;BR /&gt;
IF joist_size='2x10 Girder' THEN &lt;BR /&gt;
   parameters b=1.5",zzyzx=9.25",F=1,gs_back_pen=91,gs_cont_pen=1&lt;BR /&gt;
IF b&amp;gt;1.5" THEN parameters b=1.5"&lt;BR /&gt;
ENDIF&lt;BR /&gt;
IF joist_size='PT 2x6 Sill Plate' THEN &lt;BR /&gt;
   parameters b=5.5",zzyzx=1.5",F=1,gs_back_pen=0,gs_cont_pen=9&lt;BR /&gt;
IF b&amp;gt;5.5" THEN parameters b=5.5"&lt;BR /&gt;
ENDIF&lt;BR /&gt;
IF joist_size='PT 2x8 Rim Joist' THEN &lt;BR /&gt;
   parameters b=1.5",zzyzx=7.25",F=4,gs_back_pen=0,gs_cont_pen=3&lt;BR /&gt;
IF b&amp;gt;1.5" THEN parameters b=1.5"&lt;BR /&gt;
ENDIF&lt;BR /&gt;
IF joist_size='PT 2x8 Nailer' THEN &lt;BR /&gt;
   parameters b=1.5",zzyzx=7.25",F=4,gs_back_pen=0,gs_cont_pen=3&lt;BR /&gt;
IF b&amp;gt;1.5" THEN parameters b=1.5"&lt;BR /&gt;
ENDIF&lt;BR /&gt;
IF joist_size='2x8 Plate' THEN &lt;BR /&gt;
   parameters b=7.25",zzyzx=1.5",F=4,gs_back_pen=0,gs_cont_pen=3&lt;BR /&gt;
IF b&amp;gt;7.25" THEN parameters b=7.25"&lt;BR /&gt;
ENDIF&lt;/T&gt;&lt;/DIV&gt;</description>
      <pubDate>Mon, 01 Aug 2005 17:50:12 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Libraries-objects/Library-Part-Does-Not-maintain-values/m-p/24575#M35593</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2005-08-01T17:50:12Z</dc:date>
    </item>
    <item>
      <title>Re: Library Part Does Not maintain values</title>
      <link>https://community.graphisoft.com/t5/Libraries-objects/Library-Part-Does-Not-maintain-values/m-p/24576#M35594</link>
      <description>&lt;BLOCKQUOTE&gt;Barry wrote:&lt;BR /&gt;I created a supre part for 2x framing. There are approximately 18 different values for a parameter I set up. The part respondds when the values are chosen but when ever I open a plan again the parts are not the size I left them as. I have tried placing the script commands in the Paramter script and the Master Script I have used the "LET" command and "PARAMETERS" together and separately it still doesn't remember the info. Any ideas would be greatly appreciated. Thanks. The scipt is below:
&lt;/BLOCKQUOTE&gt;

Which parameters are changing? And what are their values set to both before and after the change?</description>
      <pubDate>Mon, 01 Aug 2005 18:29:31 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Libraries-objects/Library-Part-Does-Not-maintain-values/m-p/24576#M35594</guid>
      <dc:creator>TomWaltz</dc:creator>
      <dc:date>2005-08-01T18:29:31Z</dc:date>
    </item>
    <item>
      <title>Re: Library Part Does Not maintain values</title>
      <link>https://community.graphisoft.com/t5/Libraries-objects/Library-Part-Does-Not-maintain-values/m-p/24577#M35595</link>
      <description>Just the sizes width and height. Thanks.&lt;BR /&gt;
&lt;BR /&gt;
Barry Halloran</description>
      <pubDate>Mon, 01 Aug 2005 18:31:23 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Libraries-objects/Library-Part-Does-Not-maintain-values/m-p/24577#M35595</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2005-08-01T18:31:23Z</dc:date>
    </item>
    <item>
      <title>Re: Library Part Does Not maintain values</title>
      <link>https://community.graphisoft.com/t5/Libraries-objects/Library-Part-Does-Not-maintain-values/m-p/24578#M35596</link>
      <description>Barry&lt;BR /&gt;
&lt;BR /&gt;
I don't know whether this would help, but I often see in scripts from third parties, all parameters set to equal themselves i.e. PARAMETERS b=b;zzyzx=zzyzx, and so on... as the first statement in the PARAMETERS Script. I am not sure why script authors use this, but I suppose it must serve some useful purpose and may assist you.&lt;BR /&gt;
&lt;BR /&gt;
In the Parameter script you can ensure that Parameters only change when a relevant Parameter changes by including a GLOB_MODPAR_NAME step.&lt;BR /&gt;
&lt;BR /&gt;
Thus for you: IF GLOB_MODPAR_NAME='joist_size' THEN ... ENDIF&lt;BR /&gt;
If the user changes the 'joist_size' parameter then the steps between IF and ENDIF statements will be evaluated. If that is not the parameter changed they would be unaffected.&lt;BR /&gt;
&lt;BR /&gt;
I have found on occasion that the GLOB_MODPAR_NAME script step can 'stick' and appear not to respond to changes in the relevant Parameter, but have found that this problem can be overcome by adding a parameter called, say, modpar. At the start of the Parameters script add a statement: PARAMETERS modpar=GLOB_MODPAR_NAME (this will also work in the Master script without the PARAMETERS command)&lt;BR /&gt;
&lt;BR /&gt;
This allows you to use the value of modpar in any script and saves typing GLOB_MODPAR_NAME each time you need the value of the last-modified parameter.&lt;BR /&gt;
&lt;BR /&gt;
PS I think you may be able to accelerate your script by grouping some of the steps by interrogation of the 'string' value of your parameter joist_size and/or by declaring a VALUES statement to limit the parameters (e.g. a and b) The values of a and b can be limited as in:&lt;BR /&gt;
&lt;BR /&gt;
IF STRSUB(joist_size,1,1)='2' OR STRSUB(joist_size,1,2)='PT' THEN&lt;BR /&gt;
VALUES 'a' RANGE(val1,16'-0"]&lt;BR /&gt;
VALUES 'b' RANGE(val2,1.5"]&lt;BR /&gt;
PARAMETERS gs_cont_pen=1&lt;BR /&gt;
ENDIF&lt;BR /&gt;
where val1 and val2 are numeric lower limits of the range for the parameters. (Note the use of differing bracket styles to control the Range)&lt;BR /&gt;
&lt;BR /&gt;
This avoids repeating the evaluation of these parameters and gives the user guidance as to what the acceptable limits are!! I am not saying that the script snippet above works for all of your preferred settings, but it might give you an idea.&lt;BR /&gt;
&lt;BR /&gt;
Mike</description>
      <pubDate>Mon, 01 Aug 2005 18:39:12 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Libraries-objects/Library-Part-Does-Not-maintain-values/m-p/24578#M35596</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2005-08-01T18:39:12Z</dc:date>
    </item>
    <item>
      <title>Re: Library Part Does Not maintain values</title>
      <link>https://community.graphisoft.com/t5/Libraries-objects/Library-Part-Does-Not-maintain-values/m-p/24579#M35597</link>
      <description>Mike,&lt;BR /&gt;
&lt;BR /&gt;
Thanks for the info. I'll give it a shot.&lt;BR /&gt;
&lt;BR /&gt;
Barry</description>
      <pubDate>Mon, 01 Aug 2005 18:45:05 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Libraries-objects/Library-Part-Does-Not-maintain-values/m-p/24579#M35597</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2005-08-01T18:45:05Z</dc:date>
    </item>
    <item>
      <title>Re: Library Part Does Not maintain values</title>
      <link>https://community.graphisoft.com/t5/Libraries-objects/Library-Part-Does-Not-maintain-values/m-p/24580#M35598</link>
      <description>I think a follow up is needed to explain this a little bit more. The chosen value stays in the part but the part does not size properly. (i.e. - if a 2x10 is chosen the sizes are correct but the part doesn't show the proper sizes if measured) I have opened plans with 2x10's for floor framing and they are showing as 6" wide and 8" tall, even though the part shows the correct sizes for B and zzyzx. If I change the parameter size to another size then back the part corrects the sizes properly. Thanks.&lt;BR /&gt;
&lt;BR /&gt;
Barry</description>
      <pubDate>Mon, 01 Aug 2005 18:50:02 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Libraries-objects/Library-Part-Does-Not-maintain-values/m-p/24580#M35598</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2005-08-01T18:50:02Z</dc:date>
    </item>
    <item>
      <title>Re: Library Part Does Not maintain values</title>
      <link>https://community.graphisoft.com/t5/Libraries-objects/Library-Part-Does-Not-maintain-values/m-p/24581#M35599</link>
      <description>Barry,&lt;BR /&gt;
&lt;BR /&gt;
A safety mesure you can try, is to write your statments twice.&lt;BR /&gt;
&lt;BR /&gt;
!!! --- Master Script ---&lt;BR /&gt;
if something &amp;gt; 1.00  then &lt;BR /&gt;
	aa = 1 : bb = 2  ! and so on&lt;BR /&gt;
else&lt;BR /&gt;
	aa= 3 : bb = 4&lt;BR /&gt;
endif&lt;BR /&gt;
&lt;BR /&gt;
!!! --- Parameters Script ---&lt;BR /&gt;
parameters aa = aa, bb =bb  ! and so on&lt;BR /&gt;
&lt;BR /&gt;
Not sure if this is really your problem, but may be this can help.</description>
      <pubDate>Mon, 01 Aug 2005 19:00:02 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Libraries-objects/Library-Part-Does-Not-maintain-values/m-p/24581#M35599</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2005-08-01T19:00:02Z</dc:date>
    </item>
    <item>
      <title>Re: Library Part Does Not maintain values</title>
      <link>https://community.graphisoft.com/t5/Libraries-objects/Library-Part-Does-Not-maintain-values/m-p/24582#M35600</link>
      <description>Olivier,&lt;BR /&gt;
&lt;BR /&gt;
I'll give it a try. Thanks.&lt;BR /&gt;
&lt;BR /&gt;
Barry</description>
      <pubDate>Mon, 01 Aug 2005 19:02:56 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Libraries-objects/Library-Part-Does-Not-maintain-values/m-p/24582#M35600</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2005-08-01T19:02:56Z</dc:date>
    </item>
  </channel>
</rss>

