# IOpcWriteNodesService Interface

> Reference: Defines a specialized IOpcService<TResponse, TRequest> which can be used to write values to one or more attributes (see OpcAttribute) of one or more nodes.

<dl class="api-definition">
<dt>Namespace</dt>
<dd><a href="../namespaces/opc.uafx.services">Opc.UaFx.Services</a></dd>
<dt>Assembly</dt>
<dd>Opc.UaFx.Advanced.dll</dd>
<dt>Package</dt>
<dd>Opc.UaFx.Advanced v2.59.0</dd>
<dt>Members</dt>
<dd><a href="./members">IOpcWriteNodesService Members</a></dd>
<dt>Also in</dt>
<dd>Opc.UaFx.Client</dd>
</dl>

Defines a specialized [IOpcService&lt;TResponse, TRequest&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.services.iopcservice-2/) which can be used to write values to one or more attributes (see [OpcAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/)) of one or more nodes.

## Syntax

<div class="api-signature" data-lang="csharp">

```csharp
public interface IOpcWriteNodesService
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
<CLSCompliant(False)>
Public Interface IOpcWriteNodesService
```

</div>

## Base interfaces

<ul class="api-implements">
<li><a href="../opc.uafx.services.iopcservice-2/">IOpcService</a>&lt;<a href="../opc.uafx.services.opcwritenodesresponse/">OpcWriteNodesResponse</a>, <a href="../opc.uafx.services.opcwritenodesrequest/">OpcWriteNodesRequest</a>&gt;</li>
</ul>

## Derived types

- [OpcClient](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/)

## Remarks

The values are written to a data source, such as a device. The service does not return until it writes the values or determines that the value cannot be written.

It is possible that the server may successfully write some attributes, but not others. In this case is the client responsible for any rollback operations.

## Properties

| Name | Description |
|---|---|
| [MaxNodesPerWrite](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.services.iopcwritenodesservice/members#maxnodesperwrite)<span class="api-meta">since v2.9</span> | Gets or sets the maximum number of nodes which shall be written using a single write request. |
| [TimestampSource](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.services.iopcwritenodesservice/members#timestampsource) | Gets or sets the [OpcTimestampSource](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opctimestampsource/) to use to prepare [OpcValue](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvalue/) timestamp values before sending a write request to a server. |
| [UsedMaxNodesPerWrite](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.services.iopcwritenodesservice/members#usedmaxnodesperwrite)<span class="api-meta">since v2.9</span> | Gets the maximum number of nodes which are written using a single write request. |
| [UsedTimestampSource](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.services.iopcwritenodesservice/members#usedtimestampsource) | Gets the [OpcTimestampSource](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opctimestampsource/) currently used to prepare [OpcValue](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvalue/) timestamp values before sending a write request to a server. |

## Methods

| Name | Description |
|---|---|
| [WriteNodes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.services.iopcwritenodesservice/members#writenodes)<span class="api-meta">2 overloads</span> | Writes one or more values to one or more attributes of one or more nodes using the specified `commands`. |

Inherits members from [IOpcService&lt;OpcWriteNodesResponse, OpcWriteNodesRequest&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.services.iopcservice-2/members).

## Applies to

| Package | Versions |
|---|---|
| Opc.UaFx.Advanced | v2.5–v2.59 |
