Abstract. Engineering applications require semantically rich data to be modeled and managed over time. Complex objects, meaning objects linked to other objects by structural and existential dependences, allow such data to be represented. Complex object versions track the evolution of complex objects over time or during a design process. This paper describes a complex object version management model that combines two approaches for the management of complex object versions, depending on the granularity of the versioned objects: the macroscopic and the microscopic levels. These two levels give the various categories of users the possibility to choose the complex object version management technique that is best adapted to their needs. Unlike existing models, this model allows all types of complex objects, at both class level and instance level, to be managed. Furthermore, the microscopic level is highly parameterized and the macroscopic level offers an easy-to-use interface to users.