====== Attribute Formulas ======
===== Formulas available via User Interface =====
Functions by default available via the Orbit user interface, see [[217:desktop:dataset:contents:index#rules|Attribute Rules]]. \\
All these functions use only one argument.
=== Standard Object Functions ===
|< 100% 20% 10% 10% 60% >|
^ Formula ^ Datatype ^ Spatial type ^ Description ^
| CreationDate | String | All | Indicates the exact date the object was created. |
| CreationDateTime | String | All | Indicates the exact date and time the spatial object was created. |
| CreationUser | String | All |
| ObjectId | Integer | All | |
| UniqueId | Integer | All | |
=== Spatial Object Functions ===
|< 100% 20% 10% 10% 60% >|
^ Formula ^ Datatype ^ Spatial type ^ Description ^
| Center |
| CenterM | Integer | Point | Returns the user Defined **M**easurement from the point object (will be 0 if the coordinate system is 2D or 3D or if there is no measurement). |
| ::: | ::: | Line, Area | Shows the user Defined measurement from the center of the rectangle that surrounds the line or area object. |
| CenterX | Float | Point | Shows the X coordinate from the point object (value refers to the used [[217:technology:core:crs_theory|CRS]]). |
| ::: | ::: | Line, Area | Shows the X coordinate from the center of the rectangle that surrounds the line or area object. |
| CenterY | Float | Point | Shows the Y coordinate from the point object (value refers to the used [[217:technology:core:crs_theory|CRS]]). |
| ::: | ::: | Line, Area | Shows the Y coordinate from the center of the rectangle that surrounds the line or area object. |
| CenterZ | Float | Point | Shows the Z coordinate from the point object ([[217:desktop:dataset:contents:structure#coordinate|will be 0 if coordinate system is 2D or 2D M or if there is no heigh reference.]]).|
| ::: | ::: | Line, Area | Shows the Z coordinate from the center of the rectangle that surrounds the line or area object. |
| CoordinateCount | Integer | All | Shows the number of points that an object contains. |
| First |
| FirstM | Float | Point | Shows the user Defined **M**easurement from the point object (will be 0 if the coordinate system is 2D or 3D or if there is no measurement). |
| ::: | ::: | Line, Area | Shows the user-defined measurement from the first point/vertex of the line or area object. first indicates the first point that is placed when the object is drawn. |
| FirstSegmentAngle |
| FirstSegmentLength |
| FirstTriangleHeight |
| FirstX | Float | Point |
| ::: | ::: | Line, Area | Shows the X coordinate from the first point/vertex of the line or area object. first indicates the first point that is placed when the object is drawn. |
| FirstY | Float | Point |
| ::: | ::: | Line, Area | Shows the Y coordinate from the first point/vertex of the line or area object. first indicates the first point that is placed when the object is drawn. |
| FirstZ | Float | Point |
| ::: | ::: | Line, Area | Shows the Z coordinate from the first point/vertex of the line or area object. first indicates the first point that is placed when the object is drawn.* |
| IsClosed | String, Boolean | all | Returns true for a line object if the beginning point and the endpoint are the same. Area and point objects are always closed, thus true. |
| IsWellFormed | String, Boolean | All | Returns true if the geometry of the spatial object is well-formed according to the rules of the [[http://www.opengeospatial.org/|OGC]]. |
| Last |
| LastM | Float | Point |
| ::: | ::: | Line, Area | Shows the user-defined measurement from the last point/vertex of the line or area object. Last indicates the last point that is placed when the object is drawn.* |
| LastX | Float | Point |
| ::: | ::: | Line, Area | Shows the X coordinate from the last point/vertex of the line or area object. Last indicates the last point that is placed when the object is drawn. |
| LastY | Float | Point |
| ::: | ::: | Line, Area | Shows the Y coordinate from the last point/vertex of the line or area object. Last indicates the last point that is placed when the object is drawn. |
| LastZ | Float | Point |
| ::: | ::: | Line, Area | Shows the Z coordinate from the last point/vertex of the line or area object. Last indicates the last point that is placed when the object is drawn.** |
| Max |
| MaxM | Float | Point |
| ::: | ::: | Line, Area | Shows the user-defined measurement from the right upper corner of the rectangle that surrounds the line or area object. |
| MaxX | Float | Point |
| ::: | ::: | Line, Area | Shows the X coordinate from the right upper corner of the rectangle that surrounds the line or area object. |
| MaxY | Float | Point |
| ::: | ::: | Line, Area | Shows the Y coordinate from the right upper corner of the rectangle that surrounds the line or area object. |
| MaxZ | Float | Point |
| ::: | ::: | Line, Area | Shows the Z coordinate from the right upper corner of the rectangle that surrounds the line or area object.* |
| Min |
| MinM | Float | Point |
| ::: | ::: | Line, Area | Shows the user-defined measurement from the left bottom corner of the rectangle that surrounds the line or area object. |
| MinX | Float | Point |
| ::: | ::: | Line, Area | Shows the X coordinate from the left bottom corner of the rectangle that surrounds the line or area object. |
| MinY | Float | Point |
| ::: | ::: | Line, Area | Shows the Y coordinate from the left bottom corner of the rectangle that surrounds the line or area object. |
| MinZ | Float | Point |
| ::: | ::: | Line, Area | Shows the Z coordinate from the left bottom corner of the rectangle that surrounds the line or area object. |
| ObjectArea | Float | Line, Area | Calculates the area in a square meter. Line objects will return 0.0 if they are not closed (cfr. IsClosed). |
| ObjectLength | Float | Line, Area | Calculates the length in meter. |
| PartCount | Integer | | Enumerates the number of parts from which the object is built. |
| PointCount | Integer | | Enumerates the number of points from which the object is built. |
| SizeX | Float |
| SizeY | Float |
| SizeZ | Float |
| SpatialImage.SampleValue | Float | |
=== Mobile Mapping Functions ===
Mobile Mapping functions are only available for the Orbit MM desktop portfolio \\
These functions are calculated and updated when editing the object via a mobile mapping view. \\
Mobile Mapping functions calculating a distance, length, or area are using the on the fly calculated projected coordinate system to achieve the exact metric result.
|< 100% 20% 10% 10% 60% >|
^ Formula ^ Datatype ^ Spatial type ^ Description ^
| Measure Angle | | | |
| Measure Area XY | Float | Area |2D area, or area of projected 3D area with Z = 0. |
| Measure Area XYZ | Float | Area |Area projected on the best fit 3D plane through all measured vertices. This technique expects all vertices to be measured in approximately a single 3D plane. |
| Measure Attachments | | | |
| Measure Center X-Position | Float | |
| Measure Center Y-Position | Float | |
| Measure Center Z-Max | | | |
| Measure Center Z-Min | | | |
| Measure Center Z-Position | Float | |
| Measure Center Z-Range | | | |
| Measure Clearance |Float | Lines | Catenary curve: Minimum distance from cable to ground. |
| Measure Distance 2D| Float | Line | 2D length of a straight line between start and endpoint, or length of the projected 3D distance with Z = 0. |
| Measure Distance 3D | Float | Line | 3D length of a straight line between start and endpoint. |
| Measure Distance Error XY | Float | Line |Triangulation error for Measure Distance 2D. |
| Measure Distance Error XYZ | Float | Line | Triangulation error for Measure Distance 3D. |
| Measure Distance Error Z | Float | Line | Triangulation Z error for Measure Distance 3D. |
| Measure Distance Reference 3D | Float | REMOVED? |
| Measure Distance X | Float | Line | Absolute difference in X between the start and endpoint of a straight line. |
| Measure Distance Y | Float | Line | Absolute difference in Y between the start and endpoint of a straight line. |
| Measure Distance Z | Float | Line | Absolute difference in Z between the start and endpoint of a straight line. |
| Measure Distance over Curve | Float | Lines | 3D length over the catenary curve. |
| Measure Feature Id | | | |
| Measure LRef Distance XY | | | |
| Measure LRef Distance XYZ | | | |
| Measure LRef Distance Z | | | |
| Measure LRef Length | | | |
| Measure LRef Timestamp | | | |
| Measure Length XY | Float | Line, Area | Summed 2D length of each line segment as distance XY. |
| Measure Length XYZ | Float | Line, Area | Summed 3D length of each line segment as distance XYZ. |
| Measure Length Z | Float |
| Measure Length2 XY | Float |
| Measure Length2 XYZ | Float |
| Measure Length2 Z | Float |
| Measure Mapping Resource Name | | | |
| Measure PhotoId | String |
| Measure Point1 Distance to Ground | Float | Point | Absolute difference in Z between Point1 and the Ground. |
| Measure Point1 Error XY | Float | Point | Triangulation error XY for Measure Point1. |
| Measure Point1 Error XYZ | Float | Point | Triangulation error XYZ for Measure Point1. |
| Measure Point1 Error Z | Float | Point | Triangulation error Z for Measure Point1. |
| Measure Point1 X-Position | Float | Point | The x coordinate of Point1. |
| Measure Point1 Y-Position | Float | Point | The y coordinate of Point1. |
| Measure Point1 Z-Position | Float | Point | The z coordinate of Point1. |
| Measure Point2 Distance to Ground | Float | Point | Absolute difference in Z between Point2 and the Ground. |
| Measure Point2 Error XY | Float | Point | Triangulation error XY for Measure Point2. |
| Measure Point2 Error XYZ | Float | Point | Triangulation error XYZ for Measure Point2. |
| Measure Point2 Error Z | Float | Point | Triangulation error Z for Measure Point2. |
| Measure Point2 X-Position | Float | Point | The x coordinate of Point2. |
| Measure Point2 Y-Position | Float | Point | The y coordinate of Point2. |
| Measure Point2 Z-Position | Float | Point | The z coordinate of Point2. |
| ... | | | |
| Measure Point20 Distance to Ground | Float | Point | Absolute difference in Z between Point20 and the Ground. |
| Measure Point20 Error XY | Float | Point | Triangulation error XY for Measure Point20. |
| Measure Point20 Error XYZ | Float | Point | Triangulation error XYZ for Measure Point20. |
| Measure Point20 Error Z | Float | Point | Triangulation error Z for Measure Point20. |
| Measure Point20 X-Position | Float | Point | The x coordinate of Point20. |
| Measure Point20 Y-Position | Float | Point | The y coordinate of Point20. |
| Measure Point20 Z-Position | Float | Point | The z coordinate of Point20. |
| Measure Radius Circle | Float |
| Measure Slant | Float |
| Measure Slope | Float |
| Measure Span | Float | Lines | Catenary curve: Closest distance between 2 connection points. |
| Measure Width Rail | Float |
===== Formulas available via Configuration =====
Functions available via ord file editing, see [[217:technology:supported_formats:other:ord|]]. \\
These functions may use one or multiple arguments. Attribute argument references can only be used within the same Attribute Set.
The syntax is straightforward but must be exact :
* Function : Function()
* Arguments in function comma separated : Function(Argument1,Argument2,...)
* Attribute reference by using [ ] : Function([Atribute1],[Atribute2],Argument3,...)
* Decimal character is dot : Function([Atribute1],[Atribute2],3.1457,Argument4,...)
=== Generic Standard Functions ===
|< 100% 20% 10% 10% 60% >|
^ Function ^ Arguments ^ Datatype ^ Description ^
| Abs | | Double | |
| ACos | | Double | |
| Add | | Double | |
| And | | Boolean | |
| ArgumentAt | | | |
| ArgumentCount | | | |
| ArgumentsAt | | | |
| ASin | | Double | |
| ATan | | Double | |
| ATan2 | | Double | |
| Between | | Boolean | |
| Char | (A) | String | Add a character with a specific code. \\ e.g. : Char(9) results in a 'TAB' character \\ e.g. : Char(13,10) results in a DOS newline sequence |
| Concat | | String | Combines one or more strings, attributevalues or functions. \\ e.g. Concat([KERKHOFCODE],”_”,[ZONECODE],”_”,[RIJCODE],”_”,[GRAF]) |
| Cos | | Double | |
| Decimals | | String | |
| DegToRad | | Double | |
| Divide | | Double | |
| Double | | Double | |
| Equal | | Boolean | |
| Exp | | Double | |
| FirstArgument | | | |
| FirstUpperCase | | String | |
| Hypot2D | (A,B,C) | Double | http://en.wikipedia.org/wiki/Hypotenuse |
| Hypot3D | (A,B,C) | Double | http://en.wikipedia.org/wiki/Hypotenuse |
| If | (A,B,C) | Any | Returns a result depending on the fact that a condition is met or not. \\ If(,,)|
| In | | Boolean | |
| IndexOf | (A,B) | Integer | Displays the numeric position of a substring. \\ e.g. : IndexOf(“The last emperor”,”emperor”) results in 9 |
| Int | | Double | |
| IsNull | | Boolean | |
| Larger | | Boolean | |
| LargerOrEqual | | | |
| LastArgument | | | |
| LastIndexOf | (A,B) | Integer | Displays the last numeric position of a substring. \\ e.g. : LastIndexOf(“C:\temp\my.map\file.txt”,”.”) results in 19 |
| Left | | String | Takes a part of a string, starting from the left position. The second parameter determines the number of characters. \\ e.g.Left([Attribute],7) |
| Length | ([Attribute]) | | Calculates string length of the attribute. |
| Log | | Double | |
| Long | | | |
| LowerCase | | String | |
| LPad | (A,B,C) | String | Left pad a value with a pad character to the requested size. \\ e.g. : LPad(“123”,6,”0”) results in 000123 \\ e.g. : LPad(“de”,3,”+”) results in +de |
| LTrim | | String | |
| Max | | String | |
| Min | | String | |
| Multiply | | Double | e.g. multiply([Attribute],3.28083) (from meters to feet) |
| NewLine | | String | |
| Not | | Boolean | |
| NowDate | | String | |
| NowDateTime | | String | |
| NowTime | | String | |
| Or | | Boolean | |
| PatternMatch | (A,B) | String | Determines whether a particular pattern occurs. \\ e.g. : PatternMatch(“255.17.23”,”*.17.*”) results in 'true' |
| Pi | | Double | |
| Power | | Double | |
| Printf | | String | |
| RadToDeg | | Double | |
| Random | | Double | |
| Replace | (A,B,C) | String | Replaces a substring by another. \\ e.g. : Replace(“the last emperor”,”last”,”first) results in “the first emperor” |
| Right | | String | |
| RPad | (value,size,pad) | String | Right pad a value with a pad character to the requested size. \\ e.g. : RPad(“123”,6,”0”) results in 123000 \\ e.g. : RPad(“de”,3,”+”) results in de+ |
| RTrim | | String | |
| Sin | | Double | |
| Smaller | | Boolean | |
| SmallerOrEqual | | Boolean | |
| Split | (A,B) | String | Split a string in different parts. \\ e.g. : Split(“127.B.3”,”.”) results in “127” “B” and “3” |
| Sqrt | | Double | |
| SubString | () | String | Returns a substring from string A, starting at index position B with length C. |
| SubString2 | (A,B,C) | String | Returns a substring from string A, starting at index position B til, index position C. |
| Subtract | | Double | |
| Tan | | Double | |
| Trim | | String | |
| UpperCase | | String | |
=== Spatial Functions ===
|< 100% 20% 10% 10% 60% >|
^ Formula ^ Datatype ^ Spatial type ^ Description ^
| Angle | Float | All | |
| Center | Float | All | |
| Distance2D | Float | All | |
| Distance3D | Float | All | |
| DistanceZ | Float | All | |
| First | Float | All | |
| GetM | Float | All | |
| GetX | Float | All | |
| GetY | Float | All | |
| GetZ | Float | All | |
| Last | Float | All | |
| Max | Float | All | |
| Min | Float | All | |
| NewPoint2D | Float | All | |
| NewPoint2DM | Float | All | |
| NewPoint3D | Float | All | |
| NewPoint3DM | Float | All | |
| PerpendicularLine | Float | All | |
| PointInterpolation |
| Point | Float | All | |
| ProjectPointOnLine | Float | All | |
=== Mobile Mapping functions ===
Mobile Mapping functions are only available for the Orbit MM desktop portfolio \\
|< 100% 20% 10% 70% >|
^ Formula ^ Datatype ^ Description / Arguments^
| PanFromDirectionAndUp() | Float | ([Direction_Easting],[Direction_Northing],[Direction_Elevation],[Up_Easting],[Up_Northing],[Up_Elevation]) |
| TiltFromDirectionAndUp() | Float | ([Direction_Easting],[Direction_Northing],[Direction_Elevation],[Up_Easting],[Up_Northing],[Up_Elevation]) |
| RollFromDirectionAndUp() | Float | ([Direction_Easting],[Direction_Northing],[Direction_Elevation],[Up_Easting],[Up_Northing],[Up_Elevation]) |
| PanFromRotationYXZ | Float | ([rotation_y],[rotation_x],[rotation_z]) |
| TiltFromRotationYXZ | Float | ([rotation_y],[rotation_x],[rotation_z]) |
| RollFromRotationYXZ | Float | ([rotation_y],[rotation_x],[rotation_z]) |
| PanFromOmegaPhiKappa | Float | ([Omega],[Phi],[Kappa]) |
| TiltFromOmegaPhiKappa | Float | ([Omega],[Phi],[Kappa]) |
| RollFromOmegaPhiKappa | Float | ([Omega],[Phi],[Kappa]) |
=== Example use formulas ===
AttributeConstraint=
ModelId=1
AttributeSetName=Attributes
AttributeName=Oppervlakte
Rule=expression
Expression=ObjectArea()
AttributeName=Perimeter
Rule=expression
Expression=Spatial.Length
AddFunctionAttribute=
ModelId=1
AttributeSetName=Attributes
AddAttribute=
AttributeName=Oppervlakte_hm
AttributeType=FLOAT
AttributeExpression=Add(100,Divide([Oppervlakte],1000))