閉じる

ゾーンの面積の小数点以下の処理を行う方法

数式エディタを使って、ゾーンの面積について小数点以下の処理を行っていきます。四捨五入、切り捨て、切り上げの処理を行い、表示する小数点以下の桁数について容易にコントロールできるように設定していく方法についてご紹介します。

使う関数は以下の5つです。

関数名:[ STRTONUM ]
機能:文字列から数値を抽出します。


関数名:[ STRCALCUNIT ]
機能:長さ、面積、体積、角度の値から文字列に変換します。

関数名:[ ROUND ]
機能:数値と整数について指定した桁数以下を切り捨てて値を丸めます。

関数:[ ROUNDDOWN ]
機能:数値と整数について指定した桁数以下を切り捨てて値を丸めます。

関数:[ ROUNDUP ]
機能:数値と整数について指定した桁数以下を切り上げて値を丸めます。

使う関数について理解したところでゾーンの面積を数式エディタで扱うための処理について説明します。

ARCHICADでは四捨五入([ ROUND ]) 、切り上げ([ ROUNDUP ]) 、切り捨て([ ROUNDDOWN ]) の関数で扱える引数のタイプは「整数と数値」になります。
ゾーンの[ 測定面積 ]についてはタイプが「面積」なので「面積から数値」に変換する必要があります。

ここで悩ましいのが値のタイプを「面積から数値に変換」するための関数が存在しないことです。
そこで、「面積から『文字列』に変換して、『文字列』から数値に変換」と処理する関数を組みます。

まず、「面積から『文字列』に変換」するにはSTRCALCUNIT関数を使います。
STRCALCUNITの後に括弧書きで長さ、面積、体積、角度の値を入れるので、数式エディタではSTRCALCUNIT (測定面積)と記述します。

※注:斜体文字はプロパティから選択する必要があります。
数式エディタにコピペする方はこちらのテキストをご利用ください。 
STRCALCUNIT ( {Property:ゾーン/測定面積} )
これで、面積値が文字列に変換されています。

次に、「『文字列』から数値に変換」するためにSTRTONUM関数を使います。
STRTONUMの後に括弧書きで文字列の値を入れるので、数式エディタではSTRTONUM(STRCALCUNIT (測定面積))と記述します。

数式エディタにコピペする方はこちらのテキストをご利用ください。 
STRTONUM ( STRCALCUNIT ( {Property:ゾーン/測定面積} ) )
これで、面積値を数値に変換されています。
面積値を数値に変換するための関数の組み方を理解したら下図の5つのプロパティを用意します。

解説用の設定では、グループ名を「TEST」としています。
プロパティ名については作成される方が分かりやすく調整するか、貴社の命名規則があればそれに合わせて作成していただいて構いません。

使用可能な分類は全てのプロパティに共通して(分類の設定がデフォルトの場合)「スペース」とします。

①プロパティの小数点の以下の桁数をパラメトリックに変更できるようにする設定

  • プロパティ名:小数点
  • データタイプ:オプションセット
  • オプションセットの値:0、1、2、3、4
  • デフォルト値:任意で設定いただけますが今回は3としています。

②数式内に小数点以下の桁数設定を読み込むための設定

  • プロパティ名:小数点_設定
  • データタイプ:数値
  • デフォルト値:数式で「STRTONUM(小数点※1)」

※1:①で作成したプロパティ「小数点」を引数に設定します。また、オプションセットで設定した0~4までの値のタイプは「文字」として扱われていますのでSTRTONUM関数で「文字から数値」に変換します。
数式エディタにコピペする方はこちらのテキストをご利用ください。
STRTONUM ( {Property:TEST/小数点} )


③「面積値_四捨五入」の設定

  • プロパティ名:面積値_四捨五入
  • データタイプ:数値
  • デフォルト値:数式で「ROUND(数値※2,桁数※3)」

※2:引数「数値」には、面積値を値に変換したSTRTONUM(STRCALCUNIT (測定面積))を入力します。
※3:引数「桁数」には、②で作成したプロパティ「小数点_設定」を割り当てます。
数式エディタにコピペする方はこちらのテキストをご利用ください。

ROUND ( STRTONUM ( STRCALCUNIT ( {Property:ゾーン/測定面積} ) ), {Property:TEST/小数点_設定} )

④「面積値_切り捨て」の設定

  • プロパティ名:面積値_切り捨て
  • データタイプ:数値
  • デフォルト値:数式で「ROUNDDOWN(数値※2,桁数※3)」

※2:引数「数値」には、面積値を値に変換したSTRTONUM(STRCALCUNIT (測定面積))を入力します。
※3:引数「桁数」には、②で作成したプロパティ「小数点_設定」を割り当てます。
数式エディタにコピペする方はこちらのテキストをご利用ください。

ROUNDDOWN ( STRTONUM ( STRCALCUNIT ( {Property:ゾーン/測定面積} ) ), {Property:TEST/小数点_設定} )

⑤「面積値_切り上げ」の設定

  • プロパティ名:面積値_切り上げ
  • データタイプ:数値
  • デフォルト値:数式で「ROUNDUP(数値※2,桁数※3)」

※2:引数「数値」には、面積値を値に変換したSTRTONUM(STRCALCUNIT (測定面積))を入力します。
※3:引数「桁数」には、②で作成したプロパティ「小数点_設定」を割り当てます。

数式エディタにコピペする方はこちらのテキストをご利用ください。

ROUNDUP ( STRTONUM ( STRCALCUNIT ( {Property:ゾーン/測定面積} ) ), {Property:TEST/小数点_設定} )

この5つのプロパティを設定し終えたら配置されたゾーンから面積値を一覧表で確認します。
下図は、ゾーン名「TEST」とし、面積値が1.628㎡のゾーンです。

下図は、上図のゾーンと同じ形状の塗りつぶしを配置し、面積表示しました。
ゾーンスタンプ「ゾーン_仕上げ用」では小数点第3位までしか表示されませんので、小数点以下の桁数を多く面積値確認のために塗りつぶしを配置しています。
今回、確認するゾーンの面積は「1.628269㎡」です。

一覧表にプロパティマネージャーで作成したプロパティを表示します。

一覧表の設定はこちらです。

赤枠内をクリックすると右側に小数点以下の桁数として設定した0~4の値を選択できるので適宜設定します。

[小数点]の値を「2」とすると、面積値が小数点第2位まで表示され、小数点第3位について四捨五入、切り捨て、切り上げの設定をしてくれています。
ゾーンの面積値は「1.628269㎡」ですので正しく処理してくれていることが分かります。

一覧表内で表示される値について、小数点以下の表示桁数の設定はこちらの記事で解説していますので併せてお読みください。

今回のプロパティマネージャーの設定と一覧表の設定については下記のリンクからXMLファイルをダウンロードできますので学習にご活用ください。
なお、このファイルはARCHICAD23で作成しています。

A23_プロパティマネージャー_面積値の小数点以下桁数の設定.xml
A23_一覧表_面積値の小数点以下桁数の設定.xml

記事をシェア!

コメントを残す

2019 © GRAPHISOFT JAPAN