StorageType

StorageType

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