Expression Parameter Reference
The below provides further information on using parameter expressions in IDEA StatiCa developer tab. More general information on using parameters can be found here.
Introduction
This page provides a comprehensive list of the operations and functions avaliable within the developer tab parameter functionality.
On top of the standard functions that you would expect when using formulas or expressions, several special functions are provied to extend functionally specific to IDEA StatiCa applications. These include providing functions that can reference existing member geometric properties, project settings values, forces in a given connection as well as inputing and converting units.
All together they provide for a very powerful way of driving designs in a parametric fashion.
Operators
Standard operators
Expression | Description | Example Input | Example Ouput |
---|---|---|---|
+ | addition | 2.3 + 2 |
4.3d |
- | subtraction | 2.3 - 2 |
0.3d |
* | multiplication | 2.5*3.1 |
7.75d |
\ | division | 5/4 |
1.25d |
% | remainder division | 9/4 |
1 |
Logical
Below is a list of the standard logical operators avaliable.
Expression | Description | Example Input | Example Ouput |
---|---|---|---|
or, || | Condition testing based on or | true || true , true or false |
true, true |
and, && | Condition testing based on and | true && true , true and false |
true, false |
Relational
Below is a list of the standard relational operators avaliable.
Expression | Description | Example Input | Example Ouput |
---|---|---|---|
n = x, n == x | n is equal to x | 5 == 5 |
True |
n != x | n does not equal to x | 3 != 5 |
True |
n < x < j | x is within bounds of n and j | 3 < 4 < 5 |
True |
n < x | x is less than n | 3 < 4 |
True |
n <= x | x is less or equal to n | 3 <= 4 , 3<=3 |
True |
x > n | x is greater than n | 4 > 3 |
True |
x >= n | x is greater than or equal to n | 4 > 3 |
True |
Unary
Expression | Description | Example Input | Example Ouput |
---|---|---|---|
!, not | reverse the meaning or logic of a given condition or object | !true , not true |
False |
- | logical negation symbol | (given x=5) -x |
-5 |
~ | Bitwise not |
Standard functions
Math functions
Below is a list of the standard math functions avaliable.
Expression | Description | Example Input | **Result |
---|---|---|---|
Abs() | Returns the absolute value of a specified number. | Abs(-1) |
1M |
Acos() | Returns the angle whose cosine is the specified number. | Acos(1) |
0d |
Asin() | Returns the angle whose sine is the specified number. | Asin(0) |
0d |
Atan() | Returns the angle whose tangent is the specified number. | Atan(0) |
0d |
Ceiling() | Returns the smallest integer greater than or equal to the specified number. | Ceiling(1.5) |
2 |
Cos() | Returns the cosine of the specified angle. | Cos(0) |
1d |
Exp() | Returns e raised to the specified power. | Exp(0) |
1d |
Floor() | Returns the largest integer less than or equal to the specified number. | Floor(1.5) |
1 |
IEEERemainder() | Returns the remainder resulting from the division of a specified number by another specified number. | IEEERemainder(3, 2) |
-1 |
Log() | Returns the logarithm of a specified number. | Log(1, 10) |
0 |
Log10() | Returns the base 10 logarithm of a specified number. | Log10(1) |
0 |
Max() | Returns the larger of two specified numbers. | Max(1, 2) |
2 |
Min() | Returns the smaller of two numbers. | Min(1, 2) |
1 |
Pow() | Returns a specified number raised to the specified power. | Pow(3, 2) |
9 |
Round() | Rounds a value to the nearest integer (0) or specified number of decimal places (>0). | Round(3.222, 2) |
3.22 |
Sign() | Returns a value indicating the sign of a number. | Sign(-10) |
-1 |
Sin() | Returns the sine of the specified angle. | Sin(0) |
0 |
Sqrt() | Returns the square root of a specified number. | Sqrt(4) |
2 |
Tan() | Returns the tangent of the specified angle. | Tan(0) |
0 |
Truncate() | Calculates the integral part of a number. | Truncate(1.7) |
1 |
Logical functions
Logical functions and operators can be used for providing outputs based on a given condition.
Expression | Description | Example Input | Example Ouput |
---|---|---|---|
in(check,p1,p2,p3,pn) | Returns whether an element (check) is in a set of values [p1,p2,p3,pn]. | in(1 + 1, 1, 2, 3) |
True |
if(condition, value if true, value if false) | If function, returns a value based on a true/false condition. | if(3 % 2 = 1, 45, 55) |
45 |
? | Simplified condition syntax. condtionat ? value if true : value if false. | 3 % 2 =1 ? 45 : 55 |
45 |
String functions
Below are functions which can be used to create strings. These functions are commonly useful for creating more complex input types such as bolt spacing inputs, points and vectors.
Expression | Description | Example Input | Example Ouput |
---|---|---|---|
ToString(p1) | Converts an input to its string equivilant. | ToString(2.1578) |
'2.1578' |
Concat(p1, p2, pn) | Concatenates any number strings into one string output, also evaluating each seperated input to a string. | Concat('M',20,' ','8.8') |
'M20 8.8' |
Join(Deliminater, p1, p2, Pn) | Concatenates multiple strings into one output, with a given deliminater | Join(';',-0.020,0.020,0.040) |
'-0.020; 0.020; 0.040' |
Format(input string, P0, P1, Pn) | Allows input of specific values given a constant string format | Format('{0}*{1}',0.75,0.2) |
'0.75*2' |
Unit import and conversion functions
Remember that in the background all unitized values are stored in Basic SI units. We provide a list of functions where the user can input a particular decimal unitized value in there selected unit. This will then be converted to the basic SI equivilant in the background.
Expression | Description | Example Input | Example Ouput |
---|---|---|---|
Length(length, lengthunit) | Allows input on a length to the specified unit type. ('m','dm','cm','mm','in','ft') | Length(4/5,'in') |
0.020 m |
Area(area, lengthunit) | Allows input on a area to the specified unit type. ('m','dm','cm','mm','in','ft') | Area(200000,'mm') |
0.2 m2 |
Force(force, forceunit) | Allows a force input to a specified force unit type. ('N','kN','MN','daN','kp','lbf','kip') | Force(13.5,'kp') |
132.39 N |
Stress(stress, stressunit) | Allows a stress input to a specified stress unit type. ('Pa','kPa','MPa','N/mm2','N/m2','N/m2','MN/m2','psi','ksi') | Stress(25,'MPa') |
25000000 Pa |
Moment(force, momentunit) | Allows a moment input to a specified moment unit. ('Nm','kNm', 'MNm', 'daNm', 'lbf.ft','kip.ft','kip.in') | Moment(34,'lbf.ft') |
46.097 Nm |
Temp(temperature, temperatureunit) | Allows a temperature input to a specified temperature unit. ('K','°C','°F') | Temp(10,'°F') |
260.93 K |
Angle(angle, angleunit) | Allows an angle input from angle unit. ('rad','mrad','°','grad') | Angle(15,'°') |
0.262 rad |
Time(time, timeunit) | Allows time input based on time unit. ('s','min.','h','d') | Time(5,'d') |
432000 s |
Project and model property functions
Project and model property functions allow for the retreival of values from the given model or project. These include retriving information about the connection model (members and loading) aswell as other user settings which can be used to drive further calculations.
Load effect functions
We provide a function which allows the user to retrieve the evelope of forces on a given member for all Active load effects in the project. This function can be very useful for making design decisions based on the enveloped load on a given member of the connection.
Expression | Description | Example Input | Example Ouput |
---|---|---|---|
GetLoadEffectEnvelope(Member, Action, Envelope, End) | Allows retrieval of given member force envelope for a given direction ('N', 'Vy', 'Vz', 'Mx', 'My', 'Mz') with an envelope option of ('Max', 'Min', 'Abs Max', 'Abs Min') at either ('Begin', 'End') of the member. If no parameter for End is provided 'End' will be used by default | GetLoadEffectEnvelope('B','Vz','Abs Max','End') |
17500 N |
Example where the default End is used. | GetLoadEffectEnvelope('B','Vz','Abs Max') |
17500 N | |
Example of getting minimum moment My. | GetLoadEffectEnvelope('B','My','Min') |
120000 Nm |
Note
When load in percentage is set to true the resulting force value is still retrieved. Force values are always updated when the percentage is changed.
Warning
Be careful when transferring templates with the Min and Max envelope setting. If the local co-ordinate of a member changes, the positive and negative values my represent a different load direction on the connected member which should be carefully considered.
Operation reference Functions
Expression | Description | Example Input | Example Ouput |
---|---|---|---|
GetBoltDiameter('operation_name', index) | Allows retrieval of an operations bolt type diameter. For operations which have more than one bolt size, the index parameter (0=first, 1=second, etc) can be used. By default it is set at 0. | GetBoltDiameter('FP1',0) |
0.020 m |
Retrieves the first bolt type diameter of a given operation. | GetBoltDiameter('FP1') |
0.020 m | |
Retrieves the second defined bolt type diameter of a given operation. | GetBoltDiameter('FP1',1) |
0.024 m |
Project setting value functions
We provide a general GetSettingValue(setting) function that allows a selected output value of a project setting to be used within parameters. Below is the currently avaliable general setting values that can be retrieved.
Description | Example Input | Example Ouput |
---|---|---|
Rounding settings | ||
Setting for rounding of plate input dimensions | GetSettingValue('Units.EntityRounding.PlateDimensions') |
0.005 m |
Setting for rounding of plate thickness input | GetSettingValue('Units.EntityRounding.PlateThickness') |
0.002 m |
Setting for rounding of bolt spacing input | GetSettingValue('Units.EntityRounding.BoltSpacing') |
0.005 m |
Setting for rounding of weld size input | GetSettingValue('Units.EntityRounding.WeldSize') |
0.001 m |
Bolt detailing settings | ||
Setting for end distance bolt diameter multiple | GetSettingValue('Design.Bolts.Detailing.End') |
2.0 |
Setting for edge distance bolt diameter multiple | GetSettingValue('Design.Bolts.Detailing.Edge') |
2.0 |
Setting for spacing bolt diameter multiple | GetSettingValue('Design.Bolts.Detailing.Spacing') |
3.0 |
Setting for wall distance bolt diameter multiple | GetSettingValue('Design.Bolts.Detailing.Wall') |
2.3 |
Component design settings | ||
Target utilization of bolt design | GetSettingValue('Design.AutoDesign.Bolts.TargetUtilization') |
0.9 |
Target utilization of bolt design | GetSettingValue('Design.AutoDesign.Welds.TargetUtilization') |
0.9 |
Overstrength factor for weld design | GetSettingValue('Design.AutoDesign.Welds.OverstrengthFactor') |
1.4 |
General design settings | ||
Beam resistance percentage | GetSettingValue('Design.General.ResistancePercentage') |
0.4 |
Member property value functions
We provide a general GetValue(member, property) function that can be used to extract model properties from the connection model. This enables the extraction of member information such as cross-section information, member geometry, etc. Here the member
is the associated member in the model and property
is the path of the desired property which will be retrieved.
In all examples below 'B' represents the Name of the referenced member in the connection.
Description | Example Input | Example Output |
---|---|---|
Member Properties | General relating properties of the member | |
Material Name | GetValue('B','MaterialName') |
|
Is the bearing member | GetValue('B','IsBearingMember') |
|
Length | GetValue('B', 'Length') |
|
Support Code | GetValue('B', 'SupportCode') |
|
Member Cross-Section Bounds | Get the bounds of the given members cross-section | |
Height | GetValue('B', 'CrossSection.Bounds.Height') |
|
Width | GetValue('B', 'CrossSection.Bounds.Width') |
|
Bottom | GetValue('B', 'CrossSection.Bounds.Bottom') |
|
Left | GetValue('B', 'CrossSection.Bounds.Left') |
|
Right | GetValue('B', 'CrossSection.Bounds.Right') |
|
Top | GetValue('B', 'CrossSection.Bounds.Top') |
|
Member Geometry | Properties of the given member | |
Angle Alpha | GetValue('B', 'AngleAlpha') |
|
Angle Beta | GetValue('B','AngleBeta') |
|
Rotation Rx | GetValue('B','RotationRx') |
|
DirVect /X | GetValue('B', 'DirVectX') |
|
DirVect /Y | GetValue('B', 'DirVectY') |
|
DirVect /Z | GetValue('B', 'DirVectZ') |
|
LCS Y Axis Vect /X | GetValue('B', 'LcsyVectX') |
|
LCS Y Axis Vect /Y | GetValue('B', 'LcsyVectY') |
|
LCS Y Axis Vect /Z | GetValue('B', 'LcsyVectZ') |
|
LCS ZAxis Vect /X | GetValue('B', 'LcszVectX') |
|
LCS Z Axis Vect /Y | GetValue('B', 'LcszVectY') |
|
LCS Z Axis Vect /Z | GetValue('B', 'LcszVectZ') |
|
Begin Offset X | GetValue('B', 'EccentricityBeginX') |
|
Begin Offset Y | GetValue('B', 'EccentricityBeginY') |
|
Begin Offset Z | GetValue('B', 'EccentricityBeginZ') |
|
End Offset X | GetValue('B', 'EccentricityBeginX') |
|
End Offset Y | GetValue('B', 'EccentricityBeginY') |
|
End Offset Z | GetValue('B', 'EccentricityBeginZ') |
|
InsertPointOnRefLine | GetValue('B', 'InsertPointOnRefLine.X') |
|
Theoretical Length Y | GetValue('B', 'TheoreticalLengthY') |
|
Theoretical Length Z | GetValue('B', 'TheoreticalLengthZ') |
|
Member CP position | Gets the point of connection of this segment to the joint | |
Connection Point - X | GetValue('B', 'ConnectionPoint.X') |
|
Connection Point - Y | GetValue('B', 'ConnectionPoint.Y') |
|
Connection Point - Z | GetValue('B', 'ConnectionPoint.Z') |
|
Position On Ref Line - Gets the relative position of the ConnectionPoint on the ReferenceLine | GetValue('B', 'PositionOnRefLine') |
|
Calculated Pin Position - Gets the position of the calculated pinned connection. The position is measured on the local X-axis of the beam. The calculation is done according to the sizes and positions of bolts on this member | GetValue('B', 'CalculatedPinPosition') |
|
Member Bounding Box Geometry | Gets bounding box in the local coordinate system of the beam | |
Bounding Box in LCS - Height | GetValue('B', 'BoundingBoxInLcs.Height') |
|
Bounding Box in LCS - Width | GetValue('B', 'BoundingBoxInLcs.Width) |
|
Bounding Box in LCS - Length | GetValue('B', 'BoundingBoxInLcs.Length) |
Member relating cross-section property functions
Most cross-section properties of a related member can be retrieved with the general GetValue(member, property) function. For retrieving plate thickness another function is required, GetBeamPlateThickness(member, plateitem).
Description | Example Input | Example Output |
---|---|---|
Top Flange Thickness | GetBeamPlateThickness('B', 'TopFlange') |
0.010 m |
Bottom Flange Thickness | GetBeamPlateThickness('B', 'BottomFlange') |
0.012 m |
Web Thickness | GetBeamPlateThickness('B', 'Web') |
0.005 m |
Description | Example Input | Example Output |
---|---|---|
Type of cross-section | GetValue('B','CrossSection.CrossSectionType') |
RolledI |
A - Area of Cross Section | GetValue('B', 'CrossSection.CssCharact.A') |
|
Av1 - Shear area Av1 (major principal axis) | GetValue('B','CrossSection.CssCharact.Av1') |
|
Av2 Shear area Av2 (minor principal axis) | GetValue('B','CrossSection.CssCharact.Av2') |
|
Sx - The first moment of area related to the X axis | GetValue('B', 'CrossSection.CssCharact.Sx') |
|
Sy - The first moment of area related to the Y axis | GetValue('B', 'CrossSection.CssCharact.Sy') |
|
Ix - The second moment of area related to the X axis | GetValue('B', 'CrossSection.CssCharact.Ix') |
|
Iy - The second moment of area related to the Y axis | GetValue('B', 'CrossSection.CssCharact.Iy') |
|
I1 - The principal second moment of area related to the first principal axis | GetValue('B', 'CrossSection.CssCharact.I1') |
|
I2 - The principal second moment of area related to the second principal axis | GetValue('B', 'CrossSection.CssCharact.I2') |
|
Alpha- Gets the angle, in radians, between system and principal axes | GetValue('B', 'CrossSection.CssCharact.Alpha') |
|
It- Sant Vennant torsional constant | GetValue('B', 'CrossSection.CssCharact.It') |
|
Ixy - The product moment of area | GetValue('B', 'CrossSection.CssCharact.Ixy') |
|
Cgx - Gets the centre of gravity related to the X axis | GetValue('B', 'CrossSection.CssCharact.Cgx') |
|
Cgy - Gets the centre of gravity related to the Y axis | GetValue('B', 'CrossSection.CssCharact.Cgy') |
|
Wpl1 - Plastic modulus related to major principal axis | GetValue('B', 'CrossSection.CssCharact.Wpl1') |
|
Wpl2 - Plastic modulus related to minor principal axis | GetValue('B', 'CrossSection.CssCharact.Wpl2') |
|
Wel1 - Section modulus related to major principal axis | GetValue('B', 'CrossSection.CssCharact.Wel1') |
|
Wel2 - Section modulus related to minor principal axis | GetValue('B', 'CrossSection.CssCharact.Wel2') |
|
Iw - Warping Constant | GetValue('B', 'CrossSection.CssCharact.Iw') |
|
C - Torsion Constant | GetValue('B', 'CrossSection.CssCharact.C') |
|
Rgx -Gets the radius of gyration related to the X axis | GetValue('B', 'CrossSection.CssCharact.Rgx') |
|
Rgy - Gets the radius of gyration related to the Y axis | GetValue('B', 'CrossSection.CssCharact.Rgy') |
|
Rg1 - Gets the radius of gyration related to the first principal axis | GetValue('B', 'CrossSection.CssCharact.Rg1') |
|
Rg2 - Gets the radius of gyration related to the second principal axis | GetValue('B', 'CrossSection.CssCharact.Rg2') |
|
x0 - Shear centre distance from centroidal point in X direction | GetValue('B', 'CrossSection.CssCharact.x0') |
|
y0 - Shear centre distance from centroidal point in Y direction | GetValue('B', 'CrossSection.CssCharact.y0') |
|
Painting surface as surface of 1m long part of beam with that cross-section | GetValue('B', 'CrossSection.CssCharact.PaintingSurface') |
Member relating section material property functions
Material properties of a related member can be retrieved with the general GetValue(member, property) function.
Description | Example Input | Example Output |
---|---|---|
E - Young's modulus | GetValue('B', 'Material.E') |
|
G - Shear modulus | GetValue('B', 'Material.G') |
|
Poisson's ratio | GetValue('B', 'Material.Poissons') |
|
Unit Mass | GetValue('B', 'Material.UnitMass') |
|
Specific Heat capacity | GetValue('B', 'Material.SpecificHeat') |
|
Thermal Expansion | GetValue('B', 'Material.ThermalExpansion') |
|
Thermal Conductivity | GetValue('B', 'Material.ThermalConductivity') |
|
Is Default Materail | GetValue('B', 'Material.IsDefaultMaterial') |
Further information
Further information of using expressions can be found on the NCalc wiki page.
Looking for something more? Post a question on our discussion forum.