View Set |
Sets the worksharing display mode for this view.
Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)

Parameters
- displayMode WorksharingDisplayMode
- The desired display mode. "Off" will turn off all worksharing display modes.

Exception | Condition |
---|---|
ArgumentException | This View does not support the requested worksharing display mode. |
ArgumentOutOfRangeException | A value passed for an enumeration argument is not a member of that enumeration |

Turning on a worksharing display mode will disable other temporary view modes such as reveal hidden elements and temporary hide/isolate.

public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
View activeView = commandData.View;
Document doc = activeView.Document;
// Prepare settings
Color red = new Color(0xFF, 0x00, 0x00);
WorksharingDisplayGraphicSettings settingsToApply = new WorksharingDisplayGraphicSettings(true, red);
// Toggle mode based on the current mode
using (Transaction t = new Transaction(doc, "Toggle display mode"))
{
t.Start();
WorksharingDisplaySettings settings = WorksharingDisplaySettings.GetOrCreateWorksharingDisplaySettings(doc);
switch (activeView.GetWorksharingDisplayMode())
{
case WorksharingDisplayMode.Off:
activeView.SetWorksharingDisplayMode(WorksharingDisplayMode.CheckoutStatus);
settings.SetGraphicOverrides(CheckoutStatus.OwnedByOtherUser, settingsToApply);
break;
case WorksharingDisplayMode.CheckoutStatus:
activeView.SetWorksharingDisplayMode(WorksharingDisplayMode.ModelUpdates);
settings.SetGraphicOverrides(ModelUpdatesStatus.UpdatedInCentral, settingsToApply);
break;
case WorksharingDisplayMode.ModelUpdates:
activeView.SetWorksharingDisplayMode(WorksharingDisplayMode.Owners);
settings.SetGraphicOverrides("Target user", settingsToApply);
break;
case WorksharingDisplayMode.Owners:
activeView.SetWorksharingDisplayMode(WorksharingDisplayMode.Worksets);
settings.SetGraphicOverrides(doc.GetWorksetTable().GetActiveWorksetId(), settingsToApply);
break;
case WorksharingDisplayMode.Worksets:
activeView.SetWorksharingDisplayMode(WorksharingDisplayMode.Off);
break;
}
t.Commit();
}
return Result.Succeeded;
}
