Skip to content

Releases: Nice3point/RevitExtensions

2027.0.0-preview.4.20260324

24 Mar 19:02

Choose a tag to compare

Pre-release

This update focuses on improved API design through C# 14 extension methods syntax, .NET 10 support, Revit 2027 support, and covers all known Utils classes.

New Extensions

Element

  • element.CanBeDeleted
  • elementId.CanBeDeleted(Document)

Transformation

  • element.Copy(XYZ), Copy(double, double, double)
  • elementId.Copy(Document, XYZ), Copy(Document, double, double, double)
  • element.Mirror(Plane)
  • elementId.Mirror(Document, Plane)
  • element.Move(XYZ), Move(double, double, double)
  • elementId.Move(Document, XYZ), Move(Document, double, double, double)
  • element.Rotate(Line, double)
  • elementId.Rotate(Document, Line, double)
  • element.CanBeMirrored
  • elementId.CanBeMirrored(Document)
  • elementIds.CanBeMirrored(Document)
  • elementIds.MirrorElements(Document, Plane, bool)
  • elementIds.MoveElements(Document, XYZ)
  • elementIds.RotateElements(Document, Line, double)
  • elementIds.CopyElements(Document, XYZ)
  • elementIds.CopyElements(Document, Document)
  • elementIds.CopyElements(Document, Document, Transform, CopyPasteOptions)
  • elementIds.CopyElements(View, View)
  • elementIds.CopyElements(View, View, Transform, CopyPasteOptions)
  • view.GetTransformFromViewToView(View)

Joins and cuts

  • element.JoinGeometry(Element)
  • element.UnjoinGeometry(Element)
  • element.AreElementsJoined(Element)
  • element.GetJoinedElements()
  • element.SwitchJoinOrder(Element)
  • element.IsCuttingElementInJoin(Element)
  • element.CanBeCutWithVoid
  • element.GetCuttingVoidInstances()
  • element.AddInstanceVoidCut(FamilyInstance)
  • element.RemoveInstanceVoidCut(FamilyInstance)
  • element.InstanceVoidCutExists(FamilyInstance)
  • element.IsAllowedForSolidCut
  • element.IsElementFromAppropriateContext
  • element.GetCuttingSolids()
  • element.GetSolidsBeingCut()
  • element.CanElementCutElement(Element, out CutFailureReason)
  • element.CutExistsBetweenElements(Element, out bool)
  • element.AddCutBetweenSolids(Element)
  • element.AddCutBetweenSolids(Element, bool)
  • element.RemoveCutBetweenSolids(Element)
  • element.SplitFacesOfCuttingSolid(Element, bool)

Application extensions

  • application.AsControlledApplication()
  • application.IsDgnExportAvailable
  • application.IsDgnImportLinkAvailable
  • application.IsDwfExportAvailable
  • application.IsDwgExportAvailable
  • application.IsDwgImportLinkAvailable
  • application.IsDxfExportAvailable
  • application.IsFbxExportAvailable
  • application.IsGraphicsAvailable
  • application.IsIfcAvailable
  • application.IsNavisworksExporterAvailable
  • application.IsSatImportLinkAvailable
  • application.IsShapeImporterAvailable
  • application.IsSkpImportLinkAvailable
  • application.Is3DmImportLinkAvailable
  • application.IsAxmImportLinkAvailable
  • application.IsObjImportLinkAvailable
  • application.IsStlImportLinkAvailable
  • application.IsStepImportLinkAvailable
  • application.IsMaterialLibraryAvailable
  • application.GetAllCloudRegions()

UIApplication extensions

  • uiApplication.AsControlledApplication()

Ribbon

  • pushButton.TryAddShortcuts(string)
  • pushButton.TryAddShortcuts(params IEnumerable<string>)

Document

  • document.Version
  • document.IsValidVersionGuid(Guid)
  • document.CheckAllFamilies(out ISet<ElementId>)
  • document.CheckAllFamiliesSlow(out ISet<ElementId>)

Global parameters

  • document.AreGlobalParametersAllowed
  • document.FindGlobalParameter(string)
  • document.GetAllGlobalParameters()
  • document.GetGlobalParametersOrdered()
  • document.SortGlobalParameters(ParametersOrder)
  • document.IsUniqueGlobalParameterName(string)
  • globalParameter.MoveUpOrder()
  • globalParameter.MoveDownOrder()
  • elementId.IsValidGlobalParameter(Document)
  • elementId.MoveGlobalParameterUpOrder(Document)
  • elementId.MoveGlobalParameterDownOrder(Document)

Managers and services

  • document.GetTemporaryGraphicsManager()
  • document.GetAnalyticalToPhysicalAssociationManager()
  • document.GetLightGroupManager()
  • view.CreateSpatialFieldManager(int)
  • view.GetSpatialFieldManager()

Parameters

  • parameter.IsBuiltInParameter

BuiltInParameter

  • builtInParameter.ToParameter(Document)
  • builtInParameter.ToElementId()
  • builtInParameter.GetParameterTypeId()
  • elementId.IsParameter(BuiltInParameter)

Filtering

  • element.IsParameterApplicable(ElementId)
  • element.IsParameterApplicable(Parameter)
  • categories.RemoveUnfilterableCategories()
  • ParameterFilterElement.GetAllFilterableCategories()
  • ParameterFilterElement.GetFilterableParametersInCommon(Document, ICollection<ElementId>)
  • ParameterFilterElement.GetInapplicableParameters(Document, ICollection<ElementId>, IList<ElementId>)

Category

BuiltInCategory

  • builtInCategory.ToCategory(Document)
  • builtInCategory.ToElementId()
  • elementId.IsCategory(BuiltInCategory)

Geometry

Bounding box

  • boundingBox.Contains(XYZ)
  • boundingBox.Contains(XYZ, bool)
  • boundingBox.Contains(BoundingBoxXYZ)
  • boundingBox.Contains(BoundingBoxXYZ, bool)
  • boundingBox.Overlaps(BoundingBoxXYZ)

Curve

  • curveElement.GetHostFace()
  • curveElement.GetProjectionType()
  • curveElement.SetProjectionType(CurveProjectionType)
  • curveElement.GetSketchOnSurface()
  • curveElement.SetSketchOnSurface(bool)
  • reference.GetFaceRegions(Document)
  • CurveElement.CreateArcThroughPoints(Document, ReferencePoint, ReferencePoint, ReferencePoint)
  • CurveElement.AddCurvesToFaceRegion(Document, IList<ElementId>)
  • CurveElement.CreateRectangle(Document, ReferencePoint, ReferencePoint, CurveProjectionType, bool, bool, out IList<ElementId>, out IList<ElementId>)
  • CurveElement.ValidateForFaceRegions(Document, IList<ElementId>)
  • CurveLoop.IsValidHorizontalBoundary(IList<CurveLoop>)
  • CurveLoop.IsValidBoundaryOnSketchPlane(SketchPlane, IList<CurveLoop>)
  • CurveLoop.IsValidBoundaryOnView(Document, ElementId, IList<CurveLoop>)

Solid

  • geometry.IsNonSolid
  • geometry.IsSolid
  • geometry.LacksSubnodes
  • solid.ComputeIsGeometricallyClosed()
  • solid.ComputeIsTopologicallyClosed()
  • solid.CutWithHalfSpace(Plane)
  • solid.CutWithHalfSpaceModifyingOriginalSolid(Plane)
  • solid.ExecuteBooleanOperation(Solid, BooleanOperationsType)
  • solid.ExecuteBooleanOperationModifyingOriginalSolid(Solid, BooleanOperationsType)
  • Solid.CreateBlendGeometry(CurveLoop, CurveLoop)
  • Solid.CreateBlendGeometry(CurveLoop, CurveLoop, ICollection<VertexPair>)
  • Solid.CreateBlendGeometry(CurveLoop, CurveLoop, ICollection<VertexPair>, SolidOptions)
  • Solid.CreateExtrusionGeometry(IList<CurveLoop>, XYZ, double)
  • Solid.CreateExtrusionGeometry(IList<CurveLoop>, XYZ, double, SolidOptions)
  • Solid.CreateRevolvedGeometry(Frame, IList<CurveLoop>, double, double)
  • Solid.CreateRevolvedGeometry(Frame, IList<CurveLoop>, double, double, SolidOptions)
  • Solid.CreateSweptGeometry(CurveLoop, int, double, IList<CurveLoop>)
  • Solid.CreateSweptGeometry(CurveLoop, int, double, IList<CurveLoop>, SolidOptions)
  • Solid.CreateSweptBlendGeometry(Curve, IList<double>, IList<CurveLoop>, IList<ICollection<VertexPair>>)
  • Solid.CreateSweptBlendGeometry(Curve, IList<double>, IList<CurveLoop>, IList<ICollection<VertexPair>>, SolidOptions)
  • Solid.CreateFixedReferenceSweptGeometry(CurveLoop, int, double, IList<CurveLoop>, XYZ)
  • Solid.CreateFixedReferenceSweptGeometry(CurveLoop, int, double, IList<CurveLoop>, XYZ, SolidOptions)
  • Solid.CreateLoftGeometry(IList<CurveLoop>, SolidOptions)

Tessellation

  • triangulation.ConvertTrianglesToQuads()
  • filter.GetFilteredOutline(Outline)

View

  • view.GetDrawOrderForDetails(ISet<ElementId>)
  • element.GetReferencedViewId()
  • element.ChangeReferencedView(ElementId)
  • elementId.GetReferencedViewId(Document)
  • elementId.ChangeReferencedView(Document, ElementId)

SSE point

  • category.GetSsePointVisibility(Document)
  • category.SetSsePointVisibility(Document, bool)

ForgeTypeId

  • typeId.IsBuiltInParameter
  • typeId.IsBuiltInGroup
  • typeId.IsSpec
  • typeId.IsValidDataType
  • typeId.IsSymbol
  • typeId.IsUnit
  • typeId.IsMeasurableSpec
  • typeId.IsValidUnit(ForgeTypeId)
  • typeId.GetBuiltInParameter()
  • typeId.GetDiscipline()
  • typeId.GetValidUnits()
  • typeId.GetTypeCatalogStringForSpec()
  • typeId.GetTypeCatalogStringForUnit()
  • typeId.DownloadCompanyName(Document)
  • typeId.DownloadCompanyName(Document, string)
  • typeId.DownloadParameterOptions()
  • typeId.DownloadParameterOptions(string)
  • typeId.DownloadParameter(Document, ParameterDownloadOptions)
  • typeId.DownloadParameter(Document, ParameterDownloadOptions, string)
  • ForgeTypeId.GetAllBuiltInParameters()
  • ForgeTypeId.GetAllBuiltInGroups()
  • ForgeTypeId.GetAllSpecs()
  • ForgeTypeId.GetAllMeasurableSpecs()
  • ForgeTypeId.GetAllDisciplines()
  • ForgeTypeId.GetAllUnits()

Label

  • typeId.ToLabel()
  • typeId.ToSpecLabel()
  • typeId.ToSymbolLabel()
  • typeId.ToUnitLabel()
  • typeId.ToGroupLabel()
  • typeId.ToParameterLabel()
  • failureSeverity.ToLabel()
  • structuralSectionShape.ToLabel()

FilteredElementCollector

  • document.CollectElements()
  • document.CollectElements(ElementId)
  • document.CollectElements(View)
  • document.CollectElements(ICollection<ElementId>)
  • collector.OfClass<T>()
  • collector.OfClasses(IList<Type>)
  • collector.OfClasses(params Type[])
  • collector.ExcludingClass<T>()
  • collector.ExcludingClasses(IList<Type>)
  • collector.ExcludingClasses(params Type[])
  • collector.OfCategories(ICollection<BuiltInCategory>)
  • collector.OfCategories(params BuiltInCategory[])
  • `collector.ExcludingCa...
Read more

2027.0.0-preview.3.20260319

19 Mar 18:19

Choose a tag to compare

Pre-release

This update focuses on improved API design through C# 14 extension methods syntax, .NET 10 support, Revit 2027 support, and covers all known Utils classes.

New Extensions

Element

  • element.CanBeDeleted
  • elementId.CanBeDeleted(Document)

Transformation

  • element.Copy(XYZ), Copy(double, double, double)
  • elementId.Copy(Document, XYZ), Copy(Document, double, double, double)
  • element.Mirror(Plane)
  • elementId.Mirror(Document, Plane)
  • element.Move(XYZ), Move(double, double, double)
  • elementId.Move(Document, XYZ), Move(Document, double, double, double)
  • element.Rotate(Line, double)
  • elementId.Rotate(Document, Line, double)
  • element.CanBeMirrored
  • elementId.CanBeMirrored(Document)
  • elementIds.CanBeMirrored(Document)
  • elementIds.MirrorElements(Document, Plane, bool)
  • elementIds.MoveElements(Document, XYZ)
  • elementIds.RotateElements(Document, Line, double)
  • elementIds.CopyElements(Document, XYZ)
  • elementIds.CopyElements(Document, Document)
  • elementIds.CopyElements(Document, Document, Transform, CopyPasteOptions)
  • elementIds.CopyElements(View, View)
  • elementIds.CopyElements(View, View, Transform, CopyPasteOptions)
  • view.GetTransformFromViewToView(View)

Joins and cuts

  • element.JoinGeometry(Element)
  • element.UnjoinGeometry(Element)
  • element.AreElementsJoined(Element)
  • element.GetJoinedElements()
  • element.SwitchJoinOrder(Element)
  • element.IsCuttingElementInJoin(Element)
  • element.CanBeCutWithVoid
  • element.GetCuttingVoidInstances()
  • element.AddInstanceVoidCut(FamilyInstance)
  • element.RemoveInstanceVoidCut(FamilyInstance)
  • element.InstanceVoidCutExists(FamilyInstance)
  • element.IsAllowedForSolidCut
  • element.IsElementFromAppropriateContext
  • element.GetCuttingSolids()
  • element.GetSolidsBeingCut()
  • element.CanElementCutElement(Element, out CutFailureReason)
  • element.CutExistsBetweenElements(Element, out bool)
  • element.AddCutBetweenSolids(Element)
  • element.AddCutBetweenSolids(Element, bool)
  • element.RemoveCutBetweenSolids(Element)
  • element.SplitFacesOfCuttingSolid(Element, bool)

Application extensions

  • application.AsControlledApplication()
  • application.IsDgnExportAvailable
  • application.IsDgnImportLinkAvailable
  • application.IsDwfExportAvailable
  • application.IsDwgExportAvailable
  • application.IsDwgImportLinkAvailable
  • application.IsDxfExportAvailable
  • application.IsFbxExportAvailable
  • application.IsGraphicsAvailable
  • application.IsIfcAvailable
  • application.IsNavisworksExporterAvailable
  • application.IsSatImportLinkAvailable
  • application.IsShapeImporterAvailable
  • application.IsSkpImportLinkAvailable
  • application.Is3DmImportLinkAvailable
  • application.IsAxmImportLinkAvailable
  • application.IsObjImportLinkAvailable
  • application.IsStlImportLinkAvailable
  • application.IsStepImportLinkAvailable
  • application.IsMaterialLibraryAvailable
  • application.GetAllCloudRegions()

UIApplication extensions

  • uiApplication.AsControlledApplication()

Ribbon

  • pushButton.TryAddShortcuts(string)
  • pushButton.TryAddShortcuts(params IEnumerable<string>)

Document

  • document.Version
  • document.IsValidVersionGuid(Guid)
  • document.CheckAllFamilies(out ISet<ElementId>)
  • document.CheckAllFamiliesSlow(out ISet<ElementId>)

Global parameters

  • document.AreGlobalParametersAllowed
  • document.FindGlobalParameter(string)
  • document.GetAllGlobalParameters()
  • document.GetGlobalParametersOrdered()
  • document.SortGlobalParameters(ParametersOrder)
  • document.IsUniqueGlobalParameterName(string)
  • globalParameter.MoveUpOrder()
  • globalParameter.MoveDownOrder()
  • elementId.IsValidGlobalParameter(Document)
  • elementId.MoveGlobalParameterUpOrder(Document)
  • elementId.MoveGlobalParameterDownOrder(Document)

Managers and services

  • document.GetTemporaryGraphicsManager()
  • document.GetAnalyticalToPhysicalAssociationManager()
  • document.GetLightGroupManager()
  • view.CreateSpatialFieldManager(int)
  • view.GetSpatialFieldManager()

Parameters

  • parameter.IsBuiltInParameter

BuiltInParameter

  • builtInParameter.ToParameter(Document)
  • builtInParameter.ToElementId()
  • builtInParameter.GetParameterTypeId()
  • elementId.IsParameter(BuiltInParameter)

Filtering

  • element.IsParameterApplicable(ElementId)
  • element.IsParameterApplicable(Parameter)
  • categories.RemoveUnfilterableCategories()
  • ParameterFilterElement.GetAllFilterableCategories()
  • ParameterFilterElement.GetFilterableParametersInCommon(Document, ICollection<ElementId>)
  • ParameterFilterElement.GetInapplicableParameters(Document, ICollection<ElementId>, IList<ElementId>)

Category

BuiltInCategory

  • builtInCategory.ToCategory(Document)
  • builtInCategory.ToElementId()
  • elementId.IsCategory(BuiltInCategory)

Geometry

Bounding box

  • boundingBox.Contains(XYZ)
  • boundingBox.Contains(XYZ, bool)
  • boundingBox.Contains(BoundingBoxXYZ)
  • boundingBox.Contains(BoundingBoxXYZ, bool)
  • boundingBox.Overlaps(BoundingBoxXYZ)

Curve

  • curveElement.GetHostFace()
  • curveElement.GetProjectionType()
  • curveElement.SetProjectionType(CurveProjectionType)
  • curveElement.GetSketchOnSurface()
  • curveElement.SetSketchOnSurface(bool)
  • reference.GetFaceRegions(Document)
  • CurveElement.CreateArcThroughPoints(Document, ReferencePoint, ReferencePoint, ReferencePoint)
  • CurveElement.AddCurvesToFaceRegion(Document, IList<ElementId>)
  • CurveElement.CreateRectangle(Document, ReferencePoint, ReferencePoint, CurveProjectionType, bool, bool, out IList<ElementId>, out IList<ElementId>)
  • CurveElement.ValidateForFaceRegions(Document, IList<ElementId>)
  • CurveLoop.IsValidHorizontalBoundary(IList<CurveLoop>)
  • CurveLoop.IsValidBoundaryOnSketchPlane(SketchPlane, IList<CurveLoop>)
  • CurveLoop.IsValidBoundaryOnView(Document, ElementId, IList<CurveLoop>)

Solid

  • geometry.IsNonSolid
  • geometry.IsSolid
  • geometry.LacksSubnodes
  • solid.CutWithHalfSpace(Plane)
  • solid.CutWithHalfSpaceModifyingOriginalSolid(Plane)
  • solid.ExecuteBooleanOperation(Solid, BooleanOperationsType)
  • solid.ExecuteBooleanOperationModifyingOriginalSolid(Solid, BooleanOperationsType)
  • Solid.CreateBlendGeometry(CurveLoop, CurveLoop)
  • Solid.CreateBlendGeometry(CurveLoop, CurveLoop, ICollection<VertexPair>)
  • Solid.CreateBlendGeometry(CurveLoop, CurveLoop, ICollection<VertexPair>, SolidOptions)
  • Solid.CreateExtrusionGeometry(IList<CurveLoop>, XYZ, double)
  • Solid.CreateExtrusionGeometry(IList<CurveLoop>, XYZ, double, SolidOptions)
  • Solid.CreateRevolvedGeometry(Frame, IList<CurveLoop>, double, double)
  • Solid.CreateRevolvedGeometry(Frame, IList<CurveLoop>, double, double, SolidOptions)
  • Solid.CreateSweptGeometry(CurveLoop, int, double, IList<CurveLoop>)
  • Solid.CreateSweptGeometry(CurveLoop, int, double, IList<CurveLoop>, SolidOptions)
  • Solid.CreateSweptBlendGeometry(Curve, IList<double>, IList<CurveLoop>, IList<ICollection<VertexPair>>)
  • Solid.CreateSweptBlendGeometry(Curve, IList<double>, IList<CurveLoop>, IList<ICollection<VertexPair>>, SolidOptions)
  • Solid.CreateFixedReferenceSweptGeometry(CurveLoop, int, double, IList<CurveLoop>, XYZ)
  • Solid.CreateFixedReferenceSweptGeometry(CurveLoop, int, double, IList<CurveLoop>, XYZ, SolidOptions)
  • Solid.CreateLoftGeometry(IList<CurveLoop>, SolidOptions)

Tessellation

  • triangulation.ConvertTrianglesToQuads()
  • filter.GetFilteredOutline(Outline)

View

  • view.GetDrawOrderForDetails(ISet<ElementId>)
  • element.GetReferencedViewId()
  • element.ChangeReferencedView(ElementId)
  • elementId.GetReferencedViewId(Document)
  • elementId.ChangeReferencedView(Document, ElementId)

SSE point

  • category.GetSsePointVisibility(Document)
  • category.SetSsePointVisibility(Document, bool)

ForgeTypeId

  • typeId.IsBuiltInParameter
  • typeId.IsBuiltInGroup
  • typeId.IsSpec
  • typeId.IsValidDataType
  • typeId.IsSymbol
  • typeId.IsUnit
  • typeId.IsMeasurableSpec
  • typeId.IsValidUnit(ForgeTypeId)
  • typeId.GetBuiltInParameter()
  • typeId.GetDiscipline()
  • typeId.GetValidUnits()
  • typeId.GetTypeCatalogStringForSpec()
  • typeId.GetTypeCatalogStringForUnit()
  • typeId.DownloadCompanyName(Document)
  • typeId.DownloadCompanyName(Document, string)
  • typeId.DownloadParameterOptions()
  • typeId.DownloadParameterOptions(string)
  • typeId.DownloadParameter(Document, ParameterDownloadOptions)
  • typeId.DownloadParameter(Document, ParameterDownloadOptions, string)
  • ForgeTypeId.GetAllBuiltInParameters()
  • ForgeTypeId.GetAllBuiltInGroups()

Label

  • typeId.ToLabel()
  • typeId.ToSpecLabel()
  • typeId.ToSymbolLabel()
  • typeId.ToUnitLabel()
  • typeId.ToGroupLabel()
  • typeId.ToParameterLabel()

Families and modeling

Family

  • family.CanBeConvertedToFaceHostBased
  • family.ConvertToFaceHostBased()
  • family.CheckIntegrity()
  • elementId.CanBeConvertedToFaceHostBased(Document)
  • elementId.ConvertToFaceHostBased(Document)
  • elementId.CheckFamilyIntegrity(Document)
  • Form.CanBeDissolved(Document, ICollection<ElementId>)
  • Form.DissolveForms(Document, ICollection<ElementId>)
  • Form.DissolveForms(Document, ICollection<ElementId>, out ICollection<ElementId>)

FamilySymbol

  • familySymbol.IsAdaptiveFamilySymbol
  • familySymbol.CreateAdaptiveComponentInstance()
  • familySymbol.SetStructuralSection(StructuralSection)
  • FamilySymbol.GetProfileSymbols(Document, ProfileFamilyUsage, bool)

FamilyInstance

  • familyInstance.IsVoidInstanceCuttingElement
  • `familyInstance.GetElementsBein...
Read more

2026.0.1

02 Apr 19:30

Choose a tag to compare

This update focuses on increased utility class coverage, new extensions for global parameter management, for ForgeTypeId handling, advanced geometry extensions, and many-many more.

New Extensions

Ribbon Extensions

  • AddStackPanel: Adds a vertical stack panel to the specified Ribbon panel.
  • AddPushButton: Adds a PushButton to the vertical stack panel.
  • AddPullDownButton: Adds a PullDownButton to the vertical stack panel.
  • AddSplitButton: Adds a SplitButton to the vertical stack panel.
  • AddComboBox: Adds a ComboBox to the vertical stack panel.
  • AddTextBox: Adds a TextBox to the vertical stack panel.
  • AddLabel: Adds a text label to the vertical stack panel.
    verticalStack
  • RemovePanel: Removes RibbonPanel from the Revit ribbon.
  • SetBackground: Sets the RibbonPanel background color.
  • SetTitleBarBackground: Sets the RibbonPanel title bar background color.
  • SetSlideOutPanelBackground: Sets the slide-out panel background color for the target RibbonPanel.
  • SetToolTip: Sets the tooltip text for the PushButton.
  • SetLongDescription: Sets the extended tooltip description for the RibbonItem.
  • CreatePanel: Now works with internal panels. Panel can be added to the Modify, View, Manage and other tabs.
  • SetImage: Support for Light and Dark UI themes.
  • SetLargeImage: Support for Light and Dark UI themes.
  • AddShortcuts: Adds keyboard shortcuts to the RibbonButton.

ElementId Extensions

  • ToElements: Retrieves a collection of Elements associated with the specified ElementIds.
  • ToElements: Retrieves a collection of Elements associated with the specified ElementIds as the specified type T.
  • ToOrderedElements: Retrieves the Elements associated with the specified ElementIds in their original order.
  • ToOrderedElements: Retrieves the Elements associated with the specified ElementIds and casts them to the specified type T in their original order.

ElementId Transform Extensions

  • CanMirrorElements: Verifies whether a set of elements can be mirrored.
  • MirrorElements: Mirrors elements across a plane, with support for mirrored copies.
  • MoveElements: Moves elements according to a specified transformation.
  • RotateElements: Rotates elements around a given axis by a specified angle.
  • CopyElements: Copies elements between views or within the same document, with options for translation and transformation.

Geometry Extensions

  • Contains: Determines if a point or another bounding box is contained within the bounding box, with strict mode available for more precise containment checks.
  • Overlaps: Checks whether two bounding boxes overlap.
  • ComputeCentroid: Calculates the geometric center of a bounding box.
  • ComputeVertices: Returns the coordinates of the eight vertices of a bounding box.
  • ComputeVolume: Computes the volume enclosed by the bounding box.
  • ComputeSurfaceArea: Calculates the total surface area of the bounding box.

Parameters Extensions

  • IsBuiltInParameter: Verifies if a parameter is a built-in parameter.

Document Global Parameters Extensions

  • FindGlobalParameter: Locates a global parameter by name in the document.
  • GetAllGlobalParameters: Returns all global parameters in the document.
  • GetGlobalParametersOrdered: Retrieves ordered global parameters.
  • SortGlobalParameters: Sorts global parameters in the specified order.
  • MoveUpOrder: Moves a global parameter up in the order.
  • MoveDownOrder: Moves a global parameter down in the order.
  • IsUniqueGlobalParameterName: Checks if a global parameter name is unique.
  • IsValidGlobalParameter: Validates if an ElementId is a global parameter.
  • AreGlobalParametersAllowed: Checks if global parameters are permitted in the document.

Element Association Extensions

  • IsAnalyticalElement: Determines whether an element is an analytical element.
  • IsPhysicalElement: Checks if an element is a physical one.

Element Validation Extensions

  • CanDeleteElement: Indicates if an element can be deleted.

Element Worksharing Extensions

  • GetCheckoutStatus: Retrieves the ownership status of an element, with an optional parameter to return the owner's name.
  • GetWorksharingTooltipInfo: Provides worksharing information about an element for in-canvas tooltips.
  • GetModelUpdatesStatus: Gets the status of an element in the central model.

Document Extensions

  • GetProfileSymbols: Returns profile family symbols in the document.
  • RelinquishOwnership: Allows relinquishment of ownership based on specified options.

Document Managers Extensions

  • GetTemporaryGraphicsManager: Fetches a reference to the document’s temporary graphics manager.
  • GetAnalyticalToPhysicalAssociationManager: Retrieves the manager for analytical-to-physical element associations.
  • GetLightGroupManager: Creates or retrieves the light group manager for the document.

ForgeTypeId Extensions

  • IsSpec: Validates if a ForgeTypeId identifies a spec.
  • IsBuiltInGroup: Determines whether a ForgeTypeId identifies a built-in parameter group.
  • IsBuiltInParameter: Validates if a ForgeTypeId identifies a built-in parameter.
  • IsSymbol: Checks if a ForgeTypeId identifies a symbol.
  • IsUnit: Verifies if a ForgeTypeId identifies a unit.
  • IsValidDataType: Determines if a ForgeTypeId identifies a valid parameter data type.
  • IsValidUnit: Validates if a unit is valid for a measurable spec.
  • IsMeasurableSpec: Checks if a ForgeTypeId represents a measurable spec.
  • GetBuiltInParameter: Retrieves a BuiltInParameter from a ForgeTypeId.
  • GetParameterTypeId: Fetches the ForgeTypeId corresponding to a BuiltInParameter.
  • GetDiscipline: Gets the discipline for a measurable spec.
  • GetValidUnits: Retrieves all valid units for a measurable spec.
  • GetTypeCatalogStringForSpec: Fetches the type catalog string for a measurable spec.
  • GetTypeCatalogStringForUnit: Retrieves the type catalog string for a unit.
  • DownloadCompanyName: Downloads the owning company name for a parameter and records it in the document.
  • DownloadParameterOptions: Fetches settings related to a parameter from the Parameters Service.
  • DownloadParameter: Creates a shared parameter element in a document based on a downloaded parameter definition.

Color Extensions

  • ToHex: Converts a color to its hexadecimal representation.
  • ToHexInteger: Returns the hexadecimal integer representation of a color.
  • ToRgb: Provides the RGB representation of a color.
  • ToHsl: Converts a color to its HSL representation.
  • ToHsv: Converts a color to its HSV representation.
  • ToCmyk: Retrieves the CMYK representation of a color.
  • ToHsb: Converts a color to HSB.
  • ToHsi: Converts a color to HSI format.
  • ToHwb: Provides the HWB representation of a color.
  • ToNCol: Converts a color to NCol format.
  • ToCielab: Retrieves the Cielab representation of a color.
  • ToCieXyz: Converts a color to CieXyz format.
  • ToFloat: Returns the float representation of a color.
  • ToDecimal: Returns the decimal representation of a color.

Family Extensions

  • CanConvertToFaceHostBased: Indicates whether a family can be converted to a face-hosted version.
  • ConvertToFaceHostBased: Converts a family to be face-host based.

Plumbing Extensions

  • ConnectPipePlaceholdersAtElbow: Connects pipe placeholders that form an elbow connection.
  • ConnectPipePlaceholdersAtTee: Connects pipe placeholders to form a Tee connection.
  • ConnectPipePlaceholdersAtCross: Connects pipe placeholders to form a Cross connection.
  • PlaceCapOnOpenEnds: Places caps on open pipe connectors.
  • HasOpenConnector: Checks if a pipe curve has an open piping connector.
  • BreakCurve: Splits a pipe curve at a specified point.

Element Solid Cut Extensions

  • GetCuttingSolids: Retrieves solids that cut a given element.
  • GetSolidsBeingCut: Returns solids that are cut by the given element.
  • IsAllowedForSolidCut: Verifies if the element can be involved in a solid-solid cut.
  • IsElementFromAppropriateContext: Checks if the element belongs to a suitable context for solid cuts.
  • CanElementCutElement: Determines whether a cutting element can create a solid cut on a target element.
  • CutExistsBetweenElements: Checks if there is an existing solid-solid cut between two elements.
  • AddCutBetweenSolids: Adds a solid-solid cut between two elements.
  • RemoveCutBetweenSolids: Removes an existing solid cut between two elements.
  • SplitFacesOfCuttingSolid: Splits the faces of a cutting solid element.

View Extensions

  • GetTransformFromViewToView: Returns a transformation to copy elements between two views.

View Managers Extensions

  • CreateSpatialFieldManager: Creates a SpatialField manager for a given view.
  • GetSpatialFieldManager: Retrieves the SpatialField manager for a specific view.

Breaking changes

  • ToFraction: Now uses "8" precision, instead of "32".
  • ToFraction: Now suppress "0" for inches part.
  • SetAvailabilityController: Now returns PushButton instead of RibbonButton.

Readme has been updated, you can find a detailed description and code samples in it.

Full changelog: 2025.0.0...2026.0.1

2025.0.0

02 Apr 11:31

Choose a tag to compare

  • Revit 2025 support
  • New FindParameter() overloads with GUID and Definition. This method combines all API methods for getting a parameter, such as get_Parameter, LookupParameter, GetParameter. It also searches for a parameter in the element type if there is no such parameter in the element
  • GetParameter() method is obsolete. Use FindParameter() instead
  • New extensions to help you add context menu items without creating additional classes or specifying type names. Revit 2025 and higher

The ConfigureContextMenu() method registers an action used to configure a Context menu.

application.ConfigureContextMenu(menu =>
{
    menu.AddMenuItem<Command>("Menu title");
    menu.AddMenuItem<Command>("Menu title")
        .SetAvailabilityController<Controller>()
        .SetToolTip("Description");
});

You can also specify your own context menu title. By default, Revit uses the Application name

application.ConfigureContextMenu("Title", menu =>
{
    menu.AddMenuItem<Command>("Menu title");
});

The AddMenuItem() method adds a menu item to the Context Menu.

menu.AddMenuItem<Command>("Menu title");

The AddSeparator() method adds a separator to the Context Menu.

menu.AddSeparator();

The AddSubMenu() method adds a sub menu to the Context Menu.

var subMenu = new ContextMenu();
subMenu.AddMenuItem<Command>("Menu title");
subMenu.AddMenuItem<Command>("Menu title");

menu.AddSubMenu("Sub menu title", subMenu);

The SetAvailabilityController() method specifies the class type that decides the availability of menu item.

menuItem.SetAvailabilityController<Controller>()

Full changelog: 2024.0.0...2025.0.0

2024.0.0

04 Apr 08:28

Choose a tag to compare

Revit 2024 support

2023.1.9

17 Nov 13:23

Choose a tag to compare

ElementExtensions:

  • Method chain support

ElementIdExtensions:

  • Fixed cast operations. Directly cast used by default (safe cast early)

SchemaExtensions:

  • SaveEntity now return bool if the entity save was successful

SystemExtensions:

  • AppendPath overload with params

2023.1.8

10 Oct 09:58

Choose a tag to compare

UnitExtensions:

  • New FromUnit extension
  • New ToUnit extension

2023.1.7

10 Sep 16:27

Choose a tag to compare

RibbonExtensions:

  • New SetAvailabilityController() extension

ParameterExtensions:

  • New Set(bool) extension
  • New Set(color) extension

Nuget symbol server support: https://symbols.nuget.org/download/symbols

2023.1.6

09 Aug 08:25

Choose a tag to compare

CollectorExtensions:

  • New GetElements(ElementId viewId) extension
  • New GetElements(ICollection elementIds) extension
  • New overloads for instances with ViewId

2023.1.5

04 Aug 14:31

Choose a tag to compare

New Parameter extensions

Fixed GetParameter extensions for cases where the parameter value was not initialized