Checkout |
The CheckoutElementsRequestTooLargeException type exposes the following members.
| Name | Description | |
|---|---|---|
| Data | Gets a collection of key/value pairs that provide additional user-defined information about the exception. (Inherited from Exception) | |
| FunctionId | The information of the function throwing the exception. (Inherited from ApplicationException) | |
| HelpLink | Gets or sets a link to the help file associated with this exception. (Inherited from Exception) | |
| HResult | Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception. (Inherited from Exception) | |
| InnerException | Gets the Exception instance that caused the current exception. (Inherited from Exception) | |
| Message | Gets a message that describes the current exception. (Inherited from Exception) | |
| Source | Gets or sets the name of the application or the object that causes the error. (Inherited from Exception) | |
| StackTrace | Gets a string representation of the immediate frames on the call stack. (Inherited from Exception) | |
| TargetSite | Gets the method that throws the current exception. (Inherited from Exception) |
| Name | Description | |
|---|---|---|
| Equals | Determines whether the specified object is equal to the current object. (Inherited from Object) | |
| GetBaseException | When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions. (Inherited from Exception) | |
| GetHashCode | Serves as the default hash function. (Inherited from Object) | |
| GetObjectData | Retrieves data needed to serialize the target object. (Overrides CentralModelExceptionGetObjectData(SerializationInfo, StreamingContext)) | |
| GetType | Gets the runtime type of the current instance. (Inherited from Exception) | |
| ToString | Creates and returns a string representation of the current exception. (Inherited from Exception) |
void HandleCheckoutElementsRequestTooLargeException(Document doc) { FilteredElementCollector collector = new FilteredElementCollector(doc); ICollection<ElementId> rooms = collector.WherePasses(new RoomFilter()).ToElementIds(); try { ICollection<ElementId> checkoutelements = WorksharingUtils.CheckoutElements(doc, rooms); } catch (Autodesk.Revit.Exceptions.CheckoutElementsRequestTooLargeException) { IEnumerable<WorksetId> worksets = rooms.Select(elemId => doc.GetWorksetId(elemId)).Distinct(); TaskDialog dlg = new TaskDialog("Elements can't be checked out") { MainInstruction = $"You are trying to check out a large number of elements. Instead check out the following {worksets.Count()} worksets:", MainContent = string.Join(", ", worksets), }; dlg.Show(); TransactWithCentralOptions twcOptions = new TransactWithCentralOptions(); ISet<WorksetId> worksetsCheckedout = WorksharingUtils.CheckoutWorksets(doc, worksets.ToHashSet(), twcOptions); TaskDialog.Show( title: "Worksets are checked out", mainInstruction: $"{worksetsCheckedout.Count} worksets are checked out."); } }