Share

GlobalParametersManager.IsUniqueName Method

Tests whether a name is unique among existing global parameters of a given document.


Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 26.3.0.0 (26.3.0.0)

Syntax

C#

public static bool IsUniqueName(
	Document document,
	string name
)

Parameters

document  Document
Document in which a new parameter is to be added.
name  String
A name of a parameter being added.

Return Value

Boolean
True if the given %name% does not exist yet among existing global parameters nof the document; False otherwise.

Exceptions

ExceptionCondition
ArgumentNullException A non-optional argument was null

Remarks

Typically, this method is used before a new global parameters is created, for all global parameters must have their names unique in the scope of a document.

Example

C#

/// <summary>
/// Creates or finds a global parameter of a given name. 
/// </summary>
/// <param name="document">Revit project document.</param>
/// <param name="name">Name of a global parameter.</param>
/// <returns>An Element Id of the global parameter</returns>
public GlobalParameter GetOrCreateAGlobalParameter(Document document, String name)
{
    GlobalParameter gp = null;

    // Global parameters are not available in all documents.
    // They are available in projects, but not in families.
    if (GlobalParametersManager.AreGlobalParametersAllowed(document))
    {
        if (GlobalParametersManager.IsUniqueName(document,name))
        {
            // if the name is not unique, the global parameter must exist already
            gp = document.GetElement(GlobalParametersManager.FindByName(document, name)) as GlobalParameter;
        }
        else
        {
            // A global parameter with such a name does not exist yet;
            // Let's create a new one (assume the type is Number)
            using (Transaction trans = new Transaction(document, "Create Global Parameter"))
            {
                trans.Start();
                gp = GlobalParameter.Create(document,name, SpecTypeId.Number);
                trans.Commit();
            }
        }
    }

    return gp;
}

VB

' <summary>
' Creates or finds a global parameter of a given name. 
' </summary>
' <param name="document">Revit project document.</param>
' <param name="name">Name of a global parameter.</param>
' <returns>An Element Id of the global parameter</returns>
Public Function GetOrCreateAGlobalParameter(document As Document, name As [String]) As GlobalParameter
    Dim gp As GlobalParameter = Nothing

    ' Global parameters are not available in all documents.
    ' They are available in projects, but not in families.
    If GlobalParametersManager.AreGlobalParametersAllowed(document) Then
        If GlobalParametersManager.IsUniqueName(document, name) Then
            ' if the name is not unique, the global parameter must exist already
            gp = TryCast(document.GetElement(GlobalParametersManager.FindByName(document, name)), GlobalParameter)
        Else
            ' A global parameter with such a name does not exist yet;
            ' Let's create a new one (assume the type is Number)
            Using trans As New Transaction(document, "Create Global Parameter")
                trans.Start()
          gp = GlobalParameter.Create(document, name, SpecTypeId.Number)
          trans.Commit()
            End Using
        End If
    End If

    Return gp
End Function

See Also

Reference

Was this information helpful?