Revit 2025 API
Family Class |
An element that represents a custom family (not a system family) in Autodesk Revit.

Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntax
The Family type exposes the following members.

Name | Description | |
---|---|---|
![]() | AssemblyInstanceId |
The id of the assembly instance to which the element belongs.
(Inherited from Element) |
![]() ![]() | BoundingBox | Retrieves a box that circumscribes all geometry of the element. (Inherited from Element) |
![]() | Category | Retrieves a Category object that represents the category or sub category in which the
element resides. (Inherited from Element) |
![]() ![]() | CreatedPhaseId |
Id of a Phase at which the Element was created.
(Inherited from Element) |
![]() | CurtainPanelHorizontalSpacing | For Curtain Panel families, the horizontal spacing of the driving mesh. |
![]() | CurtainPanelTilePattern | For Curtain Panel families, the choice of tile pattern. |
![]() | CurtainPanelVerticalSpacing | For Curtain Panel families, the vertical spacing of the driving mesh. |
![]() ![]() | DemolishedPhaseId |
Id of a Phase at which the Element was demolished.
(Inherited from Element) |
![]() ![]() | DesignOption | Returns the design option to which the element belongs. (Inherited from Element) |
![]() | Document | Returns the Document in which the Element resides. (Inherited from Element) |
![]() ![]() | FamilyCategory | Retrieves or sets a Category object that represents the category or sub category in which the elements ( this family could generate ) reside. |
![]() | FamilyCategoryId | The id of the category or sub category in which the elements that this family could generate reside. |
![]() | FamilyPlacementType | Identifies the type of placement required by a given family. |
![]() ![]() | Geometry | Retrieves the geometric representation of the element. (Inherited from Element) |
![]() | GroupId |
The id of the group to which an element belongs.
(Inherited from Element) |
![]() ![]() | Id |
A unique identifier for an Element in an Autodesk Revit project.
(Inherited from Element) |
![]() | IsConceptualMassFamily | Whether the Family is a Conceptual Mass family. |
![]() | IsCurtainPanelFamily | Whether the Family is a Curtain Panel family. Curtain Panel family symbols are used as the ObjectTypes of DividedSurface elements. |
![]() | IsEditable | True if the family supports editing, false otherwise. |
![]() | IsInPlace | True if the family is an in-place family, false if the family is a loadable family. |
![]() | IsModifiable |
Identifies if the element is modifiable.
(Inherited from Element) |
![]() | IsOwnerFamily | True if the family is the owner family for its own editable document, false otherwise. |
![]() | IsParametric | Identifies whether the family contains parametric relations between some of its elements. |
![]() | IsTransient |
Indicates whether an element is transient or permanent.
(Inherited from Element) |
![]() | IsUserCreated | Determine whether the family has been defined by the user. |
![]() | IsValidObject |
Specifies whether the .NET object represents a valid Revit entity.
(Inherited from Element) |
![]() | LevelId |
The id of the level associated with the element.
(Inherited from Element) |
![]() ![]() | Location | This property is used to find the physical location of an element within a project. (Inherited from Element) |
![]() | Name | A human readable name for the Element. (Inherited from Element) |
![]() | OwnerViewId |
The id of the view that owns the element.
(Inherited from Element) |
![]() ![]() | ParameterBuiltInParameter | Retrieves a parameter from the element given a parameter id. (Inherited from Element) |
![]() | ParameterDefinition | Retrieves a parameter from the element based on its definition. (Inherited from Element) |
![]() | ParameterGuid | Retrieves a parameter from the element given a GUID for a shared parameter. (Inherited from Element) |
![]() ![]() | Parameters | Retrieves a set containing all of the parameters that are contained within the element. (Inherited from Element) |
![]() | ParametersMap | Retrieves a map containing all of the parameters that are contained within the element. (Inherited from Element) |
![]() | Pinned |
Identifies if the element has been pinned to prevent changes.
(Inherited from Element) |
![]() | ShowSpatialElementCalculationPoint | For families that can have a calculation point for spatial elements, hide or show the calculation point. SpatialElementCalculationPoint elements. |
![]() | StructuralCodeName | The family's structural code name. |
![]() | StructuralFamilyNameKey | The family's structural section shape name key. |
![]() | StructuralMaterialType | The family's structural material type. |
![]() | StructuralSectionShape | The family's structural section shape. |
![]() ![]() | UniqueId |
A stable unique identifier for an element within the document.
(Inherited from Element) |
![]() | VersionGuid |
Get the element version Guid.
(Inherited from Element) |
![]() | ViewSpecific |
Identifies if the element is owned by a view.
(Inherited from Element) |
![]() | WorksetId |
Get Id of the Workset which owns the element.
(Inherited from Element) |

Name | Description | |
---|---|---|
![]() | ArePhasesModifiable |
Returns true if the properties CreatedPhaseId and DemolishedPhaseId can be modified for this Element.
(Inherited from Element) |
![]() | CanBeHidden | Indicates if the element can be hidden in the view. (Inherited from Element) |
![]() | CanBeLocked |
Identifies if the element can be locked.
(Inherited from Element) |
![]() | CanDeleteSubelement |
Checks if given subelement can be removed from the element.
(Inherited from Element) |
![]() | CanHaveStructuralSection | Identifies if this Family can have a structural section. |
![]() | CanHaveTypeAssigned |
Identifies if the element can have a type assigned.
(Inherited from Element) |
![]() ![]() | CanLoadFamilies | Checks whether the document is in a state that allows the loading of families. |
![]() | ChangeTypeId(ElementId) |
Changes the type of the element.
(Inherited from Element) |
![]() | DeleteEntity |
Deletes the existing entity created by %schema% in the element
(Inherited from Element) |
![]() | DeleteSubelement |
Removes a subelement from the element.
(Inherited from Element) |
![]() | DeleteSubelements |
Removes the subelements from the element.
(Inherited from Element) |
![]() | Dispose | (Inherited from Element) |
![]() | Equals | Determines whether the specified object is equal to the current object. (Inherited from Object) |
![]() | EvaluateAllParameterValues |
Evaluates all the parameters' values of the element.
(Inherited from Element) |
![]() | EvaluateParameterValues |
Evaluate the parameters' values of the element on the given parameter ID set.
(Inherited from Element) |
![]() | ExtractPartAtom | Writes a PartAtom XML from the contents of a family object. |
![]() | GetDependentElements |
Get all elements that, from a logical point of view, are the children of this Element.
(Inherited from Element) |
![]() | 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) |
![]() | GetEntitySchemaGuids |
Returns the Schema guids of any Entities stored in this element.
(Inherited from Element) |
![]() | GetExternalFileReference |
Gets information pertaining to the external file referenced
by the element.
(Inherited from Element) |
![]() | GetExternalResourceReference |
Gets the ExternalResourceReference associated with a specified external resource type.
(Inherited from Element) |
![]() | GetExternalResourceReferenceExpanded |
Gets the collection of ExternalResourceReference associated with a specified external resource type.
(Inherited from Element) |
![]() | GetExternalResourceReferences |
Gets the map of the external resource references referenced
by the element.
(Inherited from Element) |
![]() | GetExternalResourceReferencesExpanded |
Gets the expanded map of the external resource references referenced
by the element.
(Inherited from Element) |
![]() | GetFamilySymbolIds | Gets the ids of the FamilySymbols owned by this Family. |
![]() ![]() | GetFamilyTypeParameterValues | Returns all applicable values for a FamilyType parameter of this family. |
![]() ![]() | GetGeneratingElementIds |
Returns the ids of the element(s) that generated the input geometry object.
(Inherited from Element) |
![]() | GetGeometryObjectFromReference |
Retrieve one geometric primitive contained in the element given a reference.
(Inherited from Element) |
![]() | GetHashCode | Serves as the default hash function. (Inherited from Object) |
![]() | GetMaterialArea |
Gets the area of the material with the given id.
(Inherited from Element) |
![]() | GetMaterialIds |
Gets the element ids of all materials present in the element.
(Inherited from Element) |
![]() | GetMaterialVolume |
Gets the volume of the material with the given id.
(Inherited from Element) |
![]() | GetMonitoredLinkElementIds |
Provides the link instance IDs when the element is monitoring.
(Inherited from Element) |
![]() | GetMonitoredLocalElementIds |
Provides the local element IDs when the element is monitoring.
(Inherited from Element) |
![]() | GetOrderedParameters |
Gets the parameters associated to the element in order.
(Inherited from Element) |
![]() | GetParameter | Retrieves a parameter from the element given identifier. (Inherited from Element) |
![]() | GetParameterFormatOptions |
Returns a FormatOptions override for the element Parameter, or a default FormatOptions if no override exists.
(Inherited from Element) |
![]() | GetParameters | Retrieves the parameters from the element via the given name. (Inherited from Element) |
![]() | GetPhaseStatus |
Gets the status of a given element in the input phase
(Inherited from Element) |
![]() | GetSubelements |
Returns the collection of element subelements.
(Inherited from Element) |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object) |
![]() ![]() | GetTypeId |
Returns the identifier of this element's type.
(Inherited from Element) |
![]() | GetValidTypes |
Obtains a set of types that are valid for this element.
(Inherited from Element) |
![]() | HasLargeSketches | Checks whether the family contains sketches with a large number of elements. |
![]() | HasPhases |
Returns true if this Element has the properties CreatedPhaseId and DemolishedPhaseId.
(Inherited from Element) |
![]() | IsAppropriateCategoryId | Identifies if the input category id can be assigned as the new category for this family. |
![]() | IsCreatedPhaseOrderValid |
Returns true if createdPhaseId and demolishedPhaseId are in order.
(Inherited from Element) |
![]() | IsDemolishedPhaseOrderValid |
Returns true if createdPhaseId and demolishedPhaseId are in order.
(Inherited from Element) |
![]() | IsExternalFileReference |
Determines whether this Element represents an external
file.
(Inherited from Element) |
![]() | IsHidden | Identifies if the element has been permanently hidden in the view. (Inherited from Element) |
![]() | IsMonitoringLinkElement |
Indicate whether an element is monitoring any elements in any linked models.
(Inherited from Element) |
![]() | IsMonitoringLocalElement |
Indicate whether an element is monitoring other local elements.
(Inherited from Element) |
![]() | IsPhaseCreatedValid |
Returns true if createdPhaseId is an allowed value for the property CreatedPhaseId in this Element.
(Inherited from Element) |
![]() | IsPhaseDemolishedValid |
Returns true if demolishedPhaseId is an allowed value for the property DemolishedPhaseId in this Element.
(Inherited from Element) |
![]() | IsValidType(ElementId) |
Checks if given type is valid for this element.
(Inherited from Element) |
![]() | LookupParameter | Attempts to find a parameter on the element which has the given name. (Inherited from Element) |
![]() | RefersToExternalResourceReference |
Determines whether this Element uses external resources associated with
a specified external resource type.
(Inherited from Element) |
![]() | RefersToExternalResourceReferences |
Determines whether this Element uses external resources.
(Inherited from Element) |
![]() | SetEntity |
Stores the entity in the element. If an Entity described by the same Schema already
exists, it is overwritten.
(Inherited from Element) |
![]() | ToString | Returns a string that represents the current object. (Inherited from Object) |

Custom families within the Revit API represented by three objects - Family, FamilySymbol
and FamilyInstance.
Each object plays a significant part in the structure of families. The Family element represents the entire family
that consists of a collection of types, such as an 'I Beam'. You can think of that object as representing the entire
family file. The Family object contains a number of FamilySymbol elements. The
FamilySymbol object represents a specific set
of family settings within that Family and represents what is known in the Revit user interface as a
Type, such as 'W14x32'. The FamilyInstance object represents an actual instance of that
type placed the Autodesk Revit project. For example the FamilyInstance would
be a single instance of a W14x32 column within the project.

public void GetInfoForSymbols(Family family) { StringBuilder message = new StringBuilder("Selected element's family name is : " + family.Name); ISet<ElementId> familySymbolIds = family.GetFamilySymbolIds(); if (familySymbolIds.Count == 0) { message.AppendLine("Contains no family symbols."); } else { message.AppendLine("The family symbols contained in this family are : "); // Get family symbols which is contained in this family foreach (ElementId id in familySymbolIds) { FamilySymbol familySymbol = family.Document.GetElement(id) as FamilySymbol; // Get family symbol name message.AppendLine("\nName: " + familySymbol.Name); foreach (ElementId materialId in familySymbol.GetMaterialIds(false)) { Material material = familySymbol.Document.GetElement(materialId) as Material; message.AppendLine("\nMaterial : " + material.Name); } } } TaskDialog.Show("Revit",message.ToString()); }
Public Sub GetInfoForSymbols(family As Family) Dim message As New StringBuilder("Selected element's family name is : " & Convert.ToString(family.Name)) Dim familySymbolIds As ISet(Of ElementId) = family.GetFamilySymbolIds() If familySymbolIds.Count = 0 Then message.AppendLine("Contains no family symbols.") Else message.AppendLine("The family symbols contained in this family are : ") ' Get family symbols which is contained in this family For Each id As ElementId In familySymbolIds Dim familySymbol As FamilySymbol = TryCast(family.Document.GetElement(id), FamilySymbol) ' Get family symbol name message.AppendLine(vbLf & "Name: " + familySymbol.Name) For Each materialId As ElementId In familySymbol.GetMaterialIds(False) Dim material As Material = TryCast(familySymbol.Document.GetElement(materialId), Material) message.AppendLine(vbLf & "Material : " + material.Name) Next Next End If TaskDialog.Show("Revit", message.ToString()) End Sub
No code example is currently available or this language may not be supported.
No code example is currently available or this language may not be supported.
See Also