StorageType は、内部に格納されたパラメータ値のタイプについて説明します。
プロパティ値に基づいて、対応する get メソッドおよび set メソッドを使用して、パラメータ データ値を取得、設定します。
StorageType はRevit によってサポートされるすべての内部パラメータのデータ ストレージのタイプを一覧表示する列挙型です。
表 16: ストレージのタイプ
メンバー名 |
説明 |
String |
内部データは文字列として格納されます。 |
ElementId |
データ タイプは要素を表し、要素 ID として格納されます。 |
Double |
データは、8 バイトの浮動小数点数として内部に格納されます。 |
Integer |
内部データは、符号付きの 32 ビットの整数として格納されます。 |
None |
None は無効なストレージのタイプを表します。内部での使用目的のみ。 |
ほとんどの場合、ElementId 値は正の数です。ただし、負の数になる場合もあります。ElementId 値が負である場合、要素を表しませんが、別の意味があります。たとえば、梁の[垂直位置]のストレージのタイプ パラメータは ElementId です。パラメータ値がレベル 1 またはレベル 2 である場合、ElementId 値は正の値であり、そのレベルの ElementId に対応しています。ただし、パラメータ値が[自動検出]、[梁の中心]または[梁上部]に設定されている場合は、ElementId は負の値です。
次のコード サンプルでは、StorageType に基づいてパラメータの値が Double 値に設定できるかどうかを確認する方法を示します。
コード領域 8-4: パラメータの StorageType を確認 |
public bool SetParameter(Parameter parameter, double value) { bool result = false; //if the parameter is readonly, you can't change the value of it if (null != parameter && !parameter.IsReadOnly) { StorageType parameterType = parameter.StorageType; if (StorageType.Double != parameterType) { throw new Exception("The storagetypes of value and parameter are different!"); } //If successful, the result is true result = parameter.Set(value); } return result; } |
Set()メソッドの戻り値は、Parameter 値が変更されたことを示しています。Set()メソッドは、Parameter 値が変更された場合は true を、そうでない場合は false を返します。
すべての Parameter が書き出し可能なわけではありません。Parameter が読み込み専用の場合は例外がスローされます。