====== Attribute Formulas ====== ===== Formulas available via User Interface ===== Functions by default available via the Orbit user interface, see [[2210: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 | | ModifyDate | String | All | Indicates the exact date the object was modified. | | ModifyDateTime | String | All | Indicates the exact date and time the spatial object was modified. | | ModifyUser | 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 [[2210: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 [[2210: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 ([[2210: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 Field of View | | | | | 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 View Tilt | | | | | Measure View Heading | | | | | Measure Width Rail | Float | ===== Formulas available via Configuration ===== Functions available via ord file editing, see [[2210: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 | If(,,) \\ e.g. : If(LargerOrEqual([Height],10),"High","Low") | | 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))