DE10154858A1 - Method for distributed processing of a construction project using CAE, whereby a whole process is considered so that common working materials are ordered in a consistent manner for the whole project - Google Patents

Method for distributed processing of a construction project using CAE, whereby a whole process is considered so that common working materials are ordered in a consistent manner for the whole project

Info

Publication number
DE10154858A1
DE10154858A1 DE10154858A DE10154858A DE10154858A1 DE 10154858 A1 DE10154858 A1 DE 10154858A1 DE 10154858 A DE10154858 A DE 10154858A DE 10154858 A DE10154858 A DE 10154858A DE 10154858 A1 DE10154858 A1 DE 10154858A1
Authority
DE
Germany
Prior art keywords
version
versions
object version
project
binding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE10154858A
Other languages
German (de)
Inventor
Berthold Firmenich
Karl Beucke
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bauhaus Universitaet Weimar
Original Assignee
Bauhaus Universitaet Weimar
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bauhaus Universitaet Weimar filed Critical Bauhaus Universitaet Weimar
Priority to DE10154858A priority Critical patent/DE10154858A1/en
Publication of DE10154858A1 publication Critical patent/DE10154858A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/13Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31215Upon modification of data in one database, automatic update of mirror databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Geometry (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Civil Engineering (AREA)
  • Structural Engineering (AREA)
  • Computational Mathematics (AREA)
  • Architecture (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Stored Programmes (AREA)

Abstract

Method for distributed processing of a project in a construction processing process using CAE, whereby the whole process is considered and the common working material of the project required by the processors, e.g. architects, is considered together so that it can be ordered in a consistent manner.

Description

Die Erfindung betrifft ein Verfahren zur verteilten Bearbeitung eines Projekts im Bauplanungsprozess mit CAE. Das Verfahren ermöglicht die synchrone und asynchrone Bearbeitung des gemeinsamen Arbeitsmaterials des Projekts durch mehrere Akteure unter Einsatz rechentechnischer Hilfsmittel. The invention relates to a method for the distributed processing of a project in Construction planning process with CAE. The method enables the synchronous and asynchronous processing of the shared working material of the project by several actors computing aids.

Im Bauplanungsprozess erstellen eine Reihe verschiedener Akteure ein gemeinsames Arbeitsmaterial. In diesem Prozess sind drei sich zyklisch wiederholende Phasen zu erkennen. Hierbei bilden die Akteure in einer ersten Phase Teilmengen des gemeinsamen Arbeitsmaterials für die eigene Bearbeitung. In der darauf folgenden Phase werden diese Teilmengen synchron oder asynchron bearbeitet. Schließlich werden die Ergebnisse in der dritten Phase der Bearbeitung im gemeinsamen Arbeitsmaterial gespeichert. A number of different actors create a common one in the construction planning process Working material. Three cyclically repeating phases can be identified in this process. in this connection In a first phase, the actors form subsets of the common working material for your own editing. In the subsequent phase, these subsets become synchronous or processed asynchronously. Finally, the results are in the third phase of editing stored in the common working material.

Nachteilig in Bezug auf die Konsistenzsicherung ist dabei, dass der Bauplanungsprozess durch seinen iterativen Charakter gekennzeichnet ist, bei dem die endgültige Lösung als Folge der Abstimmungsprozesse erst nach häufigen Änderungen der Lösungen in den einzelnen Fachdisziplinen erzielt wird. Bei verfügbaren CAD-Systemen kommunizieren die Akteure durch den Austausch von CAD-Dokumenten. Das Erkennen der Änderungen zwischen zwei verschiedenen Versionsständen eines CAD-Dokumentes ist zeitraubend. A disadvantage with regard to ensuring consistency is that the construction planning process is carried out is characterized by its iterative character, in which the final solution as a result of Coordination processes only after the solutions in the individual have been changed frequently Specialist disciplines is achieved. In the case of available CAD systems, the actors communicate through the Exchange of CAD documents. Detecting the changes between two different ones Version levels of a CAD document is time consuming.

Verfügbare CAD-Systeme besitzen keinen allgemeinen Lösungsansatz für die Modellierung der Objektbeziehungen im gemeinsamen Arbeitsmaterial. Es ist nicht möglich, dem Bearbeiter eine Hilfestellung bei der Behandlung der Auswirkungen einer Objektänderung zu geben. Die visuelle Beurteilung der Auswirkungen der Änderungen auf die eigene Planung ist fehleranfällig. Das gemeinsame Arbeitsmaterial ist daher fast immer inkonsistent. Available CAD systems do not have a general approach to modeling the Object relationships in the common working material. It is not possible to give the processor a To provide assistance in dealing with the effects of an object change. The visual Assessing the effects of changes on your own planning is prone to errors. The shared working materials are therefore almost always inconsistent.

Die beschriebene Problemstellung wird auch nicht durch bestehende Dokument-Management- Systeme (DMS) gelöst. Da ein Dokument aus einer Objektmenge besteht, gilt es als geändert, sobald sich ein einziges seiner Elemente ändert. Von dieser Änderung sind alle dazu in Beziehung stehenden Dokumente betroffen, und damit potenziell jedes Element ihrer Objektmengen. The problem described is not solved by existing document management Systems (DMS) solved. Since a document consists of a set of objects, it is considered changed as soon as one of its elements changes. All of this change is in Related documents are affected, and potentially every element of their object sets.

Die Folge sind häufige und unspezifische Änderungsbenachrichtigungen. Die Beurteilung der Auswirkungen dieser Änderungen bleibt auf der Objektebene dem Anwender überlassen. The result is frequent and non-specific change notifications. Assessing the The effects of these changes are left to the user at the object level.

Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren anzugeben, mit dem die Qualität des gemeinsamen Arbeitsmaterials des Planungsprozesses nachhaltig verbessert wird, indem durch die Unterstützung der iterativen Bearbeitungsschritte des Prozesses die Konsistenz des gemeinsamen Arbeitsmaterials gewährleistet wird. The invention has for its object to provide a method with which the quality of common working material of the planning process is sustainably improved by the support of the iterative processing steps of the process the consistency of the common working material is guaranteed.

Erfindungsgemäß wird die Aufgabe mit einem Verfahren gelöst, welches die in Anspruch 1 angegebenen Merkmale enthält. According to the invention, the object is achieved with a method which the in claim 1 contains the specified characteristics.

Vorteilhafte Ausgestaltungen sind in den Unteransprüchen angegeben. Advantageous refinements are specified in the subclaims.

Detaillierte Beschreibung der ErfindungDetailed description of the invention

Nachfolgend wird die Erfindung detailliert beschrieben. Im Teil 1 (S. 3-S. 10) werden die gewählten Abstraktionen und im Teil 2 (S. 11-S. 33) die für die verteilte Bearbeitung erforderlichen Operationen beschrieben. The invention is described in detail below. In Part 1 (p. 3-p. 10) the selected abstractions and in part 2 (p. 11-p. 33) for the distributed processing required operations are described.

Die mit der Erfindung erzielten Vorteile bestehen insbesondere darin, dass durch die ganzheitliche Betrachtung und Unterstützung des Planungsprozesses die Konsistenz des gemeinsamen Arbeitsmaterials gewährleistet werden kann. The advantages achieved with the invention consist in particular in that holistic view and support of the planning process the consistency of the common Working material can be guaranteed.

Teil 1 Mengen und StrukturenPart 1 sets and structures Einleitungintroduction

Lösungen für Aufgabenstellungen des Bauwesens werden mit objektorientierten Methoden in Software umgesetzt. Die dabei entstehenden Objektmodelle setzen sich aus einer Menge von Objekten und Beziehungen zwischen den Objekten zusammen. Solutions for construction tasks are created with object-oriented Methods implemented in software. The resulting object models consist of a Set of objects and relationships between the objects together.

ProjektProject

In [3, S. 10] heißt ein Projekt ". . . eine Zusammenfassung der Mengen für eine bestimmte Anwendung, beispielsweise ein Bauvorhaben. Die Objekte eines Projektes sind Prägungen verschiedener Klassen. Ein bestimmtes Objekt kann in mehreren Mengen des Projektes enthalten sein. Jedes Objekt des Projektes besitzt einen im Projekt eindeutigen Namen.". In [3, p. 10] a project is called "... A summary of the quantities for a." specific application, such as a construction project. The objects of a project are Mintings of different classes. A particular object can be in multiple project quantities be included. Each object of the project has a unique name in the project. ".

Objektmengeof objects

Die Objekte aller Bearbeiter des Projekts werden in der Objektmenge Ω des Projekts gespeichert. Jedem Element der Objektmenge ist ein persistenter Identifikator zugeordnet. The objects of all editors of the project are in the object set Ω of the Project saved. Each element of the set of objects is a persistent identifier assigned.

ObjektversionsmengeObject Version quantity

Die Attribute einmal gespeicherter Objekte des Projekts dürfen aus folgenden Gründen nicht mehr geändert werden:

  • - infolge der Beziehungen zwischen den Objekten können durch eine Änderung eines Objekts die davon abhängigen Objekte ungültig werden
  • - im Planungsprozess dürfen aus Gründen der Rechtsverbindlichkeit so genannte Revisionsstände nicht mehr geändert werden
The attributes of once saved project objects may no longer be changed for the following reasons:
  • - As a result of the relationships between the objects, changing an object can make the dependent objects invalid
  • - In the planning process, so-called revision levels may no longer be changed due to legal bindingness

Im Projekt müssen daher beliebig viele Zustände eines Objekts speicherbar sein. Ein solcher gespeicherter Zustand eines Objekts wird als Objektversion oder auch als Version bezeichnet. Die Menge aller Objektversionen des Projekts heißt M. Die Attribute der Objektversionen ai ∈ M müssen aktuell sein. Jeder Objektversion ist ein eindeutiger persistenter Identifikator zugeordnet. Die Abbildung ω: M → Ω ordnet jeder Objektversion ai ∈ M ein Objekt a ∈ Ω zu. Geometrisch werden Objektversion und Objekt als Knoten und die Abbildung als eine von der Objektversion zum Objekt gerichtete strichpunktierte Kante dargestellt:


Any number of states of an object must therefore be storable in the project. Such a stored state of an object is called an object version or a version. The set of all object versions of the project is called M. The attributes of the object versions a i ∈ M must be current. Each object version is assigned a unique persistent identifier. The mapping ω: M → Ω assigns an object a ∈ Ω to each object version a i ∈ M. Geometrically, the object version and object are represented as nodes and the image as a dash-dotted edge directed from the object version to the object:


Die Attributmenge ist auf Objekt und Objektversion aufzuteilen. Die in M gespeicherten Objektversionen dürfen nicht geändert werden. Daher besitzt das Objekt alle Attribute, deren Wert unveränderlich ist. Ein Beispiel hierfür ist die Klasse des Objekts, da sich diese voraussetzungsgemäß nicht ändert. Beispiel 1 Abbildung der Objektversionsmenge M auf die Objektmenge Ω

ω = {(a1, a), (a2, a), (a3, a), (b1, b), (c1, c), (c2, c)}

ω(a1) = a ω(a2) = a ω(a3) = a

ω(b1) = b

ω(c1) = c ω(c2) = c
The set of attributes is to be divided between object and object version. The object versions saved in M must not be changed. The object therefore has all attributes whose value cannot be changed. An example of this is the class of the object, since it does not change as required. Example 1 Mapping the object version set M to the object set Ω

ω = {(a 1 , a), (a 2 , a), (a 3 , a), (b 1 , b), (c 1 , c), (c 2 , c)}

ω (a 1 ) = a ω (a 2 ) = a ω (a 3 ) = a

ω (b 1 ) = b

ω (c 1 ) = c ω (c 2 ) = c

Objektänderungobject change

Zwischen zwei Objektversionen aj, ak ∈ M mit ω(aj) = ω(ak) kann eine Beziehung in Form einer Objektänderung existieren. Eine Objektänderung (aj, ak) bedeutet, dass die Objektversion ak durch Änderung der Objektversion aj entstanden ist. Im Objektversionsgraphen wird eine Objektversion als Knoten und eine Objektänderung (aj, ak) als eine von aj nach ak gerichtete gestrichelte Kante dargestellt:


A relationship in the form of an object change can exist between two object versions a j , a k ∈ M with ω (a j ) = ω (a k ). An object change (a j , a k ) means that the object version a k was created by changing the object version a j . The object version graph shows an object version as a node and an object change (a j , a k ) as a dashed edge directed from a j to a k :


Die Ursprungsversion des Objekts und die gelöschten Objektversionen sind nicht durch Änderung ihres Vorgängers entstanden. Es ist jedoch zweckmäßig, diese beiden Fälle ebenfalls als Objektänderung zu betrachten. Dazu müssen virtuelle Objektversionen δi ∈ Δ eingeführt werden:


The original version of the object and the deleted object versions were not created by changing their predecessor. However, it is advisable to also consider these two cases as object changes. To do this, virtual object versions δ i ∈ Δ must be introduced:


Die Objektversion ai ist die Ursprungsversion des Objekts a, wenn die Objektänderungsbeziehung (δi, ai) ∈ Δ × M existiert. Die Objektversion al wurde gelöscht, wenn die Objektänderungsbeziehung (al, δl) ∈ M × Δ existiert. The object version a i is the original version of the object a if the object change relationship (δ i , a i ) ∈ Δ × M exists. The object version a l was deleted if the object change relationship (a l , δ l ) ∈ M × Δ exists.

ObjektversionsgraphObject version graph

Die Objektversionen eines Objekts und die Beziehungen der Objektversionen untereinander werden geometrisch als Graph mit gestrichelten Kanten dargestellt:


The object versions of an object and the relationships between the object versions are represented geometrically as a graph with dashed edges:


Die Knoten des Graphen sind die Objektversionen. Die Kanten des gerichteten kreisfreien (Ein Graph heißt kreisfrei oder azyklisch, wenn gilt: Existiert ein nichtleerer Weg von ai nach aj so existiert kein nichtleerer Weg von aj nach ai.) Objektversionsgraphen geben die Änderungen der Objektversionen an. Der einzige Knoten des Graphen ohne Eingangskanten (Knoten a1) repräsentiert die Ursprungsversion des Objekts. (Da die Ursprungsversion leicht zu erkennen ist, werden bei der Darstellung des Graphen die Kante (δi, ai) ∈ Δ × M sowie die virtuelle Objektversion δi oft weggelassen.) Die Ausgangskanten eines Knotens führen zu den daraus entwickelten Objektversionen. Falls nur eine einzige Ausgangskante existiert, so führt diese zu einer Revision dieser Objektversion. Aus Knoten mit mehreren Ausgangskanten (Knoten a1) wurden mehrere Varianten dieser Objektversion entwickelt (Knoten a2, a3 und a4). Knoten mit mehreren Eingangskanten führen Varianten wieder zusammen (Knoten a6). Gelöschte Objektversionen sind im Graphen besonders zu markieren (Knoten δ1), da daraus keine neuen Objektversionen ableitbar sein sollen. The nodes of the graph are the object versions. The edges of the directed circle-free (A graph is called circle-free or acyclic, if the following applies: If there is a non-empty path from a i to a j, there is no non-empty path from a j to a i .) Object version graphs indicate the changes in the object versions. The only node of the graph without input edges (node a 1 ) represents the original version of the object. (Since the original version is easy to recognize, the edge (δ i , a i ) ∈ Δ × M and the virtual object version δ i are often omitted from the graph.) The starting edges of a node lead to the object versions developed from it. If there is only one output edge, this leads to a revision of this object version. From nodes with several starting edges (node a 1 ), several variants of this object version were developed (nodes a 2 , a 3 and a 4 ). Nodes with several input edges bring variants together again (node a 6 ). Deleted object versions must be marked in the graph (node δ 1 ), since no new object versions should be derived from them.

ObjektversionsrelationObject Version relation

Die Abbildung ω: M → Ω führt zu unstrukturierten Objektversionsmengen. Die Beziehungen zwischen den Objektversionen werden mit Hilfe der Objektversionsrelation V ⊆ MΔ × MΔ beschrieben.

MΔ := M ∪ Δ

Δ := {δii ist eine virtuelle Objektversion}
The mapping ω: M → Ω leads to unstructured Object version quantities. The relationships between the object versions are determined using the Object version relation V ⊆ MΔ × MΔ described.

MΔ : = M ∪ Δ

Δ: = {δi| δi is a virtual object version}

Ein geordnetes Paar der Objektversionsrelation beschreibt eine Änderungsbeziehung zwischen zwei Objektversionen. Beispielsweise bedeutet das Paar (ai, aj), dass die Objektversion ai in aj geändert wurde. Es ist zweckmäßig, für die Ursprungsversion und für gelöschte Objektversionen ebenfalls geordnete Paare in der Objektversionsrelation zu speichern. Dafür werden die virtuellen Objektversionen δi ∈ Δ verwendet:

V := {(ai, aj) ∈ MΔ × MΔ|Version aj ist Nachfolger von Version ai} = VN ∪ VA ∪ VL

mit den disjunkten Mengen (Bei den nachfolgenden Bezeichnern steht N für neu, A für alt und L für gelöscht.)

VN := {(δi, aj) ∈ Δ × M|aj ist Ursprungsversion des Objekts ω(aj)} ⊆ V

VA := {(ai, aj) ∈ M × M|aj ist Nachfolger von ai} ⊆ V

VL := {(ai, δj) ∈ M × Δ|Nachfolger von Version ai wurde gelöscht} ⊆ V
An ordered pair of the object version relation describes a change relationship between two object versions. For example, the pair (a i , a j ) means that the object version a i has been changed to a j . It is advisable to also store ordered pairs in the object version relation for the original version and for deleted object versions. The virtual object versions δ i ∈ Δ are used for this:

V: = {(a i , a j ) ∈ M Δ × M Δ | Version a j is the successor of version a i } = V N ∪ V A ∪ V L

with the disjoint sets (In the following identifiers, N stands for new, A for old and L for deleted.)

V N : = {(δ i , a j ) ∈ Δ × M | a j is the original version of the object ω (a j )} ⊆ V

V A : = {(a i , a j ) ∈ M × M | a j is the successor of a i } ⊆ V

V L : = {(a i , δ j ) ∈ M × Δ | successor of version a i has been deleted} ⊆ V

Beispiel 2Example 2 ObjektversionsrelationObject Version relation

Für den auf Seite 5 dargestellten Objektversionsgraphen wird die Objektversionsrelation angegeben. Die Elemente δ0, δ1 ∈ Δ sind virtuelle Objektversionen. Die Ursprungsversion sei aus δ0 entwickelt.

V = {(δ0, a1), (a1, a2), (a1, a3), (a1, a4), (a2, a5), (a3, a6), (a4, δ1), (a5, a6), (a6, a7)}
The object version relation is given for the object version graph shown on page 5. The elements δ 0 , δ 1 ∈ Δ are virtual object versions. The original version was developed from δ 0 .

V = {(δ 0 , a 1 ), (a 1 , a 2 ), (a 1 , a 3 ), (a 1 , a 4 ), (a 2 , a 5 ), (a 3 , a 6 ) , (a 4 , δ 1 ), (a 5 , a 6 ), (a 6 , a 7 )}

Objektbeziehungenobject relations

In [1] wird das Problem der Beschreibung und Handhabung der Beziehungen zwischen Objekten und der Änderungen in strukturierten Objektmengen behandelt. Analog dazu werden in dieser Schrift die Begriffe Bindung und Abhängigkeit auf Objektversionsmengen angewendet. Auf dieser Grundlage wird die Bearbeitung von Teilmengen eines Projekts beschrieben. In [1] the problem of the description and handling of the Relationships between objects and the changes in structured object sets are dealt with. Analogously, the terms attachment and dependency are used in this document Object version sets applied. On this basis, the processing of subsets of a project described.

Bindungbinding

Zwischen zwei Objektversionen ai, bj ∈ M kann eine Beziehung in Form einer Bindung (ai, bj) existieren. Eine Bindung (ai, bj) bedeutet, dass bj an ai gebunden ist. Im Bindungsgraphen wird eine Objektversion als Knoten und eine Bindung (ai, bj) als eine von Knoten ai nach Knoten bj gerichtete durchgezogene Kante dargestellt:


A relationship in the form of a bond (a i , b j ) can exist between two object versions a i , b j ∈ M. A bond (a i , b j ) means that b j is bound to a i . In the binding graph, an object version is shown as a node and a binding (a i , b j ) as a solid edge directed from node a i to node b j :


Eine Objektversion bj heißt an die Attribute einer Objektversion ai gebunden, wenn mindestens eine der folgenden Bedingungen erfüllt ist:

  • 1. Zum Berechnen der Attribute von bj müssen Attribute von ai gelesen werden.
  • 2. ai ist ein Element der Menge bj. Die Menge gilt nämlich als geändert, sobald sich eins ihrer Elemente ändert.
An object version b j is bound to the attributes of an object version a i if at least one of the following conditions is met:
  • 1. To calculate the attributes of b j , attributes from a i must be read.
  • 2. a i is an element of the set b j . The quantity is said to have changed as soon as one of its elements changes.

Abhängigkeitdependence

Eine Objektversion ck ∈ M heißt abhängig von einer Objektversion ai ∈ M, wenn es im Bindungsgraphen mindestens einen Weg von ai nach ck gibt. Abhängigkeiten werden durch einen durchgezogenen Pfeil mit nicht ausgefüllter Pfeilspitze dargestellt:


Depending on an object version, an object version c k ∈ M is called a i ∈ M if there is at least one path from a i to c k in the bond graph . Dependencies are represented by a solid arrow with an empty arrow head:


Bindungsrelationbinding relation

Ist eine Objektversion ck ∈ M an eine Objektversion ai ∈ M gebunden, so ist das geordnete Paar (ai, ck) ein Element der Bindungsrelation B ⊆ M × M:

B := {(ai, ck) ∈ M × M|ai bindet ck}
If an object version c k ∈ M is bound to an object version a i ∈ M, then the ordered pair (a i , c k ) is an element of the binding relation B ⊆ M × M:

B: = {(a i , c k ) ∈ M × M | a i binds c k }

Die Relation H(B) ⊆ M × M [1] wird als transitive Hülle (siehe beispielsweise [2]) der Bindungsrelation B ⊆ M × M berechnet.

H(B) := {(ai, bj) ∈ M × M|bj ist von ai abhängig}
The relation H (B) ⊆ M × M [1] is calculated as the transitive envelope (see for example [2]) of the binding relation B ⊆ M × M.

H (B): = {(a i , b j ) ∈ M × M | b j depends on a i }

Eine Objektversion darf nicht von unterschiedlichen Objektversionen anderer Objekte abhängig sein. Diese Forderung wird anhand eines Beispiels aus dem Softwareentwicklungsprozess verdeutlicht. Eine Funktion a( ) soll zwei Aufrufe einer Funktion b( ) besitzen: damit ist a( ) abhängig von b( ). Die Schnittstelle von b( ) wird nachträglich geändert: Die neue Version hat einen zusätzlichen Parameter. Es ist zu entscheiden, ob a( ) weiterhin die Ursprungsversion von b( ) oder ob a( ) die überarbeitete Version von b( ) verwenden soll. Es ist aber offensichtlich nicht erlaubt, in a( ) unterschiedliche Versionen von b( ) zu verwenden. An object version must not depend on different object versions of other objects his. This requirement is based on an example from the software development process clarified. A function a () should have two calls to a function b (): this means that a () is dependent from b (). The interface of b () will be changed afterwards: The new version has one additional parameters. It has to be decided whether a () remains the original version of b () or whether a () should use the revised version of b (). But obviously it's not allowed to use different versions of b () in a ().

Es ist zweckmäßig, Teilmengen eines versionierten Systems wie ein unversioniertes System zu bearbeiten. Dies ist ebenfalls nur möglich, wenn Objektversionen nicht von mehreren Objektversionen anderer Objekte abhängig sind. Beide der folgenden Bedingungen müssen dazu erfüllt sein:




It is advisable to process subsets of a versioned system like an unversioned system. This is also only possible if object versions are not dependent on several object versions of other objects. To do this, both of the following conditions must be met:




Bedingung (1) ist erfüllt, wenn keine Objektversion existiert, die von mehreren Objektversionen desselben Objekts abhängt. Bedingung (2) ist erfüllt, wenn keine Objektversion existiert, die von einer anderen Objektversion desselben Objekts abhängig ist:


Condition (1) is fulfilled if there is no object version that depends on several object versions of the same object. Condition (2) is met if there is no object version that depends on another object version of the same object:


Es gilt formal:


mit

B* := B ∪ {(ai, bj)} Beispiel 3 Ungültige Abhängigkeiten

The following applies formally:


With

B *: = B ∪ {(a i , b j )} Example 3 Invalid dependencies

Bei dem dargestellten Trägerrost leiten die Träger ai und bi ihre linke Auflagerkraft in den Träger ci ein. Auf ai und bi liegt eine Platte auf, die ihre Lasten als Flächenlast q symmetrisch auf beide Träger weiterleitet. Es existieren zwei Objektversionen der Flächenlast q: Die Objektversionen qi und qj resultieren aus Platten mit unterschiedlicher Dicke. Das beschriebene System ist inkonsistent, da der Träger ci von zwei unterschiedlichen Objektversionen qi und qj der Flächenlast q belastet wird. In the support grid shown, the supports a i and b i introduce their left bearing force into the support c i . On a i and b i there is a plate which transfers its loads symmetrically to both beams as surface load q. There are two object versions of the surface load q: The object versions q i and q j result from plates with different thicknesses. The system described is inconsistent since the carrier c i is loaded by two different object versions q i and q j of the surface load q.

Teil 2Part 2 Operationen für die verteilte BearbeitungDistributed editing operations

Die Objektversionen ai ∈ M werden in einer verteilten Umgebung bearbeitet. Nachfolgend wird die konsistente Bearbeitung von Teilmengen des Projekts beschrieben. The object versions a i ∈ M are processed in a distributed environment. The consistent processing of partial quantities of the project is described below.

WorkspaceWorkspace

Änderungen und Austragungen bestehender Objektversionen ai ∈ M des Projekts können sich nur auf daraus abgeleitete Objektversionen beziehen. Diese werden für die interaktive Bearbeitung in eine private Arbeitsumgebung des Planers, die Workspace genannt wird, geladen. Die Workspaces aller Bearbeiter sind paarweise disjunkt. Nur der eigene Workspace darf geändert werden. Die Workspaces der anderen Nutzer können nur gelesen werden. Für jedes Objekt darf voraussetzungsgemäß maximal eine Objektversion im Workspace gespeichert sein. Am Ende der Bearbeitung werden die Ergebnisse verworfen oder als neue Objektversionen im Projekt gespeichert.

Changes and deliveries of existing object versions a i ∈ M of the project can only refer to object versions derived from them. These are loaded for interactive editing in a private work environment of the planner, which is called workspace. The workspaces of all editors are disjoint in pairs. Only your own workspace can be changed. The other users' workspaces can only be read. For each object, a maximum of one object version may be stored in the workspace. At the end of processing, the results are discarded or saved as new object versions in the project.

Operation SELEKTIONOperation SELECTION Einführungintroduction

Die Bearbeitung beginnt mit der Selektion der zu bearbeitenden Teilmenge S ⊆ M durch den Anwender. Nicht alle Objektversionen mi ∈ M können jedoch gleichzeitig bearbeitet werden. Zum einen ist es zweckmäßig, den Anwender pro Objekt maximal eine Objektversion bearbeiten zu lassen. Zum anderen sind Regeln basierend auf der Bindungsrelation B zu erfüllen. Schließlich soll es möglich sein, während der Bearbeitung einer Teilmenge im Workspace weitere Teilmengen im Projekt zu selektieren und gemeinsam zu bearbeiten. The processing begins with the selection of the subset S ⊆ M to be processed by the user. However, not all object versions m i ∈ M can be edited at the same time. On the one hand, it is useful to have the user edit a maximum of one object version per object. On the other hand, rules based on the binding relation B have to be fulfilled. Finally, it should be possible to select and edit further subsets in the project while editing a subset in the workspace.

Zur Verdeutlichung dient nachfolgend beschriebenes Beispiel einer strukturierten Objektversionsmenge. Der Mittelpunkt des Kreises b ist an den Punkt a gebunden. Es existieren drei Objektversionen des Kreises b und zwei Objektversionen des Punkts a:


  • - Der Kreis b1 hat den Radius r1. Sein Mittelpunkt ist an den Punkt a1 gebunden.
  • - Durch Ändern des Radius r1 des Kreises b1 entsteht der Kreis b2 mit dem Radius r2. Der Mittelpunkt von b2 ist weiterhin an den Punkt a1 gebunden.
  • - Der Punkt a1 wurde verschoben und als a2 gespeichert. Der Kreis b3 bezieht sich auf den geänderten Mittelpunkt a2. Der Radius ist weiterhin r2.
The example of a structured object version set described below serves to illustrate this. The center of the circle b is bound to the point a. There are three object versions of circle b and two object versions of point a:


  • - The circle b 1 has the radius r 1 . Its center is tied to point a 1 .
  • - By changing the radius r 1 of the circle b 1 , the circle b 2 with the radius r 2 is created . The center of b 2 is still bound to point a 1 .
  • - The point a 1 was moved and saved as a 2 . The circle b 3 refers to the changed center a 2 . The radius is still r 2 .

Die Definition der selektierbaren Objektversionsmenge ist


The definition of the selectable object version set is


Die Bedingungen (1) bis (4) dieser Definition werden nachfolgend erläutert:

  • 1. Stellt sicher, dass maximal eine Objektversion eines Objekts selektiert ist.
  • 2. Regelt das Selektieren der Objektversionen, die von ml abhängig sind. Es sei y ∈ Ω ein Objekt mit den Objektversionen {yi|ω(yi) = y}. Eine Teilmenge der Objektversionen von y sei von mi abhängig. Falls Objektversionen von y selektiert werden, dann sind nur von mi abhängige Objektversionen yi mit (mi, yi) ∈ H(B) erlaubt. Beispielsweise sind für die auf Seite 11 dargestellte Menge M bei selektierter Objektversion a1 nur die Mengen S = {a1}, S = {a1, b1} und S = {a1, b2} erlaubt. Die Mengen S = {a1, b1, b2}, S = {a1, b1, b3} und S = {a1, b2, b3} sind ungültig und werden durch die erste Bedingung ausgeschlossen, da hier mehr als eine Objektversion pro Objekt selektiert ist.
  • 3. Regelt das Selektieren der Objektversionen, von denen ml abhängig ist. Es sei y ∈ Ω ein Objekt mit den Objektversionen {yi|ω(yi) = y}. Wenn das geordnete Paar (ys, mi) ∈ H(B) mit ω(ys) = y ∧ mi ∈ S existiert, so ist ml von der Objektversion ys abhängig. Falls Objektversionen von y selektiert werden, dann ist nur die Objektversion ys erlaubt. Beispielsweise sind für die auf Seite 11 dargestellte strukturierte Objektversionsmenge bei geladener Objektversion b2 nur die Mengen S = {b2} und S = {a1, b2} zugelassen.
  • 4. Stellt sicher, dass keine Objektversion eines bereits geladenen Objekts selektiert wird (WΔ und V werden bei der Beschreibung der Bearbeitung auf Seite 18 definiert).
The conditions (1) to (4) of this definition are explained below:
  • 1. Ensures that a maximum of one object version of an object is selected.
  • 2. Controls the selection of object versions that depend on ml. Let y ∈ Ω be an object with the object versions {y i | ω (y i ) = y}. A subset of the object versions of y is dependent on m i . If object versions of y are selected, then only m i y i dependent object versions with (m i, y i) ∈ H (B) are allowed. For example, for the set M shown on page 11 with selected object version a 1, only the sets S = {a 1 }, S = {a 1 , b 1 } and S = {a 1 , b 2 } are allowed. The sets S = {a 1 , b 1 , b 2 }, S = {a 1 , b 1 , b 3 } and S = {a 1 , b 2 , b 3 } are invalid and are excluded by the first condition, since more than one object version is selected here.
  • 3. Controls the selection of the object versions on which ml depends. Let y ∈ Ω be an object with the object versions {y i | ω (y i ) = y}. If the ordered pair (y s , m i ) ∈ H (B) exists with ω (y s ) = y ∧ m i ∈ S, ml depends on the object version y s . If object versions of y are selected, only the object version y s is allowed. For example, only the sets S = {b 2 } and S = {a 1 , b 2 } are permitted for the structured object version set shown on page 11 when the object version b 2 is loaded.
  • 4. Ensures that no object version of an already loaded object is selected (W Δ and V are defined in the description of the processing on page 18).

Beispiel 4Example 4 Selektierbare Teilmengen einer strukturierten ObjektversionsmengeSelectable subsets of a structured object version set

Für die auf Seite 11 dargestellte strukturierte Objektversionsmenge sind die Elemente des folgenden Mengensystems selektierbare Teilmengen S ⊆ M:
{{a1}, {a2}, {b1}, {b2}, {b3}, {a1, b1}, {a1, b2}, {a2, b3}}
For the structured object version set shown on page 11, the elements of the following set system are selectable subsets S ⊆ M:
{{a 1 }, {a 2 }, {b 1 }, {b 2 }, {b 3 }, {a 1 , b 1 }, {a 1 , b 2 }, {a 2 , b 3 }}

Eine Objektversion des Punktes oder eine Objektversion des Kreises darf alleine selektiert werden. Falls jedoch eine Objektversion des Punktes und eine Objektversion des Kreises selektiert werden, so müssen beide Objektversionen zusammen gehören. An object version of the point or an object version of the circle may be selected alone become. However, if an object version of the point and an object version of the circle are selected both object versions must belong together.

Operation LADENLOAD operation Laden von ObjektversionenLoad object versions

Bereits existierende Objektversionen ai ∈ S ⊆ M des Projekts dürfen voraussetzungsgemäß nicht geändert werden. Daher verfügt der Workspace über eine Menge W mit änderbaren Objektversionen. Laden von Objektversionen heißt, dass für jedes ai ∈ S eine neue Objektversion aj erzeugt und in W eingetragen wird. Das geordnete Paar (ai, aj) wird in die Bearbeitungsrelation V ⊆ S × W eingetragen:

W := W ∪ {aj}

V := V ∪ {(ai, aj) ∈ S × W|Nachfolgerversion aj von ai ist geladen}
Existing object versions a i ∈ S ⊆ M of the project may not be changed as required. Therefore, the workspace has a lot of W with changeable object versions. Loading object versions means that for each a i ∈ S a new object version a j is created and entered in W. The ordered pair (a i , a j ) is in the machining relation V ⊆ S × W entered:

W: = W ∪ {a j }

V : = V ∪ {(a i , a j ) ∈ S × W | successor version a j of a i is loaded}

Laden von BindungenLoading ties

Die Elemente aus W stehen untereinander und zu Elementen aus M in Beziehung. Die Bindungen des Workspace sind in der Relation B ⊆ (M ∪ W) × W eingetragen. Da voraussetzungsgemäß die Elemente von M nicht änderbar sind, können jedoch umgekehrt keine Elemente von M an Elemente von W gebunden sein. Das Laden von Bindungen erfordert keinen manuellen Eingriff des Nutzers - nach dem Laden von Objektversionen werden die entsprechenden Bindungen gemäß folgender Vorschrift geladen.

The elements from W are related to each other and to elements from M. The bindings of the workspace are in relation B ⊆ (M ∪ W) × W entered. Since the elements of M cannot be changed, on the other hand, however, no elements of M can be bound to elements of W. The loading of bindings does not require manual intervention by the user - after loading object versions, the corresponding bindings are loaded according to the following regulation.

Beim Laden von Bindungen müssen neue geordnete Paare in die Bindungsrelation B eingetragen und vorhandene geordnete Paare daraus entfernt werden. Die Terme dieser Definition entsprechen den nachfolgend erläuterten Fällen:

  • 1. Die Bedingung stellt sicher, dass für die Bindung (xk, yl) ∈ B bei selektierter bindender und gebundener Objektversion xk, yl ∈ S eine neue Bindung (ai, bj) ∈ B erzeugt wird:


  • 2. Die Bedingung stellt sicher, dass für die Bindung (a1, yk) ∈ B bei unselektierter bindender Objektversion a1 ∈ M ∧ ai ∉ S und selektierter gebundener Objektversion yk ∈ S eine neue Bindung (ai, bj) ∈ B erzeugt wird:


  • 3. Für die Bindung (xj, yk) ∈ B wird bei selektierter bindender Objektversion xj ∈ S und unselektierter gebundener Objektversion yk ∈ M ∧ yk ∉ S keine neue Bindung erzeugt. Die gebundene Objektversion yk ∈ M wird damit zu einer überholten Objektversion (in Überholte Objektversionen modernisieren auf Seite 28 definiert):


  • 4. Beim Laden von Objektversionen muss die Menge W des Workspace nicht unbedingt leer sein. Dieser Fall liegt nämlich dann vor, wenn nach dem erstmaligen Laden weitere Objektversionen geladen werden.
    Die Bedingung (4.1) stellt sicher, dass für die Bindung (yk, bj) ∈ B bei selektierter bindender Objektversion yk ∈ S und gebundener Objektversionen bj ∈ W eine neue Bindung (ai, bj) ⊆ W × W erzeugt wird. Die Relation (4.2) beschreibt die zu entfernenden Bindungen.


    Fall (4.1) entsteht durch das Eintragen einer Bindung (ai, bj) ∈ M × W während der Bearbeitung im Workspace. Fall (4.2) resultiert aus dem Laden gemäß Fall (2). Die beiden Bilder machen deutlich, dass beide Fälle gleich zu behandeln sind.
  • 5. Die Bedingung beschreibt für die Bindung (xk, yl) ∈ B den Fall einer unselektierten, jedoch bereits geladenen bindenden Objektversion xk ∈ M ∧ ai ∈ W ∧ (xk, ai) ∈ V und einer gebundenen selektierten Objektversionen yl ∈ S. Die selektierte Objektversion yl ∈ S wird als Objektversion bj ∈ W geladen und durch die Bindung (ai, bj) ⊆ W × W an die bereits geladene Objektversion ai ∈ W gebunden.

When loading bindings, new ordered pairs must be placed in the binding relation B entered and existing ordered pairs are removed from it. The terms of this definition correspond to the cases explained below:
  • 1. The condition ensures that for the bond (x k , y l ) ∈ B with a selected binding and bound object version x k , y l ∈ S a new bond (a i , b j ) ∈ B is produced:


  • 2. The condition ensures that for the binding (a 1 , y k ) ∈ B with unselected binding object version a 1 ∈ M ∧ a i ∉ S and selected bound object version y k ∈ S a new binding (a i , b j ) ∈ B is produced:


  • 3. For the binding (x j , y k ) ∈ B, no new binding is generated if the binding object version x j ∈ S is selected and the unselected bound object version y k ∈ M ∧ y k ∉ S. The bound object version y k ∈ M thus becomes an outdated object version (defined in Modernizing object versions on page 28):


  • 4. When loading object versions, the quantity W of the workspace does not necessarily have to be empty. This is the case if additional object versions are loaded after the initial loading.
    The condition (4.1) ensures that for the bond (y k , b j ) ∈ B with selected binding object version y k ∈ S and bound object versions b j ∈ W a new binding (a i , b j ) ⊆ W × W is created. Relation (4.2) describes the bonds to be removed.


    Case (4.1) is created by entering a binding (a i , b j ) ∈ M × W during processing in the workspace. Case (4.2) results from loading according to case (2). The two pictures make it clear that both cases should be treated equally.
  • 5. The condition describes for the binding (x k , y l ) ∈ B the case of an unselected but already loaded binding object version x k ∈ M ∧ a i ∈ W ∧ (x k , a i ) ∈ V and a bound selected object version y l ∈ S. The selected object version y l ∈ S is loaded as object version b j ∈ W and is bound to the already loaded object version a i ∈ W by the binding (a i , b j ) ⊆ W × W ,

Objektversionen aus W, die an Objektversionen aus M gebunden sind, können aktualisiert werden. Der Grund dafür ist, dass beim Update eines gebundenen Objekts die bindenden Objektversionen nur verwendet und nicht geändert werden. Beispielsweise wird beim Update der Objektversion d2 ∈ W die bindende Objektversion c1 ∈ M nur gelesen. Beispiel 5 Laden von Objektversionen und Bindungen

Object versions from W that are linked to object versions from M can be updated. The reason for this is that when a linked object is updated, the binding object versions are only used and not changed. For example, when the object version d 2 ∈ W is updated, the binding object version c 1 ∈ M is only read. Example 5 Loading object versions and bindings

Gegeben ist die abgebildete strukturierte Objektversionsmenge:

M = {a1, b1, c1, d1, e1, f1, g1, m1, n1, p1, q1}

V = {(δ0, a1), (δ0, b1), (δ0, c1), (δ0, d1), (δ0, e1), (δ0, f1), (δ0, g1), (δ0, m1), (δ0, n1), (δ0, p1), (δ0, q1)}

B = {(a1, b1), (c1, d1), (e1, f1), (m1, n1) (p1, q1)}

W = {h2, n2, p2}

V = {(δ0, h2), (n1, n2), (p1, p2)}

B = {(g1, h2), (m1, n2)}
The structured object version set shown is given:

M = {a 1 , b 1 , c 1 , d 1 , e 1 , f 1 , g 1 , m 1 , n 1 , p 1 , q 1 }

V = {(δ 0 , a 1 ), (δ 0 , b 1 ), (δ 0 , c 1 ), (δ 0 , d 1 ), (δ 0 , e 1 ), (δ 0 , f 1 ) , (δ 0 , g 1 ), (δ 0 , m 1 ), (δ 0 , n 1 ), (δ 0 , p 1 ), (δ 0 , q 1 )}

B = {(a 1 , b 1 ), (c 1 , d 1 ), (e 1 , f 1 ), (m 1 , n 1 ) (p 1 , q 1 )}

W = {h 2 , n 2 , p 2 }

V = {(δ 0 , h 2 ), (n 1, n 2 ), (p 1 , p 2 )}

B = {(g 1 , h 2 ), (m 1 , n 2 )}

Die hervorgehoben dargestellten Objektversionen werden als Menge S = {a1, b1, d1, e1, g1, m1, q1} selektiert und in den Workspace geladen:


The highlighted object versions are selected as set S = {a 1 , b 1 , d 1 , e 1 , g 1 , m 1 , q 1 } and loaded into the workspace:


Nach dem Laden sind die Mengen und Relationen des Workspace:


After loading, the quantities and relations of the workspace are:


Operation BEARBEITUNGOPERATION operation Einführungintroduction

Während der Bearbeitung werden Operationen auf Mengen und Relationen des Workspace ausgeführt. Die beim Laden von Objektversionen eingeführte Bearbeitungsrelation V wird daher erweitert:

V := {(ai, aj) ∈ MΔ × MΔ|Nachfolgerversion aj von ai ist geladen} = V NV AV L

mit

MΔ := M ∪ Δ
WΔ := W ∪ Δ
V N := {(δi, aj) ∈ Δ × W|aj ist Ursprungsversion des Objekts ω(aj)} ⊆ V
V A := {(ai, aj) ∈ M × W|aj ist Nachfolger von ai} ⊆ V
V L := {(ai, δj) ∈ M × Δ|Nachfolger von ai wurde gelöscht} ⊆ V
Operations on quantities and relations of the workspace are carried out during processing. The machining relation introduced when object versions are loaded V is therefore expanded:

V : = {(a i , a j ) ∈ M Δ × M Δ | successor version a j of a i is loaded} = V N V A V L

With

M Δ : = M ∪ Δ
W Δ : = W ∪ Δ
V N : = {(δ i , a j ) ∈ Δ × W | a j is the original version of the object ω (a j )} ⊆ V
V A : = {(a i , a j ) ∈ M × W | a j is the successor of a i } ⊆ V
V L : = {(a i , δ j ) ∈ M × Δ | successor of a i was deleted} ⊆ V

Objektversion ändernChange object version

Eine Objektversion heißt geändert, wenn wenigstens eins ihrer Attribute geändert wurde. Die Elemente der Menge


sind änderbar. Es können sowohl neu erzeugte Objektversionen


als auch aus M geladene Objektversionen


geändert werden. Nach dem Andern einer Objektversion aj ∈ W ist nicht nur aj, sondern es sind auch alle von aj abhängigen Objektversionen {bk ∈ W|(aj, bk) ∈ H(B)} nicht mehr aktuell. Die Menge aller in einem Update zu aktualisierenden Objektversionen wird Änderungsmenge A genannt:

A := {bj ∈ W|bj ist nicht aktuell}
An object version is called changed if at least one of its attributes has been changed. The elements of the crowd


are changeable. There can be both newly created object versions


as well as object versions loaded from M.


be changed. After changing an object version a j ∈ W is not only a j , but also all object versions dependent on a j are {b k ∈ W | (a j , b k ) ∈ H ( B )} out of date. The set of all object versions to be updated in an update is called change set A:

A: = {b j ∈ W | b j is not current}

Nach der Bearbeitung des geladenen Teilmodells sollen unveränderte geladene Objektversionen aus Effizienzgründen nicht gespeichert werden. Eine geladene Objektversion ist auch dann zu "speichern", wenn sie bei der Bearbeitung gelöscht wurde. Aus diesem Grund scheidet das Eintragen der zu speichernden Objektversionen in eine Änderungsmenge aus. Stattdessen werden die zugehörigen geordneten Paare der Bearbeitungsrelation V in die Änderungsrelation Aeingetragen. Da während der Bearbeitung keine Paare aus A ausgetragen werden, sind die zu speichernden Ergebnisse am Ende der Bearbeitung bekannt. (Eine gleichwertige Alternative besteht darin, die geladenen Objektversionen ai ∈ M in eine Menge einzutragen. Bei diesem Vorgehen können jedoch neu erzeugte Objektversionen nicht in die Menge eingetragen werden: Neu erzeugte Objektversionen sind daher immer zu speichern.)

A := V NV L ∪ {(ai, aj) ∈ V A|Attribute von aj wurden geändert} ⊆ V
After processing the loaded partial model, unchanged loaded object versions should not be saved for reasons of efficiency. A loaded object version must also be "saved" if it was deleted during editing. For this reason, entering the object versions to be saved in a change set is not possible. Instead, the associated ordered pairs of the machining relation V in the change relation A entered. Since no pairs are made during editing A carried out, the results to be saved are known at the end of processing. (An equivalent alternative is to enter the loaded object versions a i ∈ M in a set. With this procedure, however, newly created object versions cannot be entered in the set: Newly created object versions must therefore always be saved.)

A : = V N V L ∪ {(a i , a j ) ∈ V A | Attributes of a j have been changed} ⊆ V

Nach einer Änderung der Objektversion aj ∈ W müssen A und A wie folgt aktualisiert werden:

A := A ∪ {aj} ∪ {bk ∈ W|(aj, bk) ∈ H(B)}

A := A ∪ {(ai, aj) ∈ V} ∪ {(xi, xj) ∈ V|(aj, xj) ∈ H(B)}
After changing the object version a j ∈ W, A and A be updated as follows:

A: = A ∪ {a j } ∪ {b k ∈ W | (a j , b k ) ∈ H ( B )}

A : = A ∪ {(a i , a j ) ∈ V } ∪ {(x i , x j ) ∈ V | (a j , x j ) ∈ H ( B )}

Objektversion eintragenEnter object version

Im Workspace werden neue Objekte erzeugt. Die Menge aller Objekte des Workspace heißt Ω. Die Abbildung ω: W → Ω ordnet jeder Objektversion aj ∈ W ein Objekt a ∈ Ω zu. Die neue Objektversion wird in W eingetragen. New objects are created in the workspace. The set of all objects in the workspace is called Ω , The image ω : W → Ω assigns an object a ∈ to each object version a j ∈ W Ω to. The new object version is entered in W.

Umsetzung der Operation:

Ω := Ω ∪ {a} ω := ω ∪ {(aj, a)} W := W ∪ {aj}

A := A ∪ {aj} A := A ∪ {(δ0, aj)} V := V ∪ {(δ0, aj)}
Implementation of the operation:

Ω : = Ω ∪ {a} ω : = ω ∪ {(a j , a)} W: = W ∪ {a j }

A: = A ∪ {a j } A : = A ∪ {(δ 0 , a j )} V : = V ∪ {(δ 0 , a j )}

Objektversion austragenRemove object version

Objektversionen können aus der Menge


ausgetragen werden. Sowohl neu erzeugte Objektversionen


als auch aus M geladene Objektversionen


können ausgetragen werden. Das Element aj ∈ W wird aus W ausgetragen. In der Menge der geordneten Paare {(ai, aj) ∈ MΔ × W|aj ist auszutragen)} ⊆ V wird die zweite Komponente aj durch eine virtuelle Objektversion δi ∈ Δ ersetzt. Alle Eingangs- und Ausgangskanten von aj im Bindungsgraphen werden gelöscht.
Object versions can be out of the crowd


be carried out. Both newly created object versions


as well as object versions loaded from M.


can be carried out. The element a j ∈ W is carried out of W. In the set of ordered pairs {(a i , a j ) ∈ M Δ × W | a j has to be carried out)} ⊆ V the second component a j is replaced by a virtual object version δ i ∈ Δ. All input and output edges of a j in the bond graph are deleted.

Umsetzung der Operation:


Implementation of the operation:


Bindung eintragenEnter binding

Gemäß den Bedingungen für die Gültigkeit der Kontextrelation auf Seite 8 ist das Eintragen einer Bindung (ai, bj) ∈ (M ∪ W) × W in B an folgende Bedingung geknüpft:


According to the conditions for the validity of the context relation on page 8, the entry of a bond (a i , b j ) ∈ (M ∪ W) × W in B subject to the following condition:


In obiger Definition muss die transitive Hülle H(B ∪ B ∪ {(ai, bj)}) sowohl der Bindungen B des Workspace als auch der Bindungen B des Projekts berechnet werden. Ist die Bedingung erfüllt, so kann das geordnete Paar (ai, bj) in B eingetragen werden. Die Objektversion bj wird wie eine geänderte Objektversionen gehandhabt.


In the above definition, the transitive envelope H (B ∪ B ∪ {(a i , b j )}) both of the bonds B of the workspace as well as the bindings B of the project. If the condition is fulfilled, then the ordered pair (a i , b j ) in B be entered. The object version b j is handled like a changed object version.


Bindung austragenApply binding

Das Austragen einer Bindung (ai, bj) ∈ B ist an keine Bedingungen geknüpft. Die Objektversion bj wird wie eine geänderte Objektversionen gehandhabt.


The discharge of a bond (a i , b j ) ∈ B is not subject to any conditions. The object version b j is handled like a changed object version.


Updateupdate

Nach einer Änderung ist eine Teilmenge der Objektversionsmenge nicht mehr aktuell. Die Applikation führt zu geeigneten Zeitpunkten einen Update durch. Eine Objektversion aktualisieren heißt, alle ihre Attributwerte zu aktualisieren. Innerhalb eines Update wird die Aktualisierung für jede Objektversion genau einmal durchgeführt. Dabei kommt es auf die richtige Reihenfolge an, da diejenigen Objektversionen, an die die zu aktualisierende Objektversion gebunden ist, bereits aktuell sein müssen. Die Berechnung der korrekten Reihenfolge der Objekte in einem Update ist in [1] beschrieben. After a change, a subset of the object version set is no longer current. The application carries out an update at appropriate times. An object version Update means to update all of their attribute values. Within an update, the Update carried out exactly once for each object version. It comes down to the right one Order because the object versions to which the object version to be updated is bound to be up to date. Calculating the correct order of objects an update is described in [1].

Nur Objektversionen der Änderungsmenge aj ∈ A müssen aktualisiert werden. Eine aktualisierte Objektversion aj wird nach dem Update aus A ausgetragen:

A := A\{aj} Beispiel 6 Bearbeitungsrelation V ⊆ MΔ × WΔ

Only object versions of the change set a j ∈ A need to be updated. An updated object version a j is carried out from A after the update:

A: = A \ {a j } Example 6 Machining relation V ⊆ M Δ × W Δ

Im Projekt sind die Objektversionen a1, b1, d1 ∈ M gespeichert. Die Objektversionen a1 und b1 werden selektiert und als Objektversionen a2 und b2 in den Workspace geladen. Die Objektversion b2 wird gelöscht. Die Objektversion c1 wird neu erzeugt. Mengen und Relationen von Projekt und Workspace betragen:

M = {a1, b1, d1} S = {a1, b1} W = {a2, c1}

V A = {(a1, a2)} V L = {b1, δ1)} V N = {(δ0, c1)} V = {(a1, a2), (b1, δ1), (δ0, c1)}
The object versions a 1 , b 1 , d 1 ∈ M are saved in the project. The object versions a 1 and b 1 are selected and loaded into the workspace as object versions a 2 and b 2 . The object version b 2 is deleted. The object version c 1 is newly created. Quantities and relations between project and workspace are:

M = {a 1 , b 1 , d 1 } S = {a 1 , b 1 } W = {a 2 , c 1 }

V A = {(a 1 , a 2 )} V L = {b 1 , δ 1 )} V N = {(δ 0 , c 1 )} V = {(a 1 , a 2 ), (b 1 , δ 1 ), (δ 0 , c 1 )}

Operation ENTLADENDISCHARGE operation

Unter dem Entladen versteht man das Austragen von geordneten Paaren (ai, aj) ∈ M × WΔ aus der Bearbeitungsrelation V. Davon betroffene Bindungen sind entsprechend zu ändern. Geänderte, ausgetragene und ungeänderte Objektversionen können entladen werden. (Vor dem Entladen geänderter oder ausgetragener Objektversionen sollte der Anwender vor dem Verlust seiner Arbeit gewarnt werden.) Dagegen sind neu erzeugte Objektversionen nicht zu entladen: Diese können nur gelöscht werden. Das Entladen bezieht sich auf eine Teilmenge E der Bearbeitungsrelation:

E := {(ai, aj) ∈ M × WΔ|Objektversion ai soll entladen werden}
Unloading means the discharge of ordered pairs (a i , a j ) ∈ M × W Δ from the machining relation V , Bindings affected by this must be changed accordingly. Modified, carried out and unchanged object versions can be unloaded. (The user should be warned of the loss of his / her work before unloading modified or removed object versions.) Newly created object versions, on the other hand, cannot be unloaded: they can only be deleted. Unloading refers to a subset e the machining relation:

e : = {(a i , a j ) ∈ M × W Δ | object version a i should be unloaded}

Die Menge S ∈ W der zu entladenden, nicht gelöschten Objektversionen ist:


The amount S ∈ W of the object versions to be unloaded and not deleted is:


Die Elemente in W stehen untereinander und zu Elementen in M in Beziehung. Das Entladen von Objektversionen erfordert keinen manuellen Eingriff bei der Behandlung der Bindungen. Diese werden vor dem Entladen der Objektversionen gemäß folgender Vorschrift gehandhabt:


The elements in W are related to each other and to elements in M. Unloading object versions does not require manual intervention when handling bindings. These are handled before unloading the object versions in accordance with the following regulation:


Relation (1) beschreibt die einzutragenden Bindungspaare:


Relation (1) describes the binding pairs to be entered:


Relation (2) beschreibt die auszutragenden Bindungspaare gemäß vorheriger und nachfolgender Abbildung:


Relation (2) describes the binding pairs to be discharged according to the previous and following illustration:


Die restlichen Operationen sind:


The remaining operations are:


Operation ZUSAMMENFÜHRUNGOperation MERGE Einführungintroduction

Wird dieselbe Objektversion synchron oder asynchron bearbeitet und gespeichert, so entstehen Objektvarianten. Beispielsweise enthält nachfolgend dargestellter Objektversionsgraph zur Objektversion a1 die Objektvarianten a2, a3 und a4:


If the same object version is edited and saved synchronously or asynchronously, object variants are created. For example, the object version graph for object version a 1 shown below contains the object variants a 2 , a 3 and a 4 :


Objektvarianten müssen zu einer resultierenden Objektversion zusammengeführt werden können. Eine zusammengeführte Objektversion besitzt mehr als eine Eingangskante im Objektversionsgraphen. In dem oben dargestellten Objektversionsgraphen sind beispielsweise die Objektversionen a2 und a3 zur Objektversion a5 zusammengeführt worden. Die Zusammenführung lässt sich in drei Teilprobleme zerlegen: Object variants must be able to be merged into a resulting object version. A merged object version has more than one input edge in the object version graph. In the object version graph shown above, for example, object versions a 2 and a 3 have been merged to object version a 5 . The merge can be broken down into three sub-problems:

Objektversionenobject versions

Die Menge Z(a) ⊆ {ai ∈ M|ω(ai) = a} soll zusammenführbare Objektversionen ai des Objekts a enthalten. Für ein Objekt kann es mehrere Mengen Z(a) geben. Ergebnis der Zusammenführung soll die Objektversion zr ∈ W sein. Dazu sind die Kanten {(ai, zr) ∈ Z(a) × {zr}} in die Bearbeitungsrelation V und das geordnete Paar (zr, a) in die Abbildung w einzutragen. Man spricht dann von einer Zusammenführung von Objektversionen, wenn die Menge Z(a) mindestens zwei Elemente enthält:


  • - die Objektversionen a1 und a2 werden zur Objektversion a3 zusammengeführt
  • - die Objektversion b1 wird als Objektversion b2 geladen
  • - beide Objektvarianten von c0 sind gelöscht worden, daher ist weder ein Laden noch eine Zusammenführung möglich
The set Z (a) ⊆ {a i ∈ M | ω (a i ) = a} should contain mergable object versions a i of the object a. There can be several sets Z (a) for an object. The result of the merge should be the object version z r ∈ W. For this, the edges {(a i , z r ) ∈ Z (a) × {z r }} are in the machining relation V and enter the ordered pair (z r , a) in the figure w. One speaks of a merging of object versions if the set Z (a) contains at least two elements:


  • - Object versions a 1 and a 2 are merged to object version a 3
  • - Object version b 1 is loaded as object version b 2
  • - Both object variants of c 0 have been deleted, so neither loading nor merging is possible

Attributeattributes

Die Attribute der resultierenden Objektversion zr ∈ W sind mit Werten zu belegen. Die Attributwerte von zr können jedoch oft nicht aus den Attributwerten der zusammengeführten Objektversionen berechnet werden. So kann beispielsweise bei der zugrunde liegenden zweiwertigen Logik kein resultierender Wert aus unterschiedlichen Boolschen Attributwerten berechnet werden. Ein akzeptierter Attributwert kann in der Regel erst durch einen manuellen Eingriff des Bearbeiters bestimmt werden. The attributes of the resulting object version z r ∈ W must be assigned values. However, the attribute values of z r can often not be calculated from the attribute values of the merged object versions. For example, with the underlying two-valued logic, no resulting value can be calculated from different Boolean attribute values. An accepted attribute value can usually only be determined through manual intervention by the processor.

Bindungenbonds

Wenn die zusammenzuführenden Objektversionen ai ∈ Z Knoten des Bindungsgraphen sind, so erfordert die Eintragung der Kanten

{(xi, yj) ∈ (M ∪ W) × W|xi = zr ∨ yj = zr} ⊆ B
in den Bindungsgraphen analog zur Attributbelegung in der Regel einen manuellen Eingriff des Bearbeiters. Dies ist immer dann der Fall, wenn die zusammenzuführenden Objektversionen ai ∈ Z unterschiedliche Objektversionen binden oder durch unterschiedliche Objektversionen gebunden sind.
If the object versions to be merged are a i ∈ Z nodes of the binding graph, the entry of the edges is required

{(x i , y j ) ∈ (M ∪ W) × W | x i = z r ∨ y j = z r } ⊆ B
in the binding graphs, as with the attribute assignment, usually a manual intervention by the processor. This is always the case if the object versions a i ∈ Z to be merged bind different object versions or are bound by different object versions.

Offensichtlich ist eine vom Nutzer akzeptierte Berechnung der Attributwerte und Bindungen für die zusammengeführte Objektversion zr ∈ W auf der Basis einer Menge zusammenführbarer Objektversionen Z(a) ohne manuellen Eingriff nicht möglich. Daher gilt auch beim Zusammenführen die Einschränkung, dass maximal eine Objektversion pro Objekt selektiert und geladen werden darf:


H(V) bezeichnet die transitive Hülle der Objektversionsrelation. Objektversionen zi ∈ Z ⊆ M müssen folgende Bedingungen erfüllen:

  • 1. Wenigstens zwei Elemente müssen in Z eingetragen sein
  • 2. Alle Elemente zi ∈ Z müssen Objektversionen desselben Objekts sein.
  • 3. Für jeweils zwei Elemente zi, zj ∈ Z darf es im Objektversionsgraphen keinen Weg (zi, . . ., zj) oder (zj, . . ., zi) geben. Würde ein Weg existieren, so wären zi und zj keine Objektvarianten, sondern Objektrevisionen.
Obviously, a user-accepted calculation of the attribute values and bindings for the merged object version z r ∈ W based on a set of mergable object versions Z (a) is not possible without manual intervention. Therefore, the restriction also applies when merging that a maximum of one object version per object may be selected and loaded:


H (V) denotes the transitive envelope of the object version relation. Object versions z i ∈ Z ⊆ M must meet the following conditions:
  • 1. At least two elements must be entered in Z.
  • 2. All elements z i ∈ Z must be object versions of the same object.
  • 3. For every two elements z i , z j ∈ Z, there must be no path (z i ,..., Z j ) or (z j , ... , Z i ) in the object version graph. If a path existed, z i and z j would not be object variants, but object revisions.

Die Zusammenführung einer Menge von Objektversionen Z ⊆ M zu einer gemeinsamen Objektversion zr ∈ W wird folgendermaßen gehandhabt:


The combination of a set of object versions Z ⊆ M into a common object version z r ∈ W is handled as follows:


Die resultierende Objektversion zr ∈ W ist durch Laden der Objektversion xi ∈ M entstanden. Die Kante (xi, zr) wird aus der Bearbeitungsrelation V und - sofern eingetragen - aus der Änderungsrelation A ausgetragen. Die neu erzeugten Kanten (zi, zr) ∈ Z × {zr} werden in V und A eingetragen. Die Eintragungen in die Änderungsrelation A stellen sicher, dass das Ergebnis auch dann gespeichert wird, wenn zr nicht geändert wird. Beispiel 7 Zusammenführbare Objektversionen

The resulting object version z r ∈ W was created by loading the object version x i ∈ M. The edge (x i , z r ) becomes the machining relation V and - if entered - from the change relation A discharged. The newly generated edges (z i , z r ) ∈ Z × {z r } are in V and A entered. The entries in the change relation A ensure that the result is saved even if z r is not changed. Example 7 Mergable object versions

Die Elemente des folgenden Mengensystems sind zusammenführbare Teilmengen des dargestellten Objektversionsgraphen:

Z ∈ {{a2, a3}, {a2, a4}, {a3, a4}, {a4, a5}, {a2, a3, a4}, {a3, a4, a5}} Beispiel 8 Zusammenführung von Objektversionen

The elements of the following set system are mergable subsets of the object version graph shown:

Z ∈ {{a 2 , a 3 }, {a 2 , a 4 }, {a 3 , a 4 }, {a 4 , a 5 }, {a 2 , a 3 , a 4 }, {a 3 , a 4 , a 5 }} Example 8 Merging object versions

Nach dem Laden der Objektversion xi ∈ M als zr ∈ W ist die Bearbeitungsrelation:

V = {(xi, zr)}
After loading the object version x i ∈ M as z r ∈ W the processing relation is:

V = {(x i , z r )}

Nach der Zusammenführung gilt:

V = {(z1, zr), (z2, zr)} A = {(z1, zr), (z2, zr)}
After the merge:

V = {(z 1 , z r ), (z 2 , z r )} A = {(z 1 , z r ), (z 2 , z r )}

Operation MODERNISIERENMODERNIZE Operation Überholte ObjektversionenObsolete object versions

Gegeben seien zwei Elemente e1, f1 ∈ M mit (e1, f1) ∈ B Durch die Erstellung einer neuen Objektversion des bindenden Elements e2 aus e1 wird die Objektversion f1 zur überholten Objektversion:


Given two elements e 1 , f 1 ∈ M with (e 1 , f 1 ) ∈ B, by creating a new object version of the binding element e 2 from e 1 , the object version f 1 becomes an outdated object version:


Überholte Objektversionen sind zwar aktuell, sie sind jedoch an Objektversionen gebunden, von denen neuere Objektversionen existieren. Ein versioniertes System für den Planungsprozess im Bauwesen muss überholte Objektversionen unterstützen. In der Praxis ist es nämlich für einen Fachplaner unmöglich, nach der Änderung einer Objektversion alle davon abhängigen Objektversionen zu aktualisieren: Die Gründe für diese Einschätzung sind die Komplexität der Fachmodelle und vor allen Dingen die Achtung der Datenhoheit anderer Fachplaner. Obsolete object versions are current, but they are bound to object versions, of which newer object versions exist. A versioned system for the planning process in construction must support outdated object versions. In practice it is for impossible for a specialist planner to change all of them after changing an object version Update object versions: The reasons for this assessment are the complexity of the Specialist models and above all respect for the data sovereignty of other specialist planners.

Dies soll wieder anhand des Beispiels aus dem Softwareentwicklungsprozess von Seite 8 verdeutlicht werden. Eine Funktion a( ) verwendet eine Funktion b( ): die Funktion a( ) ist abhängig von b( ). Die Schnittstelle von b( ) wird nachträglich geändert: Die neue Version hat einen zusätzlichen Parameter. Bei einer Änderung von b( ) sind folgende Punkte zu beachten:

  • - Nach einer Änderung der Schnittstelle von b( ) darf der Aufruf von b( ) in der ursprünglichen Version von a( ) nicht geändert werden: Wird diese Version von a( ) nämlich von einem Kunden eingesetzt, so kann sie von den Entwicklern nicht mehr rekonstruiert und damit auch nicht mehr korrigiert werden.
  • - Die Änderung von b( ) muss unabhängig von der b( ) verwendenden Software durchführbar sein. So sind im Softwareentwicklungsprozess durch die Ableitung von Versionen Basis- Funktionalitäten unabhängig von den Applikationen manipulierbar. Erst wenn die Entwicklungen abgeschlossen sind, können die dann "überholten" Applikationen portiert werden.
  • - Änderungen oder Fehlerkorrekturen von verwendeter Software dürfen nicht von jedem beliebigen Entwickler gemacht werden. In der Regel wird in einem solchen Fall eine Anforderung formuliert, die vom zuständigen Entwickler geprüft und ggfs. umgesetzt wird. Analog dazu kann durch Anfragen im Bauplanungsprozess die Datenhoheit des verantwortlichen Planers geachtet werden.
This should again be illustrated using the example from the software development process on page 8. A function a () uses a function b (): the function a () depends on b (). The interface of b () is changed later: The new version has an additional parameter. When changing b (), the following points should be noted:
  • - After changing the interface of b (), the call to b () in the original version of a () must not be changed: If this version of a () is used by a customer, the developers can no longer use it reconstructed and therefore no longer be corrected.
  • - The change of b () must be feasible regardless of the software using b (). In the software development process, by deriving versions, basic functionalities can be manipulated independently of the applications. Only when the developments have been completed can the "outdated" applications be ported.
  • - Any developer may not make changes or error corrections to the software used. In such a case, a requirement is usually formulated, which is checked by the responsible developer and, if necessary, implemented. Similarly, the data sovereignty of the responsible planner can be respected by making inquiries in the construction planning process.

Überholte Objektversionen können formal definiert werden:


Obsolete object versions can be defined formally:


Die Menge U ⊆ M aller überholten Objektversionen ist:


The set U ⊆ M of all outdated object versions is:


ModernisierenModernize

Unter dem Modernisieren einer überholten Objektversion f1 versteht man das Andern der Bindungen dergestalt, dass sie nur an Objektversionen ohne Nachfolger gebunden ist. Selbstverständlich kann man auch gebundene Objektversionen an Vorgängerversionen binden - beispielsweise um eine Änderung wieder rückgängig zu machen.

The modernization of an obsolete object version f 1 means changing the bindings in such a way that they are only bound to object versions without a successor. Of course, you can also bind bound object versions to previous versions - for example, to undo a change.

Die beim Ändern von Bindungen einzuhaltenden Bedingungen sind bereits für das Ein- und Austragen von Bindungen beschrieben worden. The conditions to be followed when changing bindings are already for the entry and exit Discharge of bonds has been described.

Operation REDUKTIONOperation REDUCTION Reduktion des WorkspaceReduction of the workspace

Neu erzeugte, geänderte und gelöschte Objektversionen werden nach der Bearbeitung in M gespeichert. Ungeänderte Objektversionen brauchen jedoch nicht in M gespeichert zu werden. Das Entladen ungeänderter Objektversionen aus W sowie die konsistente Behandlung der davon betroffenen Bindungen wird Reduktion des Workspace genannt. Folgende Teilmenge der Bearbeitungsrelation ist zu entladen:


Newly created, changed and deleted object versions are saved in M after processing. However, unchanged object versions do not need to be saved in M. The unloading of unchanged object versions from W and the consistent handling of the bindings affected by this is called reducing the workspace. The following subset of the machining relation is to be unloaded:


In die Änderungsrelation A sind die geordneten Paare (δ0, aj) ∈ Δ × W für neu erzeugte Objektversionen eingetragen. Nach obiger Mengenoperation enthält E nur geordnete Paare von unveränderten Objektversionen, die aus M gelden wurden. Beispiel 9 Reduktion des Workspace

In the change relation A the ordered pairs (δ 0 , a j ) ∈ Δ × W are entered for newly created object versions. Contains after the above set operation e only ordered pairs of unchanged object versions that were paid from M. Example 9 Reduction of the workspace

Gegeben ist die dargestellte strukturierte Objektversionsmenge. Die Mengen und Relationen des Projekts sind:

M = {a1, b1, c1, d1, e1, f1}

B = {(a1, c1), (b1, c1), (c1, d1), (c1, e1), (e1, f1)}

V = {(δ0, a1), (δ0, b1), (δ0, c1), (δ0, d1), (δ0, e1), (δ0, f1)}
The structured object version set shown is given. The quantities and relations of the project are:

M = {a 1 , b 1 , c 1 , d 1 , e 1 , f 1 }

B = {(a 1 , c 1 ), (b 1 , c 1 ), (c 1 , d 1 ), (c 1 , e 1 ), (e 1 , f 1 )}

V = {(δ 0 , a 1 ), (δ 0 , b 1 ), (δ 0 , c 1 ), (δ 0 , d 1 ), (δ 0 , e 1 ), (δ 0 , f 1 ) }

Die Mengen und Relationen des Workspace sind:

M = {a2, b2, c2, d2, e2, f2}

B = {(a2, c2), (b2, c2), (c2, d2), (c2, e2), (e2, f2)}

V = {(a1, a2), (b1, b2), (c1, c2), (d1, d2), (e1, e2), (f1, f2)}
The quantities and relations of the workspace are:

M = {a 2 , b 2 , c 2 , d 2 , e 2 , f 2 }

B = {(a 2 , c 2 ), (b 2 , c 2 ), (c 2 , d 2 ), (c 2 , e 2 ), (e 2 , f 2 )}

V = {(a 1 , a 2 ), (b 1 , b 2 ), (c 1 , c 2 ), (d 1 , d 2 ), (e 1 , e 2 ), (f 1 , f 2 )}

Die Objektversion c2 ∈ W wird geändert. Die von c2 abhängigen Objektversionen d2, e2, f2 ∈ W sind von dieser Änderung ebenfalls betroffen. Die Änderungsrelation des Workspace ist:

A = {(c1, c2), (d1, d2), (e1, e2), (f1, f2)}
The object version c 2 ∈ W is changed. The object versions d 2 , e 2 , f 2 ∈ W dependent on c 2 are also affected by this change. The change relation of the workspace is:

A = {(c 1 , c 2 ), (d 1 , d 2 ), (e 1 , e 2 ), (f 1 , f 2 )}

Der Workspace wird reduziert. Die geordneten Paare (a1, a2), (b1, b2) ∈ V können entladen werden, da ihre Attributwerte während der Bearbeitung nicht geändert wurden.

The workspace is reduced. The ordered pairs (a 1 , a 2 ), (b 1 , b 2 ) ∈ V can be unloaded because their attribute values were not changed during editing.

Nach der Reduktion betragen die Mengen und Relationen des Workspace:

W = {c2, d2, e2, f2}

B = {(a1, c2), (b1, c2), (c2, d2), (c2, e2), (e2, f2)}

V = {(c1, c2), (d1, d2), (e1, e2), (f1, f2)}

A = {(c1, c2), (d1, d2), (e1, e2), (f1, f2)}
After the reduction, the quantities and relations of the workspace are:

W = {c 2 , d 2 , e 2 , f 2 }

B = {(a 1 , c 2 ), (b 1 , c 2 ), (c 2 , d 2 ), (c 2 , e 2 ), (e 2 , f 2 )}

V = {(c 1 , c 2 ), (d 1 , d 2 ), (e 1 , e 2 ), (f 1 , f 2 )}

A = {(c 1 , c 2 ), (d 1 , d 2 ), (e 1 , e 2 ), (f 1 , f 2 )}

Operation SPEICHERNSAVE operation Einführungintroduction

Im Workspace werden Objektversionen bearbeitet. Diese werden entweder im Workspace neu erzeugt oder als abgeleitete Objektversionen aus dem Projekt geladen. Die Bearbeitung im Workspace hat daher keinerlei Auswirkungen auf die Mengen und Relationen des Projekts. Am Ende der Bearbeitung entscheidet sich der Nutzer für eine der beiden folgenden Möglichkeiten:

  • - die Ergebnisse seiner Bearbeitung werden verworfen
  • - die Ergebnisse seiner Bearbeitung werden im Projekt gespeichert
Object versions are edited in the workspace. These are either newly created in the workspace or loaded as derived object versions from the project. Processing in the workspace therefore has no effect on the quantities and relations of the project. At the end of the processing, the user decides on one of the following two options:
  • - The results of its processing are discarded
  • - The results of its processing are saved in the project

Verwerfen der Ergebnisse der Bearbeitung heißt, die Mengen und Relationen des Workspace zu leeren. Discarding the processing results means the quantities and relations of the workspace to empty.

Speichernto save

Da in der Menge M voraussetzungsgemäß nur aktuelle Objektversionen gespeichert werden, müssen nach der Reduktion die noch fehlenden Objektversionen aktualisiert werden. Die Mengen und Relationen des Projekts sind nach dem Update wie folgt zu aktualisieren:

M := M ∪ W Ω := Ω ∪ Ω ω := ω ∪ ω B := B ∪ B V := V ∪ V
Since only current object versions are stored in the set M, the missing object versions must be updated after the reduction. The quantities and relations of the project are to be updated as follows after the update:

M: = M ∪ W Ω: = Ω ∪ Ω ω: = ω ∪ ω B: = B ∪ B V: = V ∪ V

Ausführungsbeispielembodiment

Die Erfindung wird im Folgenden an einem Ausführungsbeispiel näher erläutert. In der zugehörigen Zeichnung erläutern die Fig. 1 bis 13 die Arbeitsschritte anhand einer Graphendarstellung. The invention is explained in more detail below using an exemplary embodiment. In the accompanying drawings Figs. 1 to 13 illustrate the working steps by means of a graph representation.

Das Beispiel erläutert die Unterstützung der Kooperation von drei Akteuren des Bauplanungsprozesses. Es handelt sich dabei um einen Architekten, einen Statiker und einen Bewehrungsplaner. Ziel ist es, die Konsistenz des gemeinsamen Arbeitsmaterials zu gewährleisten. The example explains the support of the cooperation of three actors of the Planning process. It is an architect, a structural engineer and one Reinforcement planner. The aim is to ensure the consistency of the common working material.

Der Architekt legt die Geometrie g des Bauteils Stütze fest. Der Statiker berechnet die erforderliche Bewehrung und dokumentiert sie im statischen Bericht s. Der Bewehrungsplaner konstruiert eine geeignete Bewehrung b. Es existieren die in Fig. 1 dargestellten Bindungen {(g, s), (g, b), (s, b)}. The architect defines the geometry g of the column component. The structural engineer calculates the required reinforcement and documents it in the structural report. The reinforcement planner designs a suitable reinforcement b. The bonds {(g, s), (g, b), (s, b)} shown in FIG. 1 exist.

Der gewählten Modellbildung liegen folgende Annahmen zu Grunde:

  • - Die Bauteilgeometrie der Stütze liegt als ein Objekt g vor.
  • - Die Statik liegt als Objekt s vor. Die Menge der Statik-Objekte ist auf die Menge der Bauteilgeometrien abbildbar.
  • - Die Bewehrung b wird als Objektmenge mit den Bewehrungsstäben und den Bügeln gebildet. Die Mengenbildung ist zwar keine Voraussetzung, sie ist jedoch zur Lösung der vorliegenden Problemstellung zweckmäßig: Bei einer Änderung der bindenden Objekte g und s muss nämlich die gesamte Stützenbewehrung b vom Bewehrungsplaner kontrolliert und gegebenenfalls geändert werden. Die Menge der Bewehrungsobjekte ist auf die Menge der Bauteilgeometrien und auf die Menge der Statik-Objekte abbildbar.
The chosen model is based on the following assumptions:
  • - The component geometry of the column is available as an object g.
  • - The statics exist as object s. The set of structural objects can be mapped to the set of component geometries.
  • - The reinforcement b is formed as an object set with the reinforcement bars and the stirrups. The quantity formation is not a prerequisite, but it is useful to solve the present problem: If the binding objects g and s are changed, the entire column reinforcement b must be checked by the reinforcement planner and changed if necessary. The set of reinforcement objects can be mapped to the set of component geometries and the set of structural objects.

Alternativ dazu sind auch andere Modellbildungen möglich, wenn dies für die Applikation zweckmäßig ist. So können beispielsweise andere Klasseneinteilungen gewählt werden. Modelle können auch auf der Basis von Dokumenten gebildet werden. Da Dokumente in der Regel Mengen von Objekten enthalten, verursacht die Verwendung von Dokumenten vor allem zwei Probleme:

  • - Die Objektmenge des bindenden Dokuments ändert sich bei jeder Änderung eines darin enthaltenen Objekts. Abhängige Dokumente werden dadurch häufig ungültig und sind zu aktualisieren.
  • - Nach einer Änderung ist nicht klar, welche Objekte des gebundenen Dokuments betroffen sind. Da potenziell jedes Objekt von der Änderung betroffen sein kann, muss der Planer alle Elemente der Objektmenge des Dokuments kontrollieren und gegebenenfalls aktualisieren.
Alternatively, other model configurations are also possible if this is expedient for the application. For example, other classifications can be selected. Models can also be created on the basis of documents. Since documents usually contain sets of objects, the use of documents mainly causes two problems:
  • - The quantity of objects in the binding document changes each time an object contained therein is changed. Dependent documents are often invalid and have to be updated.
  • - After a change, it is not clear which objects in the bound document are affected. Since every object can potentially be affected by the change, the planner must check all elements of the object set of the document and update them if necessary.

Wie Fig. 2 zeigt, wird hierzu im Schritt 1 die Geometrie des Bauteils Stütze erzeugt. Die Objektversion g1 der Geometrie der Stütze wird vom Architekten geplant. As shown in FIG. 2, the geometry of the component support is generated in step 1. The object version g 1 of the column geometry is planned by the architect.

Im Schritt 2 fertigt gemäß Fig. 3 der Statiker die Statik s2 der Stütze an. Er bezieht sich dabei auf den Revisionsstand [4] g1 der Stützengeometrie. Das geordnete Paar (g1, s2) ∈ B drückt aus, dass die Statik an die Geometrie der Stütze gebunden ist. Die Bindung wird im Modell eingetragen. Nach einer Änderung der Stützengeometrie kann jetzt beispielsweise die Menge der überholten Objektversionen berechnet werden. In step 2, the structural engineer produces the structural analysis s 2 of the support according to FIG. 3. It refers to the revision level [4] g 1 of the column geometry. The ordered pair (g 1 , s 2 ) ∈ B expresses that the statics are bound to the geometry of the column. The binding is entered in the model. After changing the column geometry, the amount of object versions that have been overhauled can now be calculated.

Die Art der Benachrichtigung des Statikers ist hierbei nicht dargestellt. So können beispielsweise beim Speichern einer neuen Objektversion der Stützengeometrie diejenigen Planer, die sich auf die Vorgängerversion bezogen haben, auf deren Wunsch hin benachrichtigt werden - etwa durch E-Mail (Bringschuld). Es ist ebenfalls möglich, dass der Statiker im Rahmen eines Freigabeverfahrens [4] überprüft, ob seine statischen Berechnungen überholt sind (Holschuld). The type of notification to the structural engineer is not shown here. So can For example, when saving a new object version of the column geometry, those planners who have referred to the previous version, upon request they will be notified - for example by email (delivery obligation). It is also possible that the structural engineer is part of a Approval procedure [4] checks whether its static calculations are out of date (collect debt).

Im Schritt 3 wird, wie in Fig. 4 dargestellt, die Bewehrung geplant. Der Bewehrungsplaner konstruiert die Stützenbewehrung als Objektversion b3. Es werden zwei Bindungen (g1, b3) und (s2, b3) eingetragen, da sich die Konstruktion der Bewehrung b3 sowohl auf die Stützengeometrie g1 als auch auf die Statik s2 bezieht. In step 3, as shown in Fig. 4, the reinforcement is planned. The reinforcement planner designs the column reinforcement as object version b 3 . Two bonds (g 1 , b 3 ) and (s 2 , b 3 ) are entered because the construction of the reinforcement b 3 relates both to the column geometry g 1 and to the statics s 2 .

Die Fig. 5 und 6 erläutern Schritt 4, mit dem die Geometrie der Stütze geändert wird. Der Architekt lädt die Objektversion g1 der Stützengeometrie als Objektversion g4 in den Workspace. Nach dem Laden haben g1 und g4 die gleichen Abmessungen. Dieser Zustand ist in Fig. 5 dargestellt. FIGS. 5 and 6 illustrate step 4, with which the geometry of the support is changed. The architect loads the object version g 1 of the column geometry into the workspace as object version g 4 . After loading, g 1 and g 4 have the same dimensions. This state is shown in Fig. 5.

Der Architekt ändert die Abmessungen des Stützenquerschnitts und speichert. Es ensteht der in Fig. 6 dargestellte Zustand. The architect changes the dimensions of the column cross section and saves. The state shown in FIG. 6 arises.

Alle Objektversionen, die sich auf die Vorgängerversion g1 beziehen, sind jetzt überholt. Es handelt sich um die Objektversionen s2 und b3. All object versions that relate to the previous version g 1 are now obsolete. These are the object versions s 2 and b 3 .

Mit Schritt 5 wird gemäß Fig. 7 versucht, die Bewehrung zu modernisieren. Der Bewehrungsplaner hat festgestellt, dass die Bewehrung b3 überholt ist. Er lädt die Objektversion b3 als Objektversion b5 zur Bearbeitung in den Workspace. Step 5 tries to modernize the reinforcement according to FIG. 7. The reinforcement planner has determined that reinforcement b 3 is outdated. It loads the object version b 3 as object version b 5 into the workspace for processing.

Der Bewehrungsplaner versucht, b5 an die geänderte Stützengeometrie g4 anzupassen. Er trägt die vorhandene Bindung (g1, b5) aus und die neue Bindung (g4, b5) ein. Da b5 jedoch noch an die Statik s2 gebunden ist, existiert ein Weg (g1, s2, b5) im Bindungsgraphen. Das Modell ist inkonsistent, da die Bedingung (1) auf Seite 8 nicht erfüllt ist. Objektversion b5 ist nämlich von den beiden Objektversionen q1 und g4 des Objekts g abhängig, wie dies in Fig. 8 dargestellt ist. The reinforcement planner tries to adapt b 5 to the changed column geometry g 4 . He carries out the existing bond (g 1 , b 5 ) and the new bond (g 4 , b 5 ). However, since b 5 is still bound to statics s 2 , there is a path (g 1 , s 2 , b 5 ) in the bond graph. The model is inconsistent because condition (1) on page 8 is not met. Object version b 5 is namely dependent on the two object versions q 1 and g 4 of object g, as shown in FIG. 8.

Der Bewehrungsplaner erkennt, dass die Bewehrung nicht vor der Statischen Berechnung aktualisiert werden kann. Er speichert nicht, sondern verwirft die Ergebnisse der Bearbeitung. Damit gilt der in Fig. 9 dargestellte Zustand. The reinforcement planner recognizes that the reinforcement cannot be updated before the static calculation. It does not save, but discards the results of the processing. The state shown in FIG. 9 thus applies.

Im anschließenden Schritt 6 soll die Statik modernisiert werden. Der Statiker stellt fest, dass s2 infolge Änderung der Stützengeometrie überholt ist. Er lädt Objektversion s2 als s6 in den Workspace. s6 ist nach dem Laden noch an g1 gebunden, wie in Fig. 10 gezeigt. In step 6, the statics are to be modernized. The structural engineer notes that s 2 is obsolete due to a change in the column geometry. It loads object version s 2 as s 6 into the workspace. s 6 is still bound to g 1 after loading, as shown in FIG. 10.

Der Statiker trägt die vorhandene Bindung (g1, s6) aus und die neue Bindung (g4, s6) ein. Danach ändert er die Statik s6 entsprechend der Stützengeometrie g4. Es gilt Fig. 11. The structural engineer enters the existing bond (g 1 , s 6 ) and the new bond (g 4 , s 6 ). Then he changes the statics s 6 according to the column geometry g 4 . It is Fig. 11.

Im Schritt 7 wird die Bewehrung modernisiert. Der Bewehrungsplaner lädt Bewehrungsversion b3 als b7. Nach dem Laden ist b7 noch an g1 und s2 gebunden. Diesen Zustand zeigt Fig. 12. In step 7, the reinforcement is modernized. The reinforcement planner loads reinforcement version b 3 as b 7 . After loading, b 7 is still bound to g 1 and s 2 . This state is shown Fig. 12.

Die Bindungen (g1, b7) und (s2, b7) werden durch (g4, b7) und (s6, b7) ersetzt. Die Bewehrung b7 gemäß Statik s6 wird in Stütze g4 verlegt. Das Ergebnis ist in Fig. 13 dargestellt. Literatur [1] P. J. Pahl, K. Beucke; Neuere Konzepte des CAD im Bauwesen: Stand und Entwicklungen; Digital proceedings des Internationalen Kolloquiums über Anwendungen der Informatik und Mathematik in Architektur und Bauwesen (IKM), Bauhaus-Universität Weimar, 2000
[2] P. J. Pahl, R. Damrath; Mathematische Grundlagen der Ingenieurinformatik; Springer- Verlag; Berlin; 2000
[3] P. J. Pahl; Skript Datenstrukturen; Theoretische Methoden der Bau- und Verkehrstechnik, Technische Universität Berlin; 2000
[4] K. Beucke; Skript "CAE im Planungsprozess"; Bauhaus-Universität Weimar; Weimar; 2001
The bonds (g 1 , b 7 ) and (s 2 , b 7 ) are replaced by (g 4 , b 7 ) and (s 6 , b 7 ). Reinforcement b 7 according to statics s 6 is laid in column g 4 . The result is shown in Fig. 13. Literature [1] PJ Pahl, K. Beucke; Newer concepts of CAD in construction: status and developments; Digital proceedings of the International Colloquium on Applications of Computer Science and Mathematics in Architecture and Building (IKM), Bauhaus University Weimar, 2000
[2] PJ Pahl, R. Damrath; Mathematical foundations of engineering informatics; Springer publishing house; Berlin; 2000
[3] PJ Pahl; Script data structures; Theoretical methods of construction and traffic engineering, Technical University Berlin; 2000
[4] K. Beucke; Script "CAE in the planning process"; Bauhaus University Weimar; Weimar; 2001

Claims (1)

1. Verfahren zur verteilten Bearbeitung eines Projekts im Bauplanungsprozess mit CAE, dadurch gekennzeichnet, dass der Gesamtprozess betrachtet wird und das gemeinsame Arbeitsmaterial der Bearbeiter auf die nachfolgend genannten strukturierten Mengen zurückgeführt wird, nämlich - Mengen von Objekten und Objektversionen - eine Abbildung der Objektversionsmenge in die Objektmenge zur Zuordnung der Objektversionen zu den Objekten - eine binäre Relation in der Objektversionsmenge zur Bildung der Änderungsbeziehungen - eine binäre Relation in der Objektversionsmenge zur Bildung der Bindungsbeziehungen und dass die Bearbeitung zurückgeführt wird auf die Interpretation und Manipulation dieser strukturierten Mengen durch eine oder mehrere der nachfolgend genannten Operationen für die verteilte Bearbeitung, nämlich - Selektion - Laden - Entladen - Zusammenführen - Modernisieren - Reduzieren - Speichern - Bearbeiten bestehend aus Objektversion erzeugen, Objektversion ändern, Objektversion löschen, Bindung erzeugen, Bindung löschen und Update und für jede Operation die Konsistenzbedingungen mit den Regeln der Mengenlehre formal beschrieben werden. 1. Process for the distributed processing of a project in the construction planning process with CAE, characterized in that the overall process is considered and the common working material of the processor is reduced to the structured quantities mentioned below, namely - sets of objects and object versions - a mapping of the object version set into the object set for assigning the object versions to the objects - a binary relation in the object version set to form the change relationships - a binary relation in the object version set to form the binding relationships and that the processing is attributed to the interpretation and manipulation of these structured sets by one or more of the following operations for the distributed processing, namely - selection - Load - unload - merge - modernize - To reduce - To save - Edit consisting of creating object version, changing object version, deleting object version, creating binding, deleting binding and update and the consistency conditions for each operation are formally described with the rules of set theory.
DE10154858A 2001-11-08 2001-11-08 Method for distributed processing of a construction project using CAE, whereby a whole process is considered so that common working materials are ordered in a consistent manner for the whole project Withdrawn DE10154858A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE10154858A DE10154858A1 (en) 2001-11-08 2001-11-08 Method for distributed processing of a construction project using CAE, whereby a whole process is considered so that common working materials are ordered in a consistent manner for the whole project

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10154858A DE10154858A1 (en) 2001-11-08 2001-11-08 Method for distributed processing of a construction project using CAE, whereby a whole process is considered so that common working materials are ordered in a consistent manner for the whole project

Publications (1)

Publication Number Publication Date
DE10154858A1 true DE10154858A1 (en) 2003-05-28

Family

ID=7705033

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10154858A Withdrawn DE10154858A1 (en) 2001-11-08 2001-11-08 Method for distributed processing of a construction project using CAE, whereby a whole process is considered so that common working materials are ordered in a consistent manner for the whole project

Country Status (1)

Country Link
DE (1) DE10154858A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007014866A3 (en) * 2005-07-28 2007-04-05 Apostolos Konstantinidis System and process for the detailed design and production of reinforcement for buildings
CN105912740A (en) * 2015-12-15 2016-08-31 大连理工大学 CAE distributed cooperative work method based on cloud calculation

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007014866A3 (en) * 2005-07-28 2007-04-05 Apostolos Konstantinidis System and process for the detailed design and production of reinforcement for buildings
CN105912740A (en) * 2015-12-15 2016-08-31 大连理工大学 CAE distributed cooperative work method based on cloud calculation
CN105912740B (en) * 2015-12-15 2019-03-05 大连理工大学 A kind of CAE distributed collaboration working method based on cloud computing

Similar Documents

Publication Publication Date Title
DE69811790T2 (en) Deriving process models from audit processes for workflow management systems
DE3855475T2 (en) Software management structure
EP1061422B1 (en) Computer system for the definition, optimisation and control of processes
DE19705955A1 (en) Workflow processing model implementation method
DE10040987B4 (en) Method and apparatus for matching updates of redundant data in relational databases
DE3485999T2 (en) HIGH-SPEED PROCESSING SYSTEM FOR COMPUTER SYSTEM.
DE102019131291B4 (en) SIMULTANEOUS PERFORMANCE OF SERVICES
DE19712946A1 (en) Computerised method of automatically expanding specifications of process model in workflow process environment
DE102005055133A1 (en) System for machine-aided design of technical devices
DE112013005993T5 (en) Method, apparatus and computer readable medium for optimal determination of data subsets
WO2010124853A2 (en) Method for producing at least one application guide
DE3850444T2 (en) Program management process for distributed processing systems and customized device.
DE102019001129A1 (en) Numerical control device
EP2648094B1 (en) Method and system for creating a source code for a computer program for executing and simulating a process
EP3364257B1 (en) Method for operating an engineering system for an industrial process automation system and control program
EP1674954A1 (en) System and method for reusing of design related data
DE19960048A1 (en) Start condition processing method for computer workflow management system evaluates correctness of control links for each process activity and verifies time interval conditions
DE112014003082B4 (en) Programmable control system, programmable control, program display device and program display method
DE10256990A1 (en) Program code generator and program
DE4417393A1 (en) A method of producing specific program systems and collections of support tools to facilitate program system manufacturing work
DE10154858A1 (en) Method for distributed processing of a construction project using CAE, whereby a whole process is considered so that common working materials are ordered in a consistent manner for the whole project
DE102012210482A1 (en) Method and system for migrating business process instances
EP2479664B1 (en) System and method for generating a source code for a computer program
EP1950635B1 (en) Method for operating an automation system
EP1202166B1 (en) System for verification of software application models in strings of software development tools

Legal Events

Date Code Title Description
OR8 Request for search as to paragraph 43 lit. 1 sentence 1 patent law
8110 Request for examination paragraph 44
8105 Search report available
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20110601

Effective date: 20110531

R082 Change of representative