SetWorksharingDisplayMode Method


View Set Worksharing Display Mode Method

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;
}
See Also
ArchiLabs Desktop

Put AI to work inside Revit.

Give Desktop your instructions and project files to build Revit families, update model elements, and create views and schedules. Works directly in Revit and AutoCAD.

Explore Desktop →