# Room Calculated Attributes

Define calculations

Using the Calculated Attributes feature, you can build formulas dynamically using available dRofus fields to create additional fields. Calculated Attributes are available for Rooms, Items, Occurrences, and Products and allow you to build simple to very complex results. We explain how to do this for Room Calculated Attributes, Items Calculated Attributes, and Occurrence Calculated Attributes. The Calculated Attribute Formats are the same across dRofus. A good baseline understanding of how Item Composite Text Attributes work is a great place to start since the rules can be combined with these attributes. ### Room Subtraction Example

By taking the existing field Programmed Area and subtracting from it Designed Area, we can understand if a room is under-designed or over-designed.

We can leverage the current properties grouping names so the team; understands that they are related.

We defined our new field Delta and located it within the Areas and Measurements group.

If the Programmed Area were smaller than the Designed Area, we would expect the Delta to be negative. Most calculated attributes are designed around numbers, and our default formulas create a bracket around the field {0} when building out a formula. But sometimes, we like to use text, yes/no, or list values. For example, when checking whether two text fields match or both values are True. For these formulas to work, you need to add a single quote around the bracket ‘{0}’ so that we know it should be a string, not a number.

Several formats are available, and there is no limit to how complex you might want to go in combination.

Format

Summary

Example

+

Returns the sum of two numeric operands. (Addition)

{0} + {1} ~ 0:1, 1:4 = 5

-

Returns the difference of two numeric operands. (Subtraction)

{0} - 4 ~ 0:10 = 6

*

Returns the product of two numeric operands. (Multiplication)

{0} * {1} ~ 0:2, 1:3 = 6

/

Returns the quotient of two numeric operands. (Division)

{0} / {1} ~ 0:9, 1:3 = 3

and

Indicates whether both operands are true.

{0} < 10 and {0} > 0 ~ 0:5 = True

or

Indicates whether either or both operands are true.

{0} < 2 or {0} >5 ~ 0:8 = True

not

Returns true if the logical operand is false.

not ({0} < 0) ~ 0:-5 = False

=

Indicates whether the left operand is equal to the right operand.

{0} = 4 ~ 0:4 = True

!=

Indicates whether the left operand is not equal to the right operand.

{0} != {1} ~ 0:2, 1:4 = True

<

Indicates whether the left operand is less than the right operand.

{0} < 0 ~ 0:2 = False

<=

Indicates whether the left operand is less than or equal to the right operand.

{0} <=2 ~ 0:2 = True

>

Indicates whether the left operand is greater than the right operand.

{0} > 0 ~ 0:8 = True

>=

Indicates whether the left operand is greater than or equal to the right operand.

{0} >= 5 ~ 0:10 = True

if

Returns a value based on a condition

if ( {0} % {1} = 0, ‘Yes’, ‘No’ ) ~ 0:4, 1:2 = Yes

in

Returns whether an element is in a list of values.

in ( {0}, {1}, {2}, {3} ) ~ 0:7, 1:4, 2:7, 3:9 = True

In the example above, the first declared argument '{0}' is the value you want to evaluate, in this example, the number '7' as defined by the '0:7' after the (~).
The remaining arguments '{1},{2},{3}' define the list that {0} will be evaluated against.
In this case, the values are 4, 7, 9, since our initial value is '7' the function will return 'True' since 7 is included in the list we are evaluating against.

Round

Rounds a value to the nearest integer or specified number of decimal places.

Round( {0}, 2) ~ 0:3.1415 = 3.14

Floor

Returns the largest integer less than or equal to the specified number.

Floor( {0} ) ~ 0:1.5 = 1

Ceiling

Returns the smallest integer greater than or equal to the specified number.

Ceiling( {0} ) ~ 0:1.5 = 2

Truncate

Calculates the integral part of a number.

Truncate( {0} ) ~ 0:3.14 = 3

Abs

Returns the absolute value of a specified number.

Abs( {0} ) ~ 0:-1 = 1

Min

Returns the smaller of two numbers.

Min( {0}, {1} ) ~ 0:-4, 1:23 = -4

Max

Returns the larger of two numbers.

Max( {0}, {1} ) ~ 0:5, 1:8 = 8

Sqrt

Returns the square root of a specified number.

Sqrt( {0} ) ~ 0:4 = 2

Pow

Returns a specified number raised to the specified power.

Pow( {0}, 2) ~ 0:3 = 9

Exp

Returns e raised to the specified power

Exp( {0} ) ~ 0:0 = 1

Log

Returns the logarithm of a specified number.

Log( {0}, 10) ~ 0:1 = 0

Log10

Returns the base 10 logarithm of a specified number.

Log10( {0} ) ~ 0:1 = 0

Sign

Returns a value indicating the sign of a number.

Sign( {0} ) ~ 0:-10 = -1

Sin

Returns the sine of the specified angle.

Sin( {0} ) ~ 0:0 = 0

Cos

Returns the cosine of the specified angle.

Cos( {0} ) ~ 0:0 = 1

Tan

Returns the tangent fo the specified angle.

Tan( {0} ) ~ 0:0 = 0

Asin

Returns the angle whose sine is the specified number.

Asin( {0} ) ~ 0:0 = 0

Acos

Returns the angle whose cosine is the specified number.

Acos( {0} ) ~ 0:1 = 0

Atan

Returns the angle whose tangent is the specified number.

Atan( {0} ) ~ 0:0 = 0

Explore Items Calculated Attributes to see how this can be done with Items.

JavaScript errors detected