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

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 →