Skip to content

View.SetWorksharingDisplayMode

Public Class

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)

Syntax

public void SetWorksharingDisplayMode(
WorksharingDisplayMode displayMode
)

Parameters

displayMode WorksharingDisplayMode

The desired display mode. “Off” will turn off all worksharing display modes.

Exceptions

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


Remarks

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

Example

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;
}