Skip to content

GlobalParameter

Public Class

This class represents a GlobalParameter element in Revit.

Inheritance Hierarchy

System.Object
Autodesk.Revit.DB.Element
Autodesk.Revit.DB.ParameterElement
Autodesk.Revit.DB.GlobalParameter

Namespace: Autodesk.Revit.DB

Assembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)

Syntax

public class GlobalParameter : ParameterElement

The GlobalParameter type exposes the following members.

Properties

Name

Description


Public Property

The id of the assembly instance to which the element belongs.
(Inherited from Element)


Public Property
Code Example
BoundingBox

Retrieves a box that circumscribes all geometry of the element.
(Inherited from Element)


Public Property
Category

Retrieves a Category object that represents the category or sub category in which the element resides.
(Inherited from Element)


Public Property
Code Example
CreatedPhaseId

Id of a Phase at which the Element was created.
(Inherited from Element)


Public Property
Code Example
DemolishedPhaseId

Id of a Phase at which the Element was demolished.
(Inherited from Element)


Public Property
Code Example
DesignOption

Returns the design option to which the element belongs.
(Inherited from Element)


Public Property
Document

Returns the Document in which the Element resides.
(Inherited from Element)


Public Property
Code Example
Geometry

Retrieves the geometric representation of the element.
(Inherited from Element)


Public Property

The id of the group to which an element belongs.
(Inherited from Element)


Public Property
Code Example
Id

A unique identifier for an Element in an Autodesk Revit project.
(Inherited from Element)


Public Property
IsDrivenByDimension

Indicates whether this parameter is driven by a dimension or not.


Public Property
IsDrivenByFormula

Indicates whether this parameter is driven by a formula or not.


Public Property
IsModifiable

Identifies if the element is modifiable.
(Inherited from Element)


Public Property
IsReporting

Indicates whether this is a reporting global parameter or not.


Public Property
IsTransient

Indicates whether an element is transient or permanent.
(Inherited from Element)


Public Property
IsValidObject

Specifies whether the .NET object represents a valid Revit entity.
(Inherited from Element)


Public Property

The id of the level associated with the element.
(Inherited from Element)


Public Property
Code Example
Location

This property is used to find the physical location of an element within a project.
(Inherited from Element)


Public Property
Name

A human readable name for the Element.
(Inherited from Element)


Public Property

The id of the view that owns the element.
(Inherited from Element)


Public Property
Code Example
Parameter.BuiltInParameter.

Retrieves a parameter from the element given a parameter id.
(Inherited from Element)


Public Property
Parameter.Definition.

Retrieves a parameter from the element based on its definition.
(Inherited from Element)


Public Property
Parameter.Guid.

Retrieves a parameter from the element given a GUID for a shared parameter.
(Inherited from Element)


Public Property
Code Example
Parameters

Retrieves a set containing all of the parameters that are contained within the element.
(Inherited from Element)


Public Property
ParametersMap

Retrieves a map containing all of the parameters that are contained within the element.
(Inherited from Element)


Public Property
Pinned

Identifies if the element has been pinned to prevent changes.
(Inherited from Element)


Public Property
Code Example
UniqueId

A stable unique identifier for an element within the document.
(Inherited from Element)


Public Property
VersionGuid

Get the element version Guid.
(Inherited from Element)


Public Property

Identifies if the element is owned by a view.
(Inherited from Element)


Public Property
WorksetId

Get Id of the Workset which owns the element.
(Inherited from Element)


Methods

Name

Description


Public Method
ArePhasesModifiable

Returns true if the properties CreatedPhaseId and DemolishedPhaseId can be modified for this Element.
(Inherited from Element)


Public Method
CanBeHidden

Indicates if the element can be hidden in the view.
(Inherited from Element)


Public Method

Identifies if the element can be locked.
(Inherited from Element)


Public Method

Tests whether the global parameter permits a change of its current value of the IsReporting attribute.


Public Method

Checks if given subelement can be removed from the element.
(Inherited from Element)


Public Method
CanHaveTypeAssigned.

Identifies if the element can have a type assigned.
(Inherited from Element)


Public Method
CanLabelDimension

Tests whether a dimension can be labeled by the global parameter.


Public Method
ChangeTypeId(ElementId)

Changes the type of the element.
(Inherited from Element)


Public Method
Static Member
Create

Creates a new Global Parameter in the given document.


Public Method

Deletes the existing entity created by %schema% in the element
(Inherited from Element)


Public Method
DeleteSubelement

Removes a subelement from the element.
(Inherited from Element)


Public Method
DeleteSubelements

Removes the subelements from the element.
(Inherited from Element)


Public Method

(Inherited from Element)


Public Method

Equals

Determines whether the specified object is equal to the current object.
(Inherited from Object)


Public Method

Evaluates all the parameters’ values of the element.
(Inherited from Element)


Public Method

Evaluate the parameters’ values of the element on the given parameter ID set.
(Inherited from Element)


Public Method
GetAffectedElements

Returns all elements of which properties are driven by this global parameter.


Public Method
GetAffectedGlobalParameters

Returns all other global parameters which refer to this global parameter in their formulas.


Public Method
Code Example

Get the definition representing this parameter element.
(Inherited from ParameterElement)


Public Method
GetDependentElements

Get all elements that, from a logical point of view, are the children of this Element.
(Inherited from Element)


Public Method
GetEntity

Returns the existing entity corresponding to the Schema if it has been saved in the Element, or an invalid entity otherwise.
(Inherited from Element)


Public Method

Returns the Schema guids of any Entities stored in this element.
(Inherited from Element)


Public Method

Gets information pertaining to the external file referenced by the element.
(Inherited from Element)


Public Method
GetExternalResourceReference

Gets the ExternalResourceReference associated with a specified external resource type.
(Inherited from Element)


Public Method
GetExternalResourceReferenceExpanded

Gets the collection of ExternalResourceReference associated with a specified external resource type.
(Inherited from Element)


Public Method
GetExternalResourceReferences

Gets the map of the external resource references referenced by the element.
(Inherited from Element)


Public Method
GetExternalResourceReferencesExpanded

Gets the expanded map of the external resource references referenced by the element.
(Inherited from Element)


Public Method
GetFormula

Returns the parameter’s expression in form of a string.


Public Method
Code Example
GetGeneratingElementIds

Returns the ids of the element(s) that generated the input geometry object.
(Inherited from Element)


Public Method
GetGeometryObjectFromReference

Retrieve one geometric primitive contained in the element given a reference.
(Inherited from Element)


Public Method

GetHashCode

Serves as the default hash function.
(Inherited from Object)


Public Method
GetLabeledDimensions

Returns all dimension elements that are currently labeled by this global parameter.


Public Method
GetLabelName

Returns the name of this parameter’s label, which is used to label dimension elements.


Public Method

Gets the area of the material with the given id.
(Inherited from Element)


Public Method
GetMaterialIds

Gets the element ids of all materials present in the element.
(Inherited from Element)


Public Method

Gets the volume of the material with the given id.
(Inherited from Element)


Public Method

Provides the link instance IDs when the element is monitoring.
(Inherited from Element)


Public Method

Provides the local element IDs when the element is monitoring.
(Inherited from Element)


Public Method
GetOrderedParameters

Gets the parameters associated to the element in order.
(Inherited from Element)


Public Method
GetParameter

Retrieves a parameter from the element given identifier.
(Inherited from Element)


Public Method

Returns a FormatOptions override for the element Parameter, or a default FormatOptions if no override exists.
(Inherited from Element)


Public Method
GetParameters

Retrieves the parameters from the element via the given name.
(Inherited from Element)


Public Method

Gets the status of a given element in the input phase
(Inherited from Element)


Public Method
GetSubelements

Returns the collection of element subelements.
(Inherited from Element)


Public Method

GetType

Gets the Type of the current instance.
(Inherited from Object)


Public Method
Code Example
GetTypeId

Returns the identifier of this element’s type.
(Inherited from Element)


Public Method

Obtains a set of types that are valid for this element.
(Inherited from Element)


Public Method
GetValue

Obtains the curent value of the global parameter.


Public Method
HasPhases

Returns true if this Element has the properties CreatedPhaseId and DemolishedPhaseId.
(Inherited from Element)


Public Method
HasValidTypeForReporting

Tests that the global parameter has data of a type that supports reporting.


Public Method

Returns true if createdPhaseId and demolishedPhaseId are in order.
(Inherited from Element)


Public Method

Returns true if createdPhaseId and demolishedPhaseId are in order.
(Inherited from Element)


Public Method
IsExternalFileReference

Determines whether this Element represents an external file.
(Inherited from Element)


Public Method
IsHidden

Identifies if the element has been permanently hidden in the view.
(Inherited from Element)


Public Method

Indicate whether an element is monitoring any elements in any linked models.
(Inherited from Element)


Public Method

Indicate whether an element is monitoring other local elements.
(Inherited from Element)


Public Method
IsPhaseCreatedValid

Returns true if createdPhaseId is an allowed value for the property CreatedPhaseId in this Element.
(Inherited from Element)


Public Method
IsPhaseDemolishedValid

Returns true if demolishedPhaseId is an allowed value for the property DemolishedPhaseId in this Element.
(Inherited from Element)


Public Method
IsValidFormula

Tests that the given expression is a valid as formula for this parameter.


Public Method
IsValidType(ElementId)

Checks if given type is valid for this element.
(Inherited from Element)


Public Method
Code Example
LabelDimension

Labels a dimension with this global parameter.


Public Method
LookupParameter

Attempts to find a parameter on the element which has the given name.
(Inherited from Element)


Public Method

Determines whether this Element uses external resources associated with a specified external resource type.
(Inherited from Element)


Public Method
RefersToExternalResourceReferences

Determines whether this Element uses external resources.
(Inherited from Element)


Public Method
Code Example
SetDrivingDimension

Set a dimension to drive the value of this parameter.


Public Method

Stores the entity in the element. If an Entity described by the same Schema already exists, it is overwritten.
(Inherited from Element)


Public Method
Code Example
SetFormula

Sets a formula expression for this parameter.


Public Method
Code Example
SetValue

Sets a new value of the global parameter.


Public Method

ToString

Returns a string that represents the current object.
(Inherited from Object)


Public Method
UnlabelDimension

Unlabels a dimension that is currently labeled by this global parameter.


Remarks

Global parameters can be used to drive values of dimensions or other elements’ parameters. Also, a global parameter can be driven by a selected dimension, the value of which then determines the value of the global parameter. Such parameters can further be used to drive values of other elements’ parameters.

See also the GlobalParametersManager class for methods that operate upon global parameters of a document, such as getting all defined global parameters and testing whether a global parameter of certain name already exists or not.

Reporting vs. Non-Reporting parameters

There are several ways global parameters can be categorized, but probably the most significant categorization stems from the IsReporting property which divides global parameters into two groups - Reporting and Non-Reporting. The significance of reporting parameters lays in the fact that their values are driven by the dimension that has been labeled by a reporting parameter. It means that the value of a reporting parameter reflects the value of a dimension (length or angle) and gets updated anytime the dimension changes. Non-Reporting parameters behave in the opposite manner - they drive value of dimensions that have been labeled by them, which results in controlling the model’s geometry through global parameters’ values.

Reporting parameters are limited in several ways. They can be only of Length or Angle type, a requirement due to the fact that a dimension must be able to drive the value. For the same reason reporting parameters may not have formulas.

Non-Reporting parameters, on the other way, can be of almost any type (Length, Integer, Area, etc.) with the exception of ElementId type. Also, Non-Reporting parameters may have assigned formulas in which other global parameters may be used as arguments. This way one global parameter’s value can be derived from other parameter (or parameters), and the other parameter can be either reporting or non-reporting.

Creating Global Parameters

Global parameters get created via the static method Create(Document, String, ForgeTypeId). It is important to note that each new parameter must have a name that is unique within the document. Parameters are created as non-reporting initially, but programmers are free to modify the IsReporting property once a global parameter is created and is of an eligible type. The programmer can call the HasValidTypeForReporting. when in doubt whether parameters of a certain data type can be made reporting. Note, that a parameter may not be made reporting after more than one dimension has been labeled by it. It is because reporting parameter can label (and be driven) by one dimension only.

An alternative way of making a parameter reporting is via the SetDrivingDimension(ElementId) method which labels one dimension by a global parameter and also makes the parameter reporting if it is not reporting yet.

Other important properties of global parameters are IsDrivenByDimension and IsDrivenByFormula, which are mutually exclusive - a parameter that has a formula assigned cannot be driven by a dimension (nor can be reporting) and vice versa.

Global Parameters with formulas

Like with family parameters, formulas may be assigned to non-reporting global parameters using the SetFormula(String) method (paired with GetFormula. to query the current formula.) Formulas may include all standard arithmetic operations and logical operations (as functions and, or, not.) Input to logical operations must be Boolean values (parameters of YesNo type). Consequently, arithmetic operations can be applied to numeric values only. While there are no operations supported for string (text) arguments, strings can be used as results of a logical If operation. Depending on their type (and units), parameters of different value types can be combined. However, unit-less values such as Integer and Number (double) may only be combined with each other. Since formulas can get quite complicated, the method IsValidFormula(String) is available for the programmer to ensure a formula is valid in order to avoid potential exception due to applying an invalid formula.

Labeling dimensions

Probably the most notable feature of global parameters is their ability to “Label” dimensions, a process that establishes dependency of a dimension on a global parameter (or vice versa, depending on the reporting status.) One parameter can label any number of dimensions as long as the parameter is non-reporting. If the parameter labels a multi-segment dimension, values of all segments of this dimension will be equal to the parameter’s value. As mentioned above, reporting parameter can label one dimension only, and this dimension can have only one segment. Methods and properties related to labeling include: LabelDimension(ElementId), UnlabelDimension(ElementId), and GetLabeledDimensions.. Also in this set is the CanLabelDimension(ElementId) method which indicates whether or not a particular dimension can be labeled. Presently, only single linear dimensions and angles are permitted.

Elements affected by a Global Parameter

Global parameters can be associated with other global parameters as well as regular family instance parameters (which may report global parameters as their values via the assignment formula.) There are two methods available to find relations among parameters: GetAffectedGlobalParameters. and GetAffectedElements.. The former returns all other global parameters that refer to a particular global parameter in their respective formulas. The other method returns a set of all elements of which some parameters are controlled by the global parameter. These two methods together with the GetLabeledDimensions. can help the programmer in figuring out how model elements relate to each other via global parameters.

Methods for maintaining associations between element properties and global parameters can be found in the Parameter class.

Getting and setting the value of a Global Parameter

All global parameters, formula-driven, dimension-driven, or independent, have values. A value can be obtained by calling the GetValue. method. The object returned by that method is an instance of one of the classes derived from ParameterValue class. The concrete instance is determined by the type of the global parameter (specified upon creation.) Parameters that are neither formula-driven nor dimension-driven (reporting) can have a value assigned. The method to use is SetValue(ParameterValue) and it accepts the same type of ParameterValue that is returned by SetValue. However, the type can also be deduced easily: Text parameters accept only StringParameterValue. Integer and YesNo parameters accept only IntegerParameterValue. All other parameters accept only DoubleParameterValue.