Regenerate Method


Updates the elements in the Revit document to reflect all changes.

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

Syntax

C#
public void Regenerate()
Visual Basic
Public Sub Regenerate
Visual C++
public:
void Regenerate()

Remarks

Use this method to force update to the document after a group of changes. Note that when a transaction is committed there is an automatic call to regenerate the document.

Examples

Copy C#
FamilyInstance instance = doc.Create.NewFamilyInstance(new XYZ(15, 20, 0), familySymbol, StructuralType.NonStructural);
FamilyInstance instance2 = doc.Create.NewFamilyInstance(new XYZ(25, 30, 0), familySymbol, StructuralType.NonStructural);
// faster to create multiple instances without calling Regenerate after each one

LocationPoint point = instance.Location as LocationPoint;
// this data is incorrect because the new geometry has not yet been regenerated

doc.Regenerate();
point = instance.Location as LocationPoint;
// now it is correct
Copy VB.NET
Dim instance As FamilyInstance = doc.Create.NewFamilyInstance(New XYZ(15, 20, 0), familySymbol, StructuralType.NonStructural)
Dim instance2 As FamilyInstance = doc.Create.NewFamilyInstance(New XYZ(25, 30, 0), familySymbol, StructuralType.NonStructural)
' faster to create multiple instances without calling Regenerate after each one


Dim point As LocationPoint = TryCast(instance.Location, LocationPoint)
' this data is incorrect because the new geometry has not yet been regenerated


doc.Regenerate()
point = TryCast(instance.Location, LocationPoint)
' now it is correct

Exceptions

Exception Condition
Autodesk.Revit.Exceptions RegenerationFailedException Thrown when the operation fails.
  • If regeneration fails, there is posted error of severity DocumentCorruption that will be delivered to the end user at the end of transaction explaining what specifically has happened.
  • If regeneration has failed, document is corrupted and even reading from it is illegal.
  • Code that called regeneration and got this exception should not catch and ignore it - instead, it should do nothing but internal cleanup and return control to the owner of currently active transaction/subtransaction, which must be aborted.
Autodesk.Revit.Exceptions InvalidOperationException Modification of the document is forbidden. Typically, this is because there is no open transaction; consult documentation for Document.IsModified for other possible causes.

See Also

ArchiLabs

Stop fighting Revit automation.

Build repeatable BIM design and documentation workflows with scripts, data, and AI in one place, without wrestling brittle one-off automations.

Try ArchiLabs →