A method for updating a virtual, three-dimensional, 3D model of a structure or environment using a portable modelling system that can be located within the structure or environment to be modelled, the modelling system comprising: at least one processor , a communications system , data storage and a digital camera comprising at least one imaging system ; the method comprising: partitioning, at a server , a three-dimensional, 3D, model of the structure or environment into a plurality of parts or storing the 3D model at the server as a plurality of parts , wherein at least some of each part is non-overlapping with the other parts ; transferring a part of the 3D model that is intended to be updated but not all of the 3D model of the structure or environment that is stored on an external data store of the server from the external data store to the data storage of the portable modelling system using the communications system ; using the at least one imaging system of the portable modelling system to collect at least one image of the structure or environment; determining or collecting depth information for the structure or environment; using the at least one processor of the portable modelling system , updating the part of the 3D model in the data storage of the portable modelling system with the at least one image and the depth information to form an updated part of the 3D model in the data storage of the portable modelling system ; and transferring the updated part of the 3D model or the changes between the part of the 3D model most recently received from the external data store and the updated part of the 3D model from the data storage of the portable modelling system back to the external data store of the server , and the server replaces the corresponding previous part of the 3D model with the updated part of the model to produce an updated overall 3D model . partitioning, at a server , a three-dimensional, 3D, model of the structure or environment into a plurality of parts or storing the 3D model at the server as a plurality of parts , wherein at least some of each part is non-overlapping with the other parts ; transferring a part of the 3D model that is intended to be updated but not all of the 3D model of the structure or environment that is stored on an external data store of the server from the external data store to the data storage of the portable modelling system using the communications system ; using the at least one imaging system of the portable modelling system to collect at least one image of the structure or environment; determining or collecting depth information for the structure or environment; using the at least one processor of the portable modelling system , updating the part of the 3D model in the data storage of the portable modelling system with the at least one image and the depth information to form an updated part of the 3D model in the data storage of the portable modelling system ; and transferring the updated part of the 3D model or the changes between the part of the 3D model most recently received from the external data store and the updated part of the 3D model from the data storage of the portable modelling system back to the external data store of the server , and the server replaces the corresponding previous part of the 3D model with the updated part of the model to produce an updated overall 3D model . <EOS>