client.Version to list versions on a model, read referencedObject for Receive2, or create a version after Send2 so data appears in the Speckle UI.
Guide: Build your first model analysis tool loads the latest version · Full send/receive tour shows publish after send
After
SendPipeline (connectors only), the server creates the version asynchronously — do not
call Version.Create on that path.Methods
Task<Version> Get(string versionId, string projectId, CancellationToken cancellationToken = default)
Retrieves a version by id.
Task<ResourceCollection<Version>> GetVersions(string modelId, string projectId, int limit = 25, string? cursor = null, ModelVersionsFilter? filter = null, CancellationToken cancellationToken = default)
Lists versions of a model.
Task<Version> Create(CreateVersionInput input, CancellationToken cancellationToken = default)
Creates a version pointing at an already-sent object.
CreateVersionInput(string objectId, string modelId, string projectId, string? message = null, string? sourceApplication = ".net", int? totalChildrenCount = null, IReadOnlyList<string>? parents = null).Task<Version> Update(UpdateVersionInput input, CancellationToken cancellationToken = default)
Updates a version’s message.
Task<string> MoveToModel(MoveVersionsInput input, CancellationToken cancellationToken = default)
Moves one or more versions to a different model. Returns the target model id.
MoveVersionsInput(string projectId, string targetModelName, IReadOnlyList<string> versionIds) — note targetModelName takes the destination model’s name, not its id.Task Delete(DeleteVersionsInput input, CancellationToken cancellationToken = default)
Deletes one or more versions.
Task Received(MarkReceivedVersionInput input, CancellationToken cancellationToken = default)
Marks a version as received by the current application, for telemetry/analytics purposes.
Usage
Example
Sending with
Send or Send2 does not create a version by itself — follow up with
client.Version.Create to publish data to a model’s history and viewer. The
SendPipeline path is different:
after WaitForUpload, the server creates the version asynchronously — do not call
Version.Create on that pathway.FAQ
What objectId do I pass to Create?
What objectId do I pass to Create?
For
Send and Send2, pass the id returned by the send operation — not a value from
Base.GetId(), which is obsolete and may not match every send path. For SendPipeline, do
not call Version.Create — the server creates the version after upload. See Publish large
models (connectors).How do I receive the data behind a version?
How do I receive the data behind a version?
Call
client.Version.Get to read referencedObject, then IOperations.Receive2 with that id.
See Build your first model analysis
tool.Next Steps
Core concepts
Orphaned objects and version lifecycle
Build your first model analysis tool
Load latest version with Receive2
Operations API
Send and Send2 entry points