レポート パラメータと非レポート パラメータ

グローバル パラメータのタイプの違いにおいて最も重要となるのは、レポート パラメータであるか非レポート パラメータであるかという点です。

レポート パラメータ、非レポート パラメータとは

グローバル パラメータを分類する方法はいくつかありますが、GlobalParameter.IsReporting プロパティに基づく分類が最も重要になります。このプロパティはグローバル パラメータをレポート パラメータと非レポート パラメータの 2 つのグループに分類します。レポート パラメータの重要性は、レポート パラメータの値がレポート パラメータによってラベル付けされた寸法によって駆動されるという点にあります。つまり、レポート パラメータの値は寸法(長さ寸法または角度寸法)の値を反映しており、寸法の変更に応じて更新されます。非レポート パラメータの動作は正反対です。非レポート パラメータは、非レポート パラメータによってラベル付けされた寸法の値を駆動します。したがって、グローバル パラメータの値を通じてモデルのジオメトリを制御します。

レポート パラメータにはいくつかの制限事項があります。レポート パラメータは、Length タイプか Angle タイプのいずれかでなければなりません。寸法がレポート パラメータの値を駆動できる必要があるためです。 同じ理由で、レポート パラメータに式を使用することはできません。

その一方で、非レポート パラメータではほとんどのタイプ(LengthIntegerArea など)を使用できます。 ただし、例外として ElementId タイプは使用できません。また、非レポート パラメータに式を割り当て、その式に引数として他のグローバル パラメータを使用できます。これにより、1 つのグローバル パラメータの値を別の(または複数の)パラメータから派生させることができます。もう一方のパラメータは、レポート パラメータでも非レポート パラメータでも構いません。

グローバル パラメータで重要となるその他のプロパティは IsDrivenByDimension と IsDrivenByFormula です。これらは相互に排他的です。式が割り当てられているパラメータは寸法によって駆動できません(レポート パラメータにすることもできません)。その逆も不可能です。

グローバル パラメータをレポート パラメータまたは非レポート パラメータに設定する

グローバル パラメータは作成時点では非レポート パラメータとして初期設定されていますが、作成されたグローバル パラメータが適合するタイプである場合、GlobalParameter.IsReporting プロパティを使用してレポート パラメータに変更することができます。任意のデータ タイプがレポート パラメータに適合することを確認するには、GlobalParameter.HasValidTypeForReporting() を使用します。なお、パラメータによって 1 つ以上の寸法にラベルを付けた後で、そのパラメータをレポート パラメータに変更することはできません。なぜなら、レポート パラメータによってラベルを付けることができるのは(またそのレポート パラメータを駆動することができるのは)、1 つの寸法に限られるからです。

パラメータをレポート パラメータに変更する別の方法は、GlobalParameter.SetDrivingDimension() メソッドを使用することです。このメソッドは、1 つのグローバル パラメータによって 1 つの寸法にラベルを付け、そのパラメータが非レポート パラメータである場合にはレポート パラメータに変更します。

寸法によって駆動されているパラメータは自動的にレポート パラメータに変更されますが、式によって駆動されているパラメータは変更されません。式を設定するには、グローバル パラメータは非レポート パラメータである必要があります。したがってレポート パラメータは、式を割り当てる前にあらかじめ非レポート パラメータに変更される必要があります。