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 が読み込み専用の場合は例外がスローされます。