SetWorksharingDisplayMode Method


Sets the worksharing display mode for this view.

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

Syntax

C#
public void SetWorksharingDisplayMode(
	WorksharingDisplayMode displayMode
)
Visual Basic
Public Sub SetWorksharingDisplayMode ( _
	displayMode As WorksharingDisplayMode _
)
Visual C++
public:
void SetWorksharingDisplayMode(
	WorksharingDisplayMode displayMode
)

Parameters

displayMode
Type: Autodesk.Revit.DB WorksharingDisplayMode
The desired display mode. "Off" will turn off all worksharing display modes.

Remarks

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

Examples

Copy C#
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;
}
Copy VB.NET
Public Function Execute(commandData As ExternalCommandData, ByRef message As String, elements As ElementSet) As Result Implements IExternalCommand.Execute
    Dim activeView As View = commandData.View
    Dim doc As Document = activeView.Document

    ' Prepare settings
    Dim red As New Color(&HFF, &H0, &H0)
    Dim settingsToApply As New WorksharingDisplayGraphicSettings(True, red)

    ' Toggle mode based on the current mode
    Using t As New Transaction(doc, "Toggle display mode")
        t.Start()

        Dim settings As WorksharingDisplaySettings = WorksharingDisplaySettings.GetOrCreateWorksharingDisplaySettings(doc)

        Select Case activeView.GetWorksharingDisplayMode()
            Case WorksharingDisplayMode.Off
                activeView.SetWorksharingDisplayMode(WorksharingDisplayMode.CheckoutStatus)
                settings.SetGraphicOverrides(CheckoutStatus.OwnedByOtherUser, settingsToApply)
                Exit Select
            Case WorksharingDisplayMode.CheckoutStatus
                activeView.SetWorksharingDisplayMode(WorksharingDisplayMode.ModelUpdates)
                settings.SetGraphicOverrides(ModelUpdatesStatus.UpdatedInCentral, settingsToApply)
                Exit Select
            Case WorksharingDisplayMode.ModelUpdates
                activeView.SetWorksharingDisplayMode(WorksharingDisplayMode.Owners)
                settings.SetGraphicOverrides("Target user", settingsToApply)
                Exit Select
            Case WorksharingDisplayMode.Owners
                activeView.SetWorksharingDisplayMode(WorksharingDisplayMode.Worksets)
                settings.SetGraphicOverrides(doc.GetWorksetTable().GetActiveWorksetId(), settingsToApply)
                Exit Select
            Case WorksharingDisplayMode.Worksets
                activeView.SetWorksharingDisplayMode(WorksharingDisplayMode.Off)
                Exit Select
        End Select

        t.Commit()
    End Using

    Return Result.Succeeded
End Function

Exceptions

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

See Also