View.SetWorksharingDisplayMode Method

ViewSetWorksharingDisplayMode 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
)
Public Sub SetWorksharingDisplayMode ( 
	displayMode As WorksharingDisplayMode
)
public:
void SetWorksharingDisplayMode(
	WorksharingDisplayMode displayMode
)
member SetWorksharingDisplayMode : 
        displayMode : WorksharingDisplayMode -> unit 

Parameters

displayMode  WorksharingDisplayMode
The desired display mode. "Off" will turn off all worksharing display modes.
Exceptions
ExceptionCondition
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;
}
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

No code example is currently available or this language may not be supported.

No code example is currently available or this language may not be supported.

See Also