Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 23.0.0.0 (23.1.0.0)
Syntax
C# |
---|
public class ExternalDefinition : Definition, IDisposable |
Visual Basic |
---|
Public Class ExternalDefinition _ Inherits Definition _ Implements IDisposable |
Visual C++ |
---|
public ref class ExternalDefinition : public Definition, IDisposable |
Remarks
The ExternalDefinition object can be created by a definition Group object from a shared parameters file. External parameter definition must belong to a Group which is nothing more than a collection of shared parameter definitions. The following process should be followed to add a parameter to an element: Open the shared parameters file, via the Application.OpenSharedParameterFile() method. Access an existing or create a new group, via the DefinitionFile.Groups property. Access an existing or create a new external parameter definition, via the DefinitionGroup.Definitions property. Create a new Binding object with the categories to which the parameter will be bound using an InstanceBinding or a TypeBinding object. Finally add the binding and definition to the document using the Document.ParameterBindings object.
Shared parameters added to elements are typically visible to interactive users. To add data to elements that is never visible to interactive users, use Extensible Storage to construct and populate the needed structured data.
Examples

private void ReadEditExternalParam(DefinitionFile file) { // get ExternalDefinition from shared parameter file DefinitionGroups myGroups = file.Groups; DefinitionGroup myGroup = myGroups.get_Item("MyGroup"); if (myGroup != null) { ExternalDefinition myExtDef = myGroup.Definitions.get_Item("MyParam") as ExternalDefinition; if (myExtDef != null) { DefinitionGroup newGroup = myGroups.get_Item("AnotherGroup"); if (newGroup != null) { // change the OwnerGroup of the ExternalDefinition myExtDef.OwnerGroup = newGroup; } } } }

Private Sub ReadEditExternalParam(file As DefinitionFile) ' get ExternalDefinition from shared parameter file Dim myGroups As DefinitionGroups = file.Groups Dim myGroup As DefinitionGroup = myGroups.Item("MyGroup") If myGroup IsNot Nothing Then Dim myExtDef As ExternalDefinition = TryCast(myGroup.Definitions.Item("MyParam"), ExternalDefinition) If myExtDef IsNot Nothing Then Dim newGroup As DefinitionGroup = myGroups.Item("AnotherGroup") If newGroup IsNot Nothing Then ' change the OwnerGroup of the ExternalDefinition myExtDef.OwnerGroup = newGroup End If End If End If End Sub