GlobalParametersManager クラスは、特定のモデルにおける一般情報とグローバル パラメータ要素のデータへのアクセスを提供します。
GlobalParametersManager は、プロジェクト ドキュメント内のグローバル パラメータの管理に使用する主要アクセス ポイントを提供します。静的なメソッドを提供し、グローバル パラメータにアクセスして順序を変更したり、名前がユニークであるかどうかを検証できるようにします。
グローバル パラメータがサポートされているのはプロジェクト ドキュメント内に限られます。ファミリ ドキュメントでは、サポートされていません。ただし、プロジェクト ドキュメント内であっても、ある特定の条件下ではグローバル パラメータを一時的または永久的に使用できない場合があります。AreGlobalParametersAllowed() メソッドは、指定されたドキュメントの内部でグローバル パラメータが使用できるかどうかを示します。
グローバル パラメータがプロジェクト ドキュメント内で使用できる場合は、指定されたドキュメント内のすべてのグローバル パラメータを取得するには、GetAllGlobalParameters() メソッドを使用します。グローバル パラメータが順番に列挙されたリストを取得するには、GetGlobalParametersOrdered() メソッドを使用します。順番に列挙されたリストを取得した場合、項目の順番は Revit ユーザ インタフェース内の標準の[グローバル パラメータ]ダイアログに表示されるグローバル パラメータの順番と同じになります。
グローバル パラメータを名前順で取得するには、名前が付けられたグローバル パラメータの ElementId を返す FindByName() を呼び出します。または、指定した名前を持つグローバル パラメータが見つからない場合は、ElementId.InvalidElementId を呼び出します。グローバル パラメータ名はユニークである必要があります。したがって、新しい GlobalParameter を作成する前に、IsUniqueName() メソッドを呼び出して名前を確認しておく必要があります。
GlobalParameter の ElementId が与えられると、IsValidGlobalParameter は与えられた ElementId が有効なグローバル パラメータ ID であることを確認します。
次の例では、グローバル パラメータをドキュメント内で使用することができる場合にすべてのグローバル パラメータを取得する方法を紹介しています。
|
コード領域: グローバル パラメータを取得 |
/// <summary>
/// Returns all global parameter elements defined in the given document.
/// </summary>
/// <param name="document">Revit project document.</param>
/// <returns>A set of ElementIds of global parameter elements</returns>
public ISet<ElementId> GetAllGlobalParameters(Document document)
{
// Global parameters are not available in all documents.
// They are available in projects, but not in families.
if (GlobalParametersManager.AreGlobalParametersAllowed(document))
{
return GlobalParametersManager.GetAllGlobalParameters(document);
}
// return an empty set if global parameters are not available in the document
return new HashSet<ElementId>();
}
|
GlobalParametersManager を使用すると、プロジェクト ドキュメント内のグローバル パラメータの指定された順番を変更することができます。これらの操作は、グローバル パラメータ自体には影響しません。変更した順番は、Revit 標準の[グローバル パラメータ]ダイアログにのみ表示され、GetGlobalParametersOrdered() メソッドに反映されます。
パラメータの移動はそのパラメータ グループ内に限られます。したがって、パラメータがパラメータ グループの境界にあるため移動できない場合、MoveParameter メソッドは「False」を返します。