Writing Variables can be used to change the structure of an AddressSpace. A Server may, for example, have a Variable “NumberOfSubmodules” and an Object for each submodule. If the Variable is written, either Objects are added (if the number increases) or removed (if the number decreases). This approach is limited and has the issue that it is not clear which Nodes to delete (which submodule in the example) and does not provide a configuration for new added Nodes (new submodules), so they need to be created with some default values and may need to be changed afterwards. Therefore, in general it is not recommended to use this approach.
However, as a special case a server may expose the elements of an array as subvariables. In this case, writing the array may lead to the creation or deletion of subvariables. OPC 10000-5 uses the ModellingRule “ExposesItsArray” in the diagnostics information for this approach. Servers may also use the “HasStructuredComponent” References to expose the entries of an array as subvariables. The slight differences of both approaches are described in 7.6 and OPC 10000-3.