Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

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.

計算属性を作成するには、データベースへの管理者アクセス権が必要です。
こちらを、ご参照ください。 プロジェクトとデータベース管理.

アイテム If/Then の例

Excelで複雑なルールを作成したことがあれば、if/then式には慣れているかもしれません。 IF-THENの構文は= IF (論理テキスト、真の場合の値、偽の場合の値)。最初の引数は、比較が有効な場合の処理を関数に、指示します。2番目の引数は、比較が偽の場合の処理を関数に伝えます。インターネットで検索すると、
このコンセプトの例がいくつか見つかります。この例では、いくつかのルールを使って、
アイテム・データから、いくつかの結果を引き出します。ドア計算を決定しようとしたことがあれば、
このページをブックマーク (お気に入り)してオフィスに残しておくといいでしょう。
オーストラリアのチームは、このアイデアを思いつきました。私たちは皆、アイテムのデータを、
使用して、他の意思決定に情報を提供する素晴らしい例だと考えています。

青いフィールド (アイテム・データ) を使って、赤いフィールド (計算された属性) の結果を、
通知した結果を以下に示します。

以下、それぞれの例を説明:

開口部 (Clear Opening) は、引き算と、if/then式を組み合わせて、ドアが完全に開いているときに、
人や物が通過できる明確な幅を決めます。この計算では、シングル・ドアかダブル・ドアかで、
計算が異なります。

パネルAとBの幅から始めます。パネルAが0の場合、必要な寸法が未だ指名されていないため、
ドアに関しては問題ありません。次に、パネルBの幅がゼロの場合、ドアをシングル・ドアと仮定し、
計算ではパネルAからパネルの厚さ、フレーム・ストップ、および、ヒンジ (蝶番)の許容範囲を、
差し引きます。 最後に、パネルBがゼロでない場合、ダブルドアで、パネルAとBを加算し、
パネルの厚みとヒンジの許容範囲を2回減算します。

明確な開口幅は、アクセシビリティに関わる法令遵守基準によって規定されることが多く、
この例は、計画や設計の段階で不適合なドアを特定する可能性があります。


オーダー用のフレームをスケジュールする場合、パネルサイズは重要な情報ではないことが多く、
代わりに高さと幅が必要となります。そのため、以下の2つの例が参考になります:

Reveal Height (リヴィール高さ) は、パネル高さと床仕上げ代を単純に足したものであり:
必要であれば、パネル・アンダーカットと床仕上げ代を別々に組み込むこともできます。

Reveal Width (リヴィールの幅)も、if/then式 (目標達成のための行動手法)で、アイテムデータから、
パネル幅とパネル幅の許容範囲のルールを組み込んでいます。
これは、if/then式の中の、if/then式であり、最初のルールがチェックされ、その後に2つ目のルールが、
続く。もしパネル A が 0 ならば、表示の幅は 0 になります。パネルBがゼロであれば、
パネル幅の許容範囲にパネルAを加え、パネルBがゼロでなければ、パネル幅の許容範囲に、
パネルAを加え、パネルBにパネル幅の許容範囲を2つ加えた値となります。


ドアを改修したり、石積みの壁に設置する場合、構造的な開口部の大きさが要求されます。
以下の2つの例は、計算された属性をフィールドとして使用する良い例です:

Structural Height (構造的な高さ) は、単純な足し算で定義されます。
高さはフレームのアーキトレーブに加算されます。 では、高さ (Reveal Height) はどこから来ているので
しょうか?それは、別の計算属性です。そうです、他の計算式の上に計算式を構築することができます。

また、構造幅は、最初のIf/then式 (目標達成のための行動手法)で、リヴィール高さ (Reveal Height)
ことで定義されますルールは、パネルBの幅がゼロ、つまり幅がない場合
(または2枚目のパネルがない場合)、レベルの幅と、フレームのアーキトレーブを組み合わせます、
また、パネルBの幅がある場合は、フレームのアーキトレーブを2回追加し、
パネルBの幅も含めて両方のパネルに必要な幅を追加します。.


これらの例は、重要なプロジェクトの計算を、すべてのユーザーに提供すると同時に、
計算を確実に実行することを示しています。

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.

これらの例は、アイテム計算を使用して何が可能かを、理解していただくことを目的としています。

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)

if ( {1} = 0, 0, {0} / {1} ) ~ 0:9, 1:3 = 3
Note: You need the IF part to avoid dividing by zero.

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.

isNull

Returns true if the operand is null.

isNull ( {0} ) ~ 0: = True

substring

Returns a slice of the provided text. The slice is decided by a start position and optional end position, starting from 0.

substring ( {0, 7) ~ 0:Doctor Rofus = Rofus
substring ( {0}, 0, 6) ~ 0:Doctor Rofus = Doctor

contains

Returns true if the first text operand contains the second text operand.

contains ( {0}, {1} ) ~ 0:abc, 1:a = True

length

Returns the number of characters in the text.

length ( {0} ) ~ 0:Hello = 5

replace

Replaces a substring in the first text operand. All matches of the second text operand are replaced with the third text operand.

replace ( {0}, {1}, {2} ) ~ 0:Hello, 1:l, 2:xx = Hexxo

startsWith

Returns true if the first text operand starts with the second text operand.

startsWith ( {0}, {1} ) ~ 0:Hello, 1:H = True

endsWith

Returns true if the first text operand ends with the second text operand.

endsWith ( {0}, {1} ) ~ 0:Hello, 1:o = True

regexIsMatch

Returns true if the first text operand contains a match using the second text operand as a regular expression.

regexIsMatch ( {0}, ‘a.*’ ) ~ 0:abc = True

regexReplace

Replaces a substring in the first text operand. All matches found using the second text operand as regular expression are replaced with the third text operand.

regexReplace ( {0}, ‘l+’, 'X' ) ~ 0:Hello = HeXo

regexGroup

Returns the value of a regular expression group. Group index starts from 1 and defaults to 1 if not given.

regexGroup ( {0}, ‘(1+)’ ) ~ 0:Hello = ll
regexGroup ( {0}, ‘(\\w+)\\s+car') ~ 0:One car red car blue car = One
regexGroup ( {0}, ‘\\w+\\s+(car')) ~ 0:One car red car blue car = car

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

そのための方法については、オカレンス計算属性をご参照ください。

  • No labels