Parameter is defined using <P> tags. It specifies value with constant, expression or object reference. Every parameter must or may have name (N), value (V), type (T) and description (D).
Example:
<P N="L" V="100" D="length" />
<P N="Desc" V="This analysis is applicable." T="Text" />
<P N="Beam" V="ASTM A992" T="SteelMaterial" D="beam grade" Role="Input" Category="Material Properties" />
Attributes
T="Text"
Defines the value of the parameter as a text or a string type (max length?)
Example:
<P N="Desc" V="Check capacity in axial and bi-directional flexure" T="Text" />
Parameter values that are non-text types can include:
Other parameters
Integer and float constants
Math operations (+, -, *, /)
A value of a non-text type parameter can be any of the following:
1. a number
<P N="bfb" V="4" D="width of bottom flange" />
<P N="tft" V="0.4" D="thickness of top flange" />
2. an expression
<P N="height" V="length1-length2+45" />
<P N="height" V="5.25 + max(length1, length2)" />
3. a list of values
By enclosing a comma delimited series of numbers inside brackets, the value of the parameter is set as a list of numbers rather than a single number.
Assuming the parameter below is part of a bridge, this means that the bridge has 4 spans where each span length is 50, 100, 100 and 50.
<P N="span_length" V="[50, 100, 100, 50]" D="lengths of a 4-span bridge" />
User can change the value of the parameter to [50,100,50], which would make the bridge a 3-span bridge.
<P N="span_length" V="[50, 100, 50]" D="lengths of a 3-span bridge" />
In ParamML, the length of the list can be accessed by using the length function. Considering the span_length parameter for the 4-span bridge, the parameter below will use a value of 4 as there are 4 span lengths in the list.
<P N="no. of spans" V="length(span_length)" D="number of spans" />
Values of the list can also be accessed using bracket notation. Note that counting of the list starts with 0 for the first value, then 1 for the second, 2 for the third, 3 for the fourth....and so on.
The parameter below will give a value of 50 as the length of the first span, for both examples of the 4-span and 3-span bridge.
<P N="first_span" V="span_length[0]" D="length of first span" />
The parameter below will give a value of 50 as the length of the last span, for both examples of the 4-span and 3-span bridge.
<P N="last_span" V="span_length[length(span_length)-1]" D="length of last span" />
For the 4-span bridge, the value of the above parameter is equivalent to span_length[4-1] -- then the value for span_length[3] is 50. For the 3-span bridge, the value of the above parameter is equivalent to span_length[3-1] -- then the value for span_length[2] is 50.
There are some types that link to another object (class). Definitions under the linked object will appear in a drop-down in the interface as options for the value of the parameter.
Enumerations
This is a group that contains parameters in which values start from 1 and increment sequentially. To make a parameter from an enumeration group object, use one of the parameters in the enumeration group object as the value of that parameter.
In the example below, adding an attribute Role="Input" will allow the user to choose types based on the parameters enumerated in the Column Type group object.
<O T="Project" N="Concrete Column Design">
<O T="Group" N="Column Type">
<P N="RECTANGULAR" V="1" />
<P N="CIRCULAR" V="2" />
</O>
<O T="Group" N="Input">
<P N="height" V="20" Role="Input" Category="Input" />
<P N="width" V="1" Role="Input" Category="Input" />
<P N="depth" V="2" Role="Input" Category="Input" />
<P N="type" V="RECTANGULAR" Role="Input" Category="Input" />
</O>
</O>
1. UT attribute can be specified with one of the following values:
Length ex. in
Force ex. kip
Angle ex. rad
Temperature ex. F
Moment ex. kip-in
Stress ex. kip/in^2
Density ex. kip/in^3
PerTemperature ex. 1/F
Area ex. in^2
Inertia ex. in^4
Velocity ex. in/sec
Acceleration ex. in/sec^2
ForcePerLength ex. kip/in
MomentPerLength ex. kip-in/in
Volume ex. in^3
Curvature ex. 1/in
Warp ex. in^6
2. UC attribute must have the name of one of the unit objects defined in the project.