# User Interface
Most of our connectors share the same UI (also called Desktop UI), this section goes to describe how to use it.
# A Quick Tour
The home page of the Desktop UI is where you can see all the streams you have in your currently open file. The streams are represented as cards on the home page and can be either Senders or Receivers. At the bottom right of the window is a big blue button which is how you add new streams to your current file.
Senders and Receivers both have three buttons across the bottom. The leftmost one is the branch switching and creation button and the rightmost one is the Send/Receive button. On a Receiver, the centre button allows you to choose which commit you would like to receive. On a Sender, the centre button lets you add objects from your model to the stream.
Clicking on a stream card will take you to the details page. Here you can edit the stream's name or description, manage collaborators, or remove it from the connector.
# Sending Data
# Creating a Stream
Let's look at how you would create a new stream and send some data. The big blue button on the bottom right is how you get started. Clicking it opens a popup where you can select a recently used stream, search for an existing stream, or create a brand new one. Once your stream has been created, you can click on it to get more details. You can also edit the name and description or add collaborators to your stream.
# Adding Objects
The simplest way to add objects to a stream is by selecting what you want in the file, clicking the centre selection button, and choosing the "Set Selection" option. However, you can also get more granular control of your object selection by diving into the filter options.
By clicking on (1) an additional view will show, wich will let you filter the model elements with custom filters. This view is different in every connector and is based on top of what the host application can offer in terms of selection. Here's an example of the options available in Revit:
By clicking on any of the (2) buttons instead, the elements are added/removed based on the current selection in the model.
# Sending to Speckle
When you're ready to send your data to your stream, hit that big blue "Send" button. Pro tip: if you want to add a commit message, click the three dots menu next to the send button first.
Here's a recap in the form of a snappy gif:
# Receiving Data
Speckle allows you to send and receive from the same stream. To switch a Sender to a Receiver, just click the double arrow button on the top right hand corner of the stream card.
On a Receiver, you get a new button which lets you control which commit you want to receive. You can either choose to stay up to date with the latest commit or stick to a specific commit. Just press the Commit button and select your desired option. If you choose to stay on the "latest" commit, you won't be updated automatically. You'll see a notification that things have changed and you will be prompted to click the "Receive" button to sync up.
On a Receiver card, receiving is as easy as pressing the blue "Receive" button. If you've never received the data before, the connector will fetch all the objects from your Speckle server. If you have already received some of the objects before, the process will be quicker as the objects will be fetched from your local cache.