DE10031041A1 - Application data access provision method for computer aided design, involves forwarding request referring to several data objects for further processing, when request is concerned with one other data object - Google Patents

Application data access provision method for computer aided design, involves forwarding request referring to several data objects for further processing, when request is concerned with one other data object

Info

Publication number
DE10031041A1
DE10031041A1 DE10031041A DE10031041A DE10031041A1 DE 10031041 A1 DE10031041 A1 DE 10031041A1 DE 10031041 A DE10031041 A DE 10031041A DE 10031041 A DE10031041 A DE 10031041A DE 10031041 A1 DE10031041 A1 DE 10031041A1
Authority
DE
Germany
Prior art keywords
data
request
objects
data object
application
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.)
Ceased
Application number
DE10031041A
Other languages
German (de)
Inventor
Jirka Stejskal
Tomas Rokos
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.)
Autodesk Inc
Original Assignee
Autodesk Inc
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 Autodesk Inc filed Critical Autodesk Inc
Priority to DE10031041A priority Critical patent/DE10031041A1/en
Priority to US09/876,285 priority patent/US6918121B2/en
Publication of DE10031041A1 publication Critical patent/DE10031041A1/en
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure

Abstract

A request related to one of application data item is received, referring to several data objects. The request with respect to data object is fulfilled. When the request concerns one other data object of several objects, the request is forwarded for further processing. Independent claims are also included for the following: (a) Computer program product; (b) Application data access providing apparatus

Description

Die Erfindung betrifft das Gebiet der Anwendungsprogramme, und insbesondere das Gebiet, eine Zugriffsmöglichkeit auf Daten bereitzustellen, die von einem An­ wendungsprogramm verarbeitet werden. Die Erfindung kann für alle Arten von Anwendungsprogrammen verwendet werden, insbesondere für Programme, die komplexe Daten verarbeiten, welche intern in einer Mehrzahl von miteinander ver­ knüpften Datenobjekten gespeichert sind. Solche Programme können graphische Bearbeitungs- und Entwurfsprogramme, Dokumenten- und Textverarbeitungspro­ gramme, Planungs- und Planerstellungsprogramme (planning and scheduling programs) und so weiter sein. Insbesondere wird der Einsatz der Erfindung für Programme für den computerunterstützten Entwurf (CAD-Programme; CAD = computer aided design) vorgeschlagen, wie zum Beispiel die unter der Marke "AutoCAD" verfügbaren Produkte, die von Autodesk, Inc., San Rafael, Vereinigte Staaten von Amerika, hergestellt werden.The invention relates to the field of application programs, and in particular the area of providing access to data that is owned by a user application program are processed. The invention can be used for all types of Application programs are used, especially for programs that Process complex data that are internally linked in a plurality of linked data objects are stored. Such programs can be graphical Editing and design programs, document and word processing pro programs, planning and scheduling programs) and so on. In particular, the use of the invention for Programs for computer aided design (CAD programs; CAD = computer aided design), such as those under the brand "AutoCAD" products available from Autodesk, Inc., San Rafael, United States States of America.

Die komplexen Datenstrukturen solcher Anwendungsprogramme enthalten typi­ scherweise eine große Anzahl unterschiedlicher Datenelemente, die verwendet werden, um die Hauptfunktionalität des Anwendungsprogramms zu erzielen. So enthält zum Beispiel bei CAD-Programmen jedes Modell Daten, die die Geometrie der Teile bestimmen, Werkstoffspezifikationen, Attribute der Teile, globale Daten und so weiter. Alle diese Datenelemente werden von dem CAD-Programm auf eine vorbestimmte Weise verarbeitet, um die Erzeugung graphischer Darstellun­ gen des Modells, einschließlich unterschiedlicher Arten von Teilelisten, Stücklisten (Stückliste = bill of material = BOM) und so weiter zu steuern. Diese Verarbeitung ist jedoch nicht sehr flexibel, weil sie durch das Programm selbst ausgeführt wird oder durch Zusatzmodule, die von Zulieferern hergestellt werden, die Detailwissen über Interna des Programms benötigen.The complex data structures of such application programs typically contain typically a large number of different data elements used to achieve the main functionality of the application program. So For example, in CAD programs, each model contains data that reflect the geometry of the parts determine, material specifications, attributes of the parts, global data and so on. All of these data elements are based on the CAD program processed in a predetermined manner to produce graphics model, including different types of parts lists, parts lists (Bill of material = bill of material = BOM) and so on. This processing however, is not very flexible because it is carried out by the program itself or through additional modules, which are manufactured by suppliers, the detailed knowledge need about internals of the program.

Es wäre wünschenswert, einen flexibleren Weg zum Zugreifen auf die von dem Anwendungsprogramm verarbeiteten internen Daten und zum Verwenden dieser Daten bereitzustellen. Insbesondere sollte es für den Endbenutzer oder für unab­ hängige Entwickler möglich sein, auch dann auf die Daten zuzugreifen, wenn nur ein begrenzter Wissensschatz über die interne Datenstrukturen des Programms verfügbar ist. Dies ist jedoch nicht leicht zu bewerkstelligen, weil die Daten typi­ scherweise auf komplexe Art und Weise gespeichert werden. Die einzelnen Daten­ elemente können über das Modell hinweg in unterschiedlichen Datenobjekten verteilt sein, und die Datenobjekte können in einer komplizierten Netzstruktur mit­ einander verknüpft sein. Auch dann, wenn irgendeine Art einer Datenhierarchie berücksichtigt wird (z. B. Baugruppenebene, Bauteilebene, Merkmalsebene), ist es immer noch schwierig, die passende Hierarchieebene für jedes Datenelement zu bestimmen.It would be desirable to have a more flexible way of accessing that Application program processed internal data and how to use it  Provide data. In particular, it should be for the end user or for independent dependent developers may be able to access the data even if only a limited body of knowledge about the program's internal data structures is available. However, this is not easy to do because the data is typi stored in a complex way. The individual dates elements can be in different data objects across the model be distributed, and the data objects can be in a complicated network structure be linked. Even if some kind of a data hierarchy is taken into account (e.g. assembly level, component level, feature level), it is still difficult to find the appropriate hierarchy level for each data item determine.

Gegenwärtige Textverarbeitungsprogramme wie beispielsweise die unter der Marke Microsoft Word verkauften bieten die Möglichkeit, auf einen vorgegebenen Satz interner Datenelemente (wie beispielsweise den Titel eines Dokuments oder die aktuelle Seitennummer) unter vordefinierten Namen zuzugreifen. Diese Vor­ gehensweise ist jedoch auf vergleichsweise einfache Datenstrukturen beschränkt, wie sie in dem klar umgrenzten Gebiet der Textverarbeitung auftreten.Current word processing programs such as those under the Microsoft Word brand offer the ability to sell on a given Set of internal data elements (such as the title of a document or the current page number) under predefined names. This before is limited to comparatively simple data structures, as they occur in the clearly defined field of word processing.

Die Aufgabe der vorliegenden Erfindung ist es daher, die oben erwähnten Proble­ me zumindest teilweise zu vermeiden und eine Möglichkeit zum Zugriff auf Anwen­ dungsdatenelemente bereitzustellen, die sehr flexibel ist und die insbesondere bei komplexen Anwendungsdatenstrukturen, die eine Vielzahl miteinander verknüpfter Datenobjekte enthalten, eingesetzt werden kann. Vorzugsweise soll die Erfindung auch einen Datenzugriff ermöglichen, ohne tiefgehendes Wissen über interne Aspekte des Anwendungsprogramms zu erfordern. Ein weiteres Ziel bevorzugter Ausführungsformen der Erfindung ist, daß der Datenzugriff benutzerfreundlich sein soll, so daß er von typischen Endbenutzern des Anwendungsprogramms eingesetzt werden kann.The object of the present invention is therefore to solve the problems mentioned above to avoid me at least partially and a way to access users to provide data elements that are very flexible and that are particularly useful for complex application data structures that have a large number of interlinked Contain data objects that can be used. The invention is preferably intended also enable data access without in-depth knowledge of internal Require aspects of the application program. Another preferred goal Embodiments of the invention is that data access is user friendly is intended to be used by typical end users of the application program can be used.

Um zumindest einige der oben erwähnten Aufgaben zu lösen, umfaßt die Erfin­ dung ein Verfahren zum Bereitstellen einer Zugriffsmöglichkeit auf Anwendungs­ datenelemente eines Anwendungsprogramms, ein Computerprogrammprodukt und eine Vorrichtung mit den Merkmalen der unabhängigen Ansprüche. Die abhängigen Ansprüche definieren bevorzugte Ausführungsformen der Erfindung.To accomplish at least some of the above-mentioned tasks, the Erfin a method of providing access to applications data elements of an application program, a computer program product  and an apparatus having the features of the independent claims. The dependent claims define preferred embodiments of the invention.

Die Erfindung beruht auf der Idee, Anforderungen (requests) einzusetzen, die zu­ mindest ein Anwendungsdatenelement betreffen, ohne zu verlangen, daß dieses Anwendungsdatenelement in einem Datenobjekt gespeichert ist, auf das sich die Anforderung bezieht. Die Anforderung wird möglichst weitgehend im Hinblick auf dasjenige Datenobjekt bearbeitet, auf das sich die Anforderung bezieht. Ferner wird die Anforderung zur weiteren Bearbeitung an mindestens ein anderes Daten­ objekt weitergeleitet, wenn die Anforderung ein solches anderes Datenobjekt betrifft.The invention is based on the idea of using requests that lead to affect at least one application data element without requiring that this Application data element is stored in a data object to which the Requirement relates. The requirement is as broad as possible with regard to processes the data object to which the request refers. Further the request for further processing to at least one other data object forwarded when the request is such another data object concerns.

Die Erfindung bietet den beträchtlichen Vorteil, daß die Anforderung an ein Daten­ objekt gerichtet werden kann, das selbst nicht die angeforderten Daten enthält. Falls erforderlich, wird die Struktur miteinander verknüpfter Objekte bei der Bear­ beitung der Anforderung vollständig oder teilweise durchlaufen. Mit anderen Wor­ ten können Anforderungen aufgegeben werden, die irgendein Datenobjekt oder sogar alle Datenobjekte betreffen, und solche Anforderungen werden bearbeitet, auch wenn in der Anforderung nur auf ein einziges Datenobjekt Bezug genommen wird. Dies ermöglicht es, auf Anwendungsdatenelemente, die in komplexen Daten­ strukturen enthalten sind, auch dann zuzugreifen, wenn lediglich einige wenige Informationen über die gesamte Datenstruktur bekannt sind.The invention offers the considerable advantage that the requirement for a data object that does not itself contain the requested data. If necessary, the structure of linked objects at Bear complete or partial completion of the request. With other wor Requests can be made that any data object or even affect all data objects, and such requests are processed, even if the request only refers to a single data object becomes. This enables application data elements that are in complex data structures are included to access even if only a few Information about the entire data structure is known.

Die Ansprüche enthalten die Formulierung, daß die anfängliche Anforderung sich auf ein Datenobjekt aus der Mehrzahl von Datenobjekten, die von dem Anwen­ dungsprogramm verarbeitet werden, "bezieht". Diese Formulierung schließt die Fälle ein, daß die Anforderung einen Verweis auf dieses Datenobjekt enthält, daß die Anforderung an dieses Datenobjekt gerichtet wird, und daß die Anforderung an ein Objekt gerichtet wird, das seinerseits Wissen über das Datenobjekt hat (insbe­ sondere kann ein derartiges Objekt ein Datenlieferant oder ein Erweiterungsobjekt des Datenobjekts sein), aber die Formulierung ist nicht auf diese Fälle beschränkt. Die Anforderung braucht sich nicht nur auf ein einziges Datenobjekt zu beziehen; es ist in bevorzugten Ausführungsformen der Erfindung auch möglich, daß sich die Anforderung auf mehrere Datenobjekte bezieht.The claims contain the wording that the initial requirement is different to a data object from the plurality of data objects created by the user program are processed, "relates". This wording concludes the It occurs that the request contains a reference to this data object the request is directed to this data object and that the request to an object is directed, which in turn has knowledge of the data object (esp In particular, such an object can be a data provider or an extension object of the data object), but the wording is not limited to these cases. The request does not have to refer to a single data object;  in preferred embodiments of the invention it is also possible that the Request relates to multiple data objects.

Der Schritt des "Erfüllens" der Anforderung im Hinblick auf das eine Datenobjekt kann jedwede Verarbeitung oder Veränderung dieses Datenobjekts oder jedweden Zugriff auf dieses Datenobjekt enthalten, oder es kann nur der Schritt sein, zu be­ stimmen, daß das Datenobjekt bei der Gesamtbearbeitung der Anforderung nicht benötigt wird, so daß die Anforderung unmittelbar an andere Datenobjekte weiter­ geleitet werden kann.The step of "fulfilling" the request with respect to the one data object can do any processing or modification of this data object or any Access to this data object included, or it may just be the step to be agree that the data object is not in the overall processing of the request is required so that the request is passed on directly to other data objects can be directed.

Generell soll die Reihenfolge der in den Ansprüchen genannten Schritte nicht als eine Einschränkung des Bereichs der vorliegenden Erfindung verstanden werden. Die Erfindung umfaßt alle Ausführungsformen, bei denen die genannten Verfah­ rensschritte in einer anderen Reihenfolge oder in einer parallelen oder ineinander verzahnten (quasi-parallelen) Weise ausgeführt werden.In general, the order of the steps mentioned in the claims should not be considered a limitation on the scope of the present invention can be understood. The invention includes all embodiments in which the aforementioned method steps in a different order or in a parallel or in one another toothed (quasi-parallel) manner.

Vorzugsweise wird eine Anforderung, die von einem ersten Datenobjekt an ein zweites Datenobjekt weitergeleitet worden ist, bei dem zweiten Datenobjekt wieder wie oben beschrieben bearbeitet. Im Verlauf dieser Bearbeitung kann die An­ forderung wieder an ein drittes Datenobjekt weitergeleitet werden und so weiter, bis die Gesamtheit der Datenobjekte (oder ein Teil davon) auf rekursive oder interative Weise durchlaufen worden ist. Einige Buchhaltungsvorgänge werden ausgeführt, um sicherzustellen, daß dieser Prozeß terminiert.Preferably, a request is made from a first data object second data object has been forwarded to the second data object again edited as described above. In the course of this processing, the To request to be forwarded to a third data object again and so on, until all or part of the data objects on recursive or has been run through interactively. Some accounting operations will to ensure that this process terminates.

In bevorzugten Ausführungsformen ist die Verknüpfungsstruktur der Datenobjekte untereinander derart, daß irgendwelche zwei Objekte entweder einander zugeord­ net sind oder nicht einander zugeordnet sind. Vorzugsweise werden beim Weiter­ leiten einer Anforderung nur zugeordnete Objekte berücksichtigt. Ein zugeordnetes Objekt kann in manchen Ausführungsformen ein übergeordnetes Objekt (Super- Objekt) oder ein untergeordnetes Objekt (Sub-Objekt) oder ein verwandtes Objekt sein. Das Weiterleiten einer Anforderung kann im Hinblick auf untergeordnete Ob­ jekte beschränkt sein, aber es umfaßt vorzugsweise alle übergeordneten Objekte und alle verwandten Objekte, die die Anforderung noch nicht erhalten haben. In preferred embodiments, the link structure is the data objects with each other in such a way that any two objects are either related to each other net or are not assigned to each other. Preferably continue only assign assigned objects to a request. An assigned In some embodiments, the object can be a superordinate object (super Object) or a subordinate object (sub-object) or a related object his. The forwarding of a request can be done with regard to subordinate ob objects, but it preferably includes all parent objects and all related objects that have not yet received the request.  

Einige Ausführungsformen der Erfindung stellen die Möglichkeit bereit, daß die Anforderung eine Anforderung zur Initialisierung der Funktionalität zum Bereitstel­ len der Zugriffsmöglichkeit ist. Eine solche Anforderung bewirkt vorzugsweise, daß ein Datenlieferant für das Objekt, auf das sich die Anforderung bezieht, und für je­ des andere Objekt, an das die Anforderung letztendlich weitergeleitet wird, erzeugt wird. Erweiterungsobjekte können in manchen Ausführungsformen vorhanden sein, um diese Initialisierungsanforderungen zu verarbeiten.Some embodiments of the invention provide the possibility that the Request a request to initialize the functionality for the deployment len is the accessibility. Such a request preferably causes a data provider for the object to which the request relates and for each of the other object to which the request is ultimately forwarded becomes. Extension objects can exist in some embodiments to process these initialization requests.

Eine andere Anforderungsart, die in bevorzugten Ausführungsformen vorgesehen ist, ist eine Anforderung zum Erhalten einer Ansammlung der Namen aller Anwen­ dungsdatenelemente, auf die über das Datenobjekt, auf das die Anforderung ver­ weist, zugegriffen werden kann. Mit anderen Worten werden die Namen der zum Zugriff bereitstehenden Datenelemente von den folgenden Objekten gesammelt:
Another type of request, which is provided in preferred embodiments, is a request to obtain a collection of the names of all application data items that can be accessed via the data object to which the request refers. In other words, the names of the data elements available for access are collected by the following objects:

  • - dem Objekt, auf das sich die Anforderung bezieht,- the object to which the request relates,
  • - allen Objekten, die unmittelbar (d. h., indem man genau einer Zuordnungsverknüpfung folgt) diesem Objekt zugeordnet sind, und- all objects that are immediate (i.e., by exactly one Mapping link follows) are assigned to this object, and
  • - allen Objekten, die transitiv (d. h., indem man mehr als einer Zuordnungsverknüpfung folgt) diesem Objekt zugeordnet sind.- all objects that are transitive (i.e. by using more than one Assignment link follows) are assigned to this object.

Die oben erwähnte Anforderungsart zum Zusammentragen der Namen von Daten­ elementen, auf die zugegriffen werden kann, stellt einen benutzerfreundlichen Weg dar, um Informationen über das gesamte Datenobjekt-Netzwerk zusammen­ zutragen. Die Namen sind normalerweise selbsterklärend. Eine andere Anforde­ rungsart, die in manchen Ausführungsformen zur Benutzerunterstützung imple­ mentiert ist, ist eine Anforderung zum Erhalten einer Ansammlung von Beispiel­ ausdrücken. Solche Beispielausdrücke können ebenso eine wertvolle Richtschnur für den Benutzer liefern.The type of request mentioned above to collect the names of data elements that can be accessed makes a user-friendly Way to bring together information about the entire data object network to wear. The names are usually self-explanatory. Another requirement type of implementation that imple in some embodiments for user support is a requirement to get a collection of examples express. Such example expressions can also be a valuable guide deliver for the user.

Weitere Anforderungsarten, die in den meisten Ausführungsformen der Erfindung vorhanden sind, sind Anforderungen zum Lesen und/oder zum Setzen des Wertes eines Anwendungsdatenelements. Other types of requests used in most embodiments of the invention there are requirements for reading and / or setting the value an application data item.  

Bevorzugte Ausführungsformen der Erfindung weisen ferner einen Evaluator (eine Auswertungseinrichtung) auf, der eine benutzerseitige Schnittstelle (front end) zum Verwenden der erfindungsgemäßen Datenzugriffsfunktionalität bietet. Der Evalua­ tor kann insbesondere dazu eingerichtet sein, Ausdrücke auszuwerten, die Verwei­ se auf in den unterschiedlichen Datenobjekten gespeicherte Anwendungsdaten­ elemente enthalten. Das Ergebnis des Auswertungsvorgangs kann seinerseits in einem Anwendungsdatenelement abgelegt werden und kann möglicherweise dem Benutzer angezeigt werden. Es wird besonders bevorzugt, daß der Auswertungs­ vorgang beim Auftreten eines Neuberechnungs-Ereignisses wiederholt wird, so daß die Ergebnisse automatisch allen Veränderungen in den Datenobjekten ange­ paßt werden.Preferred embodiments of the invention further comprise an evaluator (a Evaluation device), which has a user interface (front end) to the Using the data access functionality according to the invention offers. The Evalua Tor can in particular be set up to evaluate expressions that refer se on application data stored in the different data objects elements included. The result of the evaluation process can be in an application data element and may possibly be the Users are displayed. It is particularly preferred that the evaluation process is repeated when a recalculation event occurs, so that the results automatically show all changes in the data objects be fit.

In bevorzugten Ausführungsformen der Erfindung wird das Anwendungsprogramm verwendet, um Dokumente anzuzeigen und/oder zu bearbeiten. Das Anwendungs­ programm kann insbesondere ein CAD-Programm sein. Es ist ferner bevorzugt, daß die Zugriffsfunktionalität nicht als die Hauptfunktion, sondern als eine Hilfs­ funktion des Anwendungsprogramms bereitgestellt wird. Mit anderen Worten sind bevorzugte Ausführungsformen der vorliegenden Erfindung nicht zur Verwendung in Verbindung mit Datenbanken und Datenzugriffsprogrammen vorgesehen, son­ dern sie sind zur Verwendung bei Verarbeitungsprogrammen und Editoren für Text und Graphiken vorgesehen.In preferred embodiments of the invention, the application program used to view and / or edit documents. The application program can in particular be a CAD program. It is also preferred that the access functionality is not as the main function, but as an auxiliary Function of the application program is provided. In other words preferred embodiments of the present invention are not for use provided in connection with databases and data access programs, son They are for use in processing programs and editors for text and graphics provided.

Bevorzugte Ausführungsformen des Computerprogrammprodukts und der Vorrich­ tung der vorliegenden Erfindung weisen ebenfalls Merkmale auf, die den oben be­ schriebenen Merkmalen und/oder den in den abhängigen Verfahrensansprüchen definierten Merkmalen entsprechen.Preferred embodiments of the computer program product and device tion of the present invention also have features that be the above written features and / or in the dependent claims correspond to defined characteristics.

Weitere Merkmale, Aufgaben und Vorteile der Erfindung gehen aus der folgenden Detailbeschreibung mehrerer Ausführungsbeispiele der Erfindung hervor. Es wird auf die schematischen Zeichnungen Bezug genommen, in denen:Other features, objects, and advantages of the invention will appear from the following Detailed description of several embodiments of the invention. It will reference is made to the schematic drawings in which:

Fig. 1 einen Computer zeigt, der ein Anwendungsprogramm ausführt, in dem die vorliegende Erfindung implementiert ist, Fig. 1 shows a computer which executes an application program in which the present invention is implemented,

Fig. 2 ein Klassendiagramm zeigt, das ein Beispiel der Verknüpfungsstruktur von Datenobjekten, die von dem Anwendungsprogramm verarbeitet werden, darstellt, Fig. 2 shows a class diagram illustrating an example of the link structure of data objects, which are processed by the application program,

Fig. 3 ein Beispiel mit vier Datenobjekten und ihren zugeordneten Erweiterungs­ objekten darstellt, Figure 3 illustrates, an example with four data objects and their associated extension objects,

Fig. 4 ein Flußdiagramm der Verarbeitung einer Initialisierungsanforderung ist, Fig. 4 is a flow chart of processing an initialization request is

Fig. 5 die Objekte von Fig. 3 zeigt, nachdem die Initialisierung ausgeführt worden ist, Fig. 5 shows the objects of Fig. 3, after the initialization has been performed,

Fig. 6 ein Flußdiagramm der Verarbeitung einer Anforderung zum Erhalten der Namen der Anwendungsdatenelemente, auf die zugegriffen werden kann, ist, Fig. 6 is a flowchart of processing of a request for obtaining the name of the application data elements that can be accessed is,

Fig. 7 ein Flußdiagramm der Verarbeitung einer Anforderung zum Zugriff auf den Wert eines zugreifbaren Datenelements ist, Fig. 7 is a flowchart of processing a request for access to the value of an accessible data element,

Fig. 8 ein Flußdiagramm ist, das eine vom Benutzer gesteuerte Berechnungs­ prozedur darstellt, und Fig. 8 is a flowchart illustrating a user-controlled calculation procedure, and

Fig. 9 ein Ausschnitt aus der Objektstruktur von Fig. 5 nach der Erzeugung eines Evaluators ist. FIG. 9 is a detail from the object structure of FIG. 5 after the creation of an evaluator.

Die in Fig. 1 gezeigte Vorrichtung ist ein gut bekannter persönlicher Computer oder ein Arbeitsplatzrechner mit einer Haupteinheit 10, einer Tastatur 12, einer Maus 14 und einer Videoanzeige 16. Der Computer führt das CAD-Programm aus, das auf dem unter der Marke "AutoCAD" verkauften Pragramm beruht, welches erweitert worden ist, und die Funktionalität der vorliegenden Erfindung zu implementieren. Das CAD-Programm führt auf eine an sich gut bekannte Art und Weise eine große Funktionsvielfalt in Verbindung mit dem Anzeigen und Verarbeiten von Zeich­ nungs- und Entwurfsdokumenten aus. Jedes Zeichnungs- und Entwurfsdokument enthält mehrere Zeichnungsobjekte, und jedes der Zeichnungsobjekte spiegelt ein von dem CAD-Programm verarbeitetes Datenobjekt wieder.The device shown in FIG. 1 is a well-known personal computer or workstation with a main unit 10 , a keyboard 12 , a mouse 14 and a video display 16 . The computer executes the CAD program based on the program sold under the "AutoCAD" brand, which has been expanded, and to implement the functionality of the present invention. The CAD program performs a wide variety of functions in connection with the display and processing of drawing and design documents in a manner known per se. Each drawing and design document contains several drawing objects, and each of the drawing objects reflects a data object processed by the CAD program.

Bei dem Beispiel von Fig. 1 wird ein Fenster 18 unter Steuerung des CAD-Pro­ gramms auf der Videoanzeige 16 angezeigt, und zwei Zeichnungsobjekte, nämlich ein Quader 20 und eine Sprechblase 22, werden in dem Fenster 18 angezeigt. Die Sprechblase 22 enthält einen Anmerkungstext, der eine Eigenschaft des Quaders 20 betrifft, nämlich die Fläche seiner Vorderseite. Es war bereits in früheren Ver­ sionen der "AutoCAD" CAD-Programme möglich, einen Anmerkungstext wie den in der Sprechblase 22 enthaltenen manuell einzugeben. Jedoch existierte in die­ sen Programmversionen keine direkte Verbindung zwischen dem Anmerkungstext (insbesondere dem darin genannten numerischen Wert) und den tatsächlichen Eigenschaften des entsprechenden Zeichnungsobjekts. Eine mögliche Anwendung der Erfindung ist, daß der Anmerkungstext in der Sprechblase 22 nun automatisch erzeugt und aktualisiert werden kann, weil eine Zugriffsmöglichkeit auf interne Datenelemente des dem Quader 20 entsprechenden Datenobjekts bereitgestellt wird.In the example of FIG. 1, a window 18 is displayed on the video display 16 under the control of the CAD program, and two drawing objects, namely a cuboid 20 and a speech bubble 22 , are displayed in the window 18 . The speech bubble 22 contains an annotation text relating to a property of the cuboid 20 , namely the area of its front side. In previous versions of the "AutoCAD" CAD programs it was already possible to manually enter an annotation text such as that contained in the speech bubble 22 . However, in these program versions there was no direct connection between the annotation text (in particular the numerical value mentioned therein) and the actual properties of the corresponding drawing object. A possible application of the invention is that the annotation text in the speech bubble 22 can now be generated and updated automatically because an access possibility to internal data elements of the data object corresponding to the cuboid 20 is provided.

Das Klassendiagramm von Fig. 2 zeigt beispielhaft die miteinander verknüpfte Klassenstruktur der von dem CAD-Anwendungsprogramm verarbeiteten Daten­ objekte. Ein Objekt der Klasse "BAUGRUPPE" (Baugruppe = assembly) ist der Eigentümer eines Objekts oder mehrerer Objekte der Klasse "BAUTEILDEFINI­ TION" (Bauteildefinition = component definition = comp. def.). Diese Eigentümer- Beziehung wird durch das kleine Rechteck auf der Verbindungslinie zwischen den Klassen "BAUGRUPPE" und "BAUTEILDEFINITION" in Fig. 2 bezeichnet. Dem­ entsprechend ist jedes Objekt der Klasse "BAUTEILDEFINITION" (oder kurz "BAUTEILDEFINITION"-Objekt) Eigentümer von null oder mehr "PARAMETER"- Objekten. Mit anderen Worten ist das "BAUGRUPPE"-Objekt ein übergeordnetes Objekt im Verhältnis zu jedem "BAUTEILDEFINITION"-Objekt, und jedes "PARA­ METER"-Objekt ist ein dem entsprechenden "BAUTEILDEFINITION"-Objekt unter­ geordnetes Objekt. The class diagram of FIG. 2 shows an example of the interlinked class structure of the data objects processed by the CAD application program. An object of the "ASSEMBLY" class is the owner of one or more objects of the "COMPONENT DEFINITION" class (component definition = component definition = comp. Def.). This owner relationship is indicated by the small rectangle on the connecting line between the classes "ASSEMBLY" and "COMPONENT DEFINITION" in FIG. 2. Accordingly, each object of the "COMPONENT DEFINITION" class (or "COMPONENT DEFINITION" object for short) is the owner of zero or more "PARAMETER" objects. In other words, the "ASSEMBLY" object is a superordinate object in relation to each "COMPONENT DEFINITION" object, and each "PARA METER" object is an object subordinate to the corresponding "COMPONENT DEFINITION" object.

Jedes "BAUTEILDEFINITION"-Objekt kann ein verwandtes Objekt in der Klasse "STÜCKLISTENELEMENT" (Stückliste = bill of materials = BOM; Element = item) aufweisen. Das übergeordnete Objekt aller "STÜCKLISTENELEMENT"-Objekte ist ein Objekt des Typs "STÜCKLISTE", das seinerseits verwandt mit dem "BAU­ GRUPPE"- und dem "TEILELISTE"-Objekt ist. Jedes der "STÜCKLISTEN- ELEMENT"- und der "BAUTEILDEFINITION"-Objekte kann ein oder mehrere mit ihm verwandte "SPRECHBLASE"-Objekte (Sprechblase = Balloon) aufweisen. Beispielsweise entspricht der Quader 20 von Fig. 1 einem von dem CAD-Pro­ gramm verarbeiteten "BAUTEILDEFINITION"-Objekt, und die Sprechblase 22 entspricht einem verwandten "SPRECHBLASE"-Objekt.Each "COMPONENT DEFINITION" object can have a related object in the "PIECE LIST ELEMENT" class (bill of materials = BOM; element = item). The superordinate object of all "PIECE LIST ELEMENT" objects is an object of the type "PIECE LIST", which in turn is related to the "CONSTRUCTION GROUP" and the "PART LIST" object. Each of the "PIECE LIST ELEMENT" and the "COMPONENT DEFINITION" objects can have one or more "TALK BUBBLE" objects related to it (balloon = balloon). For example, the box 20 of FIG. 1 corresponds to a "COMPONENT DEFINITION" object processed by the CAD program, and the speech bubble 22 corresponds to a related "SPEECH BUBBLE" object.

Fig. 3 stellt eine mögliche Objektstruktur dar, die zu einem Zeitpunkt während der Ausführung des CAD-Programms vorhanden sein kann. Ein Datenobjekt 30A hat ein übergeordnetes Objekt 30B, ein untergeordnetes Objekt 30C und ein verwand­ tes Objekt 30D. Bei einer Versinnbildlichung von Fig. 3 mit der Struktur von Fig. 2 kann das Datenobjekt 30A ein Objekt der Klasse "BAUTEILDEFINITION" sein, das übergeordnete Objekt 30B kann ein "BAUGRUPPE"-Objekt sein, das untergeord­ nete Objekt 30C kann ein "PARAMETER"-Objekt sein, und das verwandte Objekt 30D kann ein "SPRECHBLASE"-Objekt sein. Im hier verwendeten Sprachge­ brauch sind zwei Objekte miteinander "verwandt", wenn zumindest eines der Ob­ jekte einen Verweis auf das andere Objekt enthält, ohne als Eigentümer oder besessenes Objekt zugeordnet zu sein. Zwei Objekte sind einander "zugeordnet", wenn sie entweder in dem oben definierten Sinne miteinander verwandt sind, oder wenn sie ein Eigentümer und ein besessenes Objekt sind. Mit anderen Worten ist ein "zugeordnetes Objekt" ein übergeordnetes Objekt oder ein untergeordnetes Objekt oder ein verwandtes Objekt. Fig. 3 represents a possible object structure which can be present at any time during the execution of the CAD program. A data object 30 A has a superordinate object 30 B, a subordinate object 30 C and a related object 30 D. In the embodiment of FIG. 3 with the structure of FIG. 2, the data object 30 A can be an object of the "COMPONENT DEFINITION" class. The parent object 30 B can be a "ASSEMBLY" object, the subordinate object 30 C can be a "PARAMETER" object, and the related object 30 D can be a "SPEECH BUBBLE" object. In the language used here, two objects are "related" to one another if at least one of the objects contains a reference to the other object without being assigned as the owner or the obsessed object. Two objects are "associated" with each other if they are either related to each other in the sense defined above, or if they are an owner and an obsessed object. In other words, an "assigned object" is a superordinate object or a subordinate object or a related object.

Die unterschiedlichen Namen für die Objekte 30A bis 30D sind gewählt worden, um die unterschiedlichen Rollen dieser Objekte in dem besonderen Beispiel von Fig. 3 zu beschreiben. Es versteht sich, daß alle vier Objekte 30A bis 30D Daten­ objekte sind, die von dem CAD-Programm bearbeitet werden, und daß beispiels­ weise Objekt 30C seinerseits ein übergeordnetes Objekt eines weiteren, nicht in Fig. 3 gezeigten Datenobjekts sein kann. Jedes der Objekte 30A bis 30D weist eine Mehrzahl von Anwendungsdatenelementen auf, die Eigenschaften der ent­ sprechenden Zeichnungs- oder Entwurfsobjekte darstellen. Wenn beispielsweise das Datenobjekt 30A ein "BAUTEILDEFINITION"-Objekt ist, das den Quader 20 von Fig. 1 darstellt, können zwei von diesem Datenobjekt 30A bereitgestellte Anwendungsdatenelemente die Höhe und die Breite der Quader-Vorderseite sein.The different names for the objects 30 A to 30 D have been chosen to meet the diverse roles of these objects in the particular example of FIG describe. 3,. It goes without saying that all four objects 30 A to 30 D are data objects which are processed by the CAD program, and that for example object 30 C can itself be a superordinate object of a further data object not shown in FIG. 3. Each of the objects 30 A to 30 D has a plurality of application data elements which represent properties of the corresponding drawing or design objects. For example, if the data object 30 A is a "COMPONENT DEFINITION" object that represents the box 20 of FIG. 1, two application data elements provided by this data object 30 A can be the height and the width of the box front.

Zwar können die in Fig. 3 gezeigten Objekte 30A-30D auch in einem CAD-Pro­ gramm nach dem Stand der Technik vorhanden sein, aber ein wichtiges neues Merkmal des vorliegenden Ausführungsbeispiels ist, daß ein Erweiterungsobjekt 32A-32D für jedes der Datenobjekte 30A-30D vorgesehen ist. Die Erweiterungs­ objekte haben die Aufgabe, verschiedene Schnittstellen- und Buchhaltungsfunk­ tionen für die Datenzugriffsmöglichkeiten des vorliegenden Ausführungsbeispiels zu implementieren.Although the objects 30 A- 30 D shown in FIG. 3 can also be present in a CAD program according to the prior art, an important new feature of the present exemplary embodiment is that an extension object 32 A- 32 D for each of the Data objects 30 A- 30 D is provided. The expansion objects have the task of implementing various interface and accounting functions for the data access options of the present exemplary embodiment.

Ein wichtiger Dienst der Erweiterungsobjekte 32A-32D ist es, die eigentlichen Datenlieferanten zu erzeugen. Der entsprechende Vorgang ist in dem Flußdia­ gramm von Fig. 4 dargestellt. Es wird angenommen, daß das Erweiterungsobjekt 32A des Datenobjekts 30A eine Anforderung zum Initialisieren der Datenzugriffs­ funktionalität erhält. Diese Anforderung, die sich nur auf das Datenobjekt 30A (und nicht auf irgendein anderes zugeordnetes Objekt) bezieht, wird von einer Methode des Erweiterungsobjekts 32A bearbeitet. Der erste Schritt 40 dieser Methode ist es, einen Datenlieferanten für das Datenobjekt 30A (Datenlieferant 34A, gezeigt in Fig. 5) zu erzeugen. Es ist die primäre Funktion des Datenlieferanten, auf interne Daten des zugeordneten Datenobjekts zuzugreifen. Dies wird unten ausführlicher beschrieben.An important service of the extension objects 32 A- 32 D is to generate the actual data providers. The corresponding process is shown in the flow chart of FIG. 4. It is assumed that the extension object 32 A of the data object 30 A receives a request to initialize the data access functionality. This request, which only relates to the data object 30 A (and not to any other assigned object), is processed by a method of the extension object 32 A. The first step 40 of this method is to create a data provider for the data object 30 A (data provider 34 A, shown in FIG. 5). It is the primary function of the data provider to access internal data of the assigned data object. This is described in more detail below.

Nachdem der Datenlieferant 34A (Fig. 5) für das Datenobjekt 30A erzeugt worden ist, leitet das Erweiterungsobjekt 32A die Initialisierungsanforderung an die ent­ sprechenden Erweiterungsobjekte 32B-32D aller dem Datenobjekt 30A zugeord­ neten Objekte weiter. Block 42 in Fig. 4 betrifft diese Weiterleitung. Zunächst wird in Schritt 44 die Initialisierungsanforderung an alle übergeordneten Objekte gesen­ det (genauer, an die jeweiligen Erweiterungsobjekte der übergeordneten Objekte). In dem vorliegenden Beispiel gibt es nur ein übergeordnetes Objekt 30B. Das entsprechende Erweiterungsobjekt 32B beginnt nach Erhalt der Initialisierungs­ anforderung selbst eine Ausführungssequenz wie die von Fig. 4 und erzeugt damit einen Datenlieferanten 34B (Fig. 5) für das übergeordnete Objekt 30B und leitet die Initialisierungsanforderung rekursiv an weitere zugeordnete Objekte weiter.After the data provider 34 A ( FIG. 5) has been generated for the data object 30 A, the extension object 32 A forwards the initialization request to the corresponding extension objects 32 B- 32 D of all objects assigned to the data object 30 A. Block 42 in Fig. 4 relates to this forwarding. First, in step 44 the initialization request is sent to all superordinate objects (more precisely, to the respective extension objects of the superordinate objects). In the present example there is only one superordinate object 30 B. The corresponding extension object 32 B itself begins an execution sequence like that of FIG. 4 after receipt of the initialization request and thus generates a data provider 34 B ( FIG. 5) for the superordinate object 30 B and recursively forwards the initialization request to other assigned objects.

Auf ähnliche Weise wird die Initialisierungsanforderung in Schritt 46 an das Erwei­ terungsobjekt 32C des untergeordneten Objekts 30C gesendet, und sie wird in Schritt 48 an das Erweiterungsobjekt 32D des verwandten Objekts 30D weiterge­ leitet. Offensichtlich kann die genaue Reihenfolge, in der die Schritte 44 bis 48 ausgeführt werden, in Ausführungsalternativen verändert werden. Es ist jedoch er­ forderlich, gewisse Buchhaltungsschritte auszuführen, um sicherzustellen, daß bei diesem Prozeß nur die "richtigen" Datenlieferanten erzeugt werden.Similarly, the initialization in step 46, to the esterification Erwei object of the child object 32 C 30 C sent, and 32 D of the related object passes in step 48 to the extension object 30 D weiterge. Obviously, the exact order in which steps 44 through 48 are performed can be changed in execution alternatives. However, it is necessary to perform certain accounting steps to ensure that only the "right" data providers are created in this process.

Das Ergebnis des Initialisierungsprozesses ist in Fig. 5 dargestellt. Wie oben er­ wähnt, ist ein Datenlieferant 34A bis 34D für jedes der Datenobjekte 30A bis 30D erzeugt worden. Die Definitionen der Erweiterungsobjekte 32A bis 32D und der Datenlieferantenobjekte 34A bis 34D bilden zusammen ein Computerprogramm­ produkt 50, das eingesetzt werden kann, um die Funktionalität eines CAD-Pro­ gramms nach dem Stand der Technik so zu erweitern, daß die neuen Datenzu­ griffsmöglichkeiten geboten werden.The result of the initialization process is shown in Fig. 5. As he mentioned above, a data provider 34 A to 34 D has been created for each of the data objects 30 A to 30 D. The definitions of the extension objects 32 A to 32 D and the data supplier objects 34 A to 34 D together form a computer program product 50 that can be used to expand the functionality of a CAD program according to the prior art so that the new data grip options are offered.

Es versteht sich, daß jede Implementierung eines Datenlieferanten normalerweise nur für eine Art von Datenobjekten (entsprechend einer Objektart in einer Zeich­ nung) geeignet ist. Mit anderen Worten müssen der Datenlieferant 34A-34D und das entsprechende Datenobjekt 30A-30D aufeinander zugeschnitten sein, damit der Datenlieferant 34A-34D die gewünschte Datenzugriffsfunktionalität ausführen kann. Andererseits können, weil die Datenobjekte 30A-30D und die Datenliefe­ rantenobjekte 34A-34D unabhängige Einheiten sind, die Datenlieferanten 34A-­ 34D von externen Entwicklern erzeugt werden, und die Datenobjekte 30A bis 30D können unabhängig davon entwickelt und verändert werden. Es ist kein "Wissen" der Datenobjekte 30A-30D über die Datenlieferanten 34A-34D erforderlich. It is understood that each implementation of a data provider is normally only suitable for one type of data object (corresponding to an object type in a drawing). In other words, the data provider 34 A- 34 D and the corresponding data object 30 A- 30 D must be tailored to one another so that the data provider 34 A- 34 D can carry out the desired data access functionality. On the other hand, because the data objects 30 A- 30 D and the data supplier objects 34 A- 34 D are independent units, the data suppliers 34 A- 34 D can be created by external developers, and the data objects 30 A to 30 D can be developed independently and to be changed. No "knowledge" of the data objects 30 A- 30 D about the data suppliers 34 A- 34 D is required.

In dem vorliegenden Ausführungsbeispiel gibt es keine Beschränkung hinsichtlich der maximalen Tiefe, bis zu der Verknüpfungen zu zugeordneten Objekten wäh­ rend der Initialisierung der Datenlieferanten verfolgt werden. In Ausführungsalter­ nativen wird jedoch erwogen, solche Beschränkungen einzuführen. Während es normalerweise wünschenswert sein wird, alle (unmittelbar und transitiv zugeord­ nete) übergeordneten und alle (unmittelbar und transitiv zugeordnete) verwandten Objekte eines gegebenen Datenobjekts abzudecken, kann es empfehlenswert sein, Verbindungen zu untergeordneten Objekten nur in einem beschränkten Maße zu verfolgen. Beispielsweise kann ein einziges Bauteil, daß das Datenobjekt darstellt, eine Mehrzahl Löcher aufweisen, die in das Bauteil eingearbeitet sind. Während es nützlich sein kann, die Datenlieferanten für jedes der Löcher zu initialisieren (beispielsweise, um Volumeninformationen zu erhalten, um eine genauere Berechnungsmöglichkeit des Gewichts des Bauteils bereitzustellen), ist es möglicherweise nicht wünschenswert, irgendwelche Daten über untergeordnete Objekte der Löcher zusammenzutragen, so daß der Initialisierungsvorgang abgebrochen werden kann, wenn dieses Niveau erreicht wird.In the present embodiment, there is no limitation on the maximum depth up to which links to assigned objects are selected be tracked after the initialization of the data providers. In execution age however, natives are considered to introduce such restrictions. While it will usually be desirable to assign all (directly and transitive nete) superordinate and all (directly and transitively assigned) relatives Covering objects of a given data object may be advisable be, connections to subordinate objects only in a limited Track dimensions. For example, a single component that the data object represents, have a plurality of holes which are incorporated in the component. While it can be useful, the data providers for each of the holes too initialize (for example, to get volume information to a provide more precise calculation possibility of the weight of the component) it may not be desirable to have any child data Collect objects of the holes so that the initialization process can be canceled when this level is reached.

Das Flußdiagramm von Fig. 6 stellt die Bearbeitung einer Anforderung zum Erhal­ ten einer Liste der Namen aller Datenelemente dar, auf die über das Objekt 30A zugegriffen werden kann. Dieses Verfahren weist eine sehr ähnliche Struktur wie das von Fig. 4 auf. Im vorliegenden Fall wird jedoch die Anforderung an den Da­ tenlieferanten 34A des Datenobjekts 30A geschickt. Der Datenlieferant 34A gibt in Schritt 60 die Namen derjenigen Datenelemente aus, die das Datenobjekt 30A beinhaltet. Dies ist möglich, weil der Datenlieferant 34A speziell auf den Typ des Datenobjekts 30A zugeschnitten ist und somit weiß, welche Datenelemente von diesem Datenobjekt 30A verfügbar gemacht werden ("freigelegt" sind).The flowchart of FIG. 6, the processing of a request for a list Sustainer th the names of all data elements are, can be accessed via the object 30A. This method has a structure very similar to that of FIG. 4. In the present case, however, the request is sent to the data supplier 34 A of the data object 30 A. In step 60, the data provider 34 A outputs the names of those data elements that the data object 30 A contains. This is possible because the data provider 34 A is specially tailored to the type of data object 30 A and thus knows which data elements are made available by this data object 30 A ("are exposed").

In den Schritten von Block 62 wird dann eine Suche nach weiteren Namen von Anwendungsdatenelementen durchgeführt, die von anderen Datenobjekten, die dem Datenobjekt 30A zugeordnet sind, verfügbar gemacht werden. Die Suche beginnt wiederum, in Schritt 64, indem bei den Datenlieferanten aller übergeord­ neter Objekte angefragt wird (in dem vorliegenden Beispiel erfolgt die Anfrage nur an den einzigen Datenlieferanten 34B des übergeordneten Objekts 30B). Jeder Datenlieferant, der die weitergeleitete Anforderung erhält, beginnt seinerseits mit dem Ausführen des Verfahrens von Fig. 6, und alle Datenelementnamen werden der Liste hinzugefügt. Der Vorgang setzt sich in Schritt 66 mit der Anfrage an Datenlieferanten jeweiliger untergeordneter Objekte fort (im vorliegenden Beispiel Datenlieferant 34C des untergeordneten Objekts 30C). Schließlich wird die Anfra­ ge an die Datenlieferanten aller verwandten Objekte weitergeleitet (im vorliegen­ den Beispiel Datenlieferant 34D des verwandten Objekts 30D).In the steps of block 62, a search for another name is then carried out of application data elements, which must be made available from other data objects that are associated with the data object 30 A. The search begins again, in step 64 , by inquiring from the data providers of all superordinate objects (in the present example, the query is only made to the only data provider 34 B of the superordinate object 30 B). Each data provider who receives the forwarded request in turn begins executing the method of FIG. 6 and all data element names are added to the list. The process continues in step 66 with the request to data suppliers of respective subordinate objects (in the present example data supplier 34 C of the subordinate object 30 C). Finally, the request is forwarded to the data providers of all related objects (in the present example data provider 34 D of the related object 30 D).

Schritt 66 ist in Fig. 6 mit gestrichelten Linien gezeigt worden, weil das Zusammen­ tragen von Namen von den Datenlieferanten untergeordneter Objekte normaler­ weise an einer gewissen Stufe abgebrochen wird, um Namenskonflikte zu vermei­ den. In Fortführung des oben gegebenen Beispiels, bei dem ein einzelnes Bauteil mehrere durch untergeordnete Objekte dargestellte Löcher aufwies, kann jedes dieser Löcher ein Anwendungsdatenelement mit dem Namen "Durchmesser" auf­ weisen. Eine Unterscheidung zwischen diesen Variablen würde schwierige Namenskonflikte auslösen. Daher wird in dem vorliegenden Ausführungsbeispiel keines der "Durchmesser"-Datenelemente der Liste hinzugefügt. In Ausführungs­ alternativen ist ein Verfahren implementiert, um solche Namenskonflikte zu lösen, so daß als Reaktion auf die Anfrage mehr Datenelementnamen zusammengetra­ gen werden können.Step 66 has been shown in FIG. 6 with dashed lines because the gathering of names of subordinate objects from the data providers is normally terminated at a certain level in order to avoid name conflicts. In continuation of the example given above, in which a single component had a plurality of holes represented by subordinate objects, each of these holes can have an application data element with the name "diameter". A distinction between these variables would trigger difficult name conflicts. Therefore, in the present embodiment, none of the "diameter" data items are added to the list. In alternative embodiments, a method is implemented to resolve such name conflicts so that more data element names can be gathered in response to the request.

Kurz wieder zu Fig. 2 zurückkehrend, soll das Beispiel betrachtet werden, daß eine Anforderung zum Zusammentragen der Namen verfügbarer Anwendungsdateriele­ mente an den Datenlieferanten des "SPRECHBLASE"-Objekts gerichtet wird, das dem "STÜCKLISTENELEMENT"-Objekt verwandt ist. Das "SPRECHBLASE"-Ob­ jekt selbst stellt keine internen Daten zur Verfügung, aber es leitet die Anfrage an den Datenlieferanten des verwandten "STÜCKLISTENELEMENT"-Objekts weiter. Dieser Datenlieferant stellt die Variablennamen "ELEMENT" (Element = item) und "MENGE" (Menge = quantity = qty.) zur Verfügung und leitet die Anforderung an die Datenlieferanten des übergeordneten Objekts "STÜCKLISTE" und des ver­ wandten Objekts "BAUTEILDEFINITION" weiter. Der Datenlieferant des "STÜCK­ LISTE"-Objekts stellt beispielsweise die Masse aller Elemente in der Stückliste unter dem Namen "STÜCKLISTE:MASSE" bereit. Der Datenlieferant des "BAU­ TEILDEFINITION"-Objekts stellt die Masse dieses Bauteils unter dem Namen "BAUTEIL : MASSE" und andere Attribute, zum Beispiel "MATERIAL", bereit und leitet die Anforderung ferner an die Datenlieferanten aller untergeordneten Objekte "PARAMETER" und des übergeordneten Objekts "BAUGRUPPE" weiter. Der Datenlieferant jedes "PARAMETER"-Objekts stellt den Parameterwert mit seinem Namen zur Verfügung und fügt ihn der Liste hinzu. Der Datenlieferant des "BAU­ GRUPPE"-Objekts fügt schließlich globale Variablen hinzu, zum Beispiel den Namen "GLOBALHÖHE" (Globalhöhe = global height = globheight).Returning briefly to FIG. 2, consider the example that a request to gather the names of available application materials is directed to the data provider of the "SPEECH BUBBLE" object related to the "PIECE LIST ELEMENT" object. The "SPRECHBLASE" object itself does not provide any internal data, but it forwards the request to the data provider of the related "STÜCKLISTENELEMENT" object. This data provider provides the variable names "ELEMENT" (element = item) and "MENGE" (quantity = quantity = qty.) And forwards the request to the data providers of the higher-level object "STÜCKLISTE" and the related object "BAUTEILDEFINITION". For example, the data provider of the "PIECE LIST" object provides the mass of all elements in the parts list under the name "PIECE LIST: DIMENSIONS". The data provider of the "BAU TEILDEFINITION" object provides the mass of this component under the name "BAUTEIL: MASSE" and other attributes, for example "MATERIAL", and also forwards the request to the data providers of all subordinate objects "PARAMETER" and the parent Object "ASSEMBLY". The data provider of each "PARAMETER" object provides the parameter value with its name and adds it to the list. The data provider of the "BAU GRUPPE" object finally adds global variables, for example the name "GLOBALHÖHE" (global height = global height = globheight).

Insgesamt wird die folgende Liste verfügbarer Variablennamen als Antwort auf die Anforderung erzeugt: "ELEMENT, MENGE, STÜCKLISTE : MASSE, BAU­ TEIL : MASSE, MATERIAL, BAUTEIL : LÄNGE, GLOBALHÖHE". Offensichtlich stellt diese Liste eine große Menge an Informationen über die betreffenden An­ wendungsdatenelemente dar. Unter Verwendung des Verfahrens des vorliegen­ den Ausführungsbeispiels war es möglich, diese Informationen auf Grundlage eines Bezugs auf ein einziges Datenobjekt, nämlich das "SPRECHBLASE"-Objekt, zu erhalten. Keine Informationen über die interne Struktur der Anwendungsdaten war erforderlich.Overall, the following list of available variable names in response to the request generates: "ELEMENT, QUANTITY, PIECE LIST: DIMENSIONS, CONSTRUCTION PART: DIMENSIONS, MATERIAL, COMPONENT: LENGTH, GLOBAL HEIGHT ". Obviously this list provides a large amount of information about the type in question application data elements. Using the method of the present the embodiment it was possible to base this information on a reference to a single data object, namely the "SPEECH BUBBLE" object, to obtain. No information about the internal structure of the application data was required.

Außer dem Dienst, die Namen aller zugreifbaren Anwendungsdatenelemente zu erhalten, dienen die Datenlieferanten 34A-34D auch zur Implementierung unter­ schiedlicher Datenzugriffs- und Datenmanipulationsdienste. Beispielsweise kann auf den Wert eines Anwendungsdatenelements des Datenobjekts 30A oder jedes zugeordneten Objekts 30B-30D zugegriffen werden.In addition to the service of obtaining the names of all accessible application data elements, the data providers 34 A- 34 D also serve for the implementation under different data access and data manipulation services. For example, the value of an application data element of the data object 30 A or of each assigned object 30 B- 30 D can be accessed.

Ein erstes Ausführungsbeispiel für ein Verfahren zum Bearbeiten einer solchen Anforderung für einen Datenzugriff ist in Fig. 7 gezeigt. Wenn der Datenlieferant 34A des Datenobjekts 30A die Anforderung empfängt, wird in Test 70 überprüft, ob das Datenobjekt 30A ein Datenelement mit dem in der Anforderung gegebenen Namen beinhaltet. Wenn ein solches Datenelement verfügbar ist ("JA"-Zweig von Test 70), wird sein Wert in Schritt 72 ermittelt und der Verfahrensablauf endet. Wenn das Datenobjekt 30A kein geeignet benanntes Datenelement enthält, wird die Anforderung in Block 74 an alle zugeordneten Objekte weitergeleitet. Dies umfaßt in dem vorliegend beschriebenen Ausführungsbeispiel das Weiterleiten der Anforderung an die Datenlieferanten aller übergeordneten Objekte (Schritt 76), an die Datenlieferanten aller untergeordneten Objekte (Schritt 78) und an die Daten­ lieferanten aller verwandten Objekte (Schritt 80). Die Datenlieferanten der Objekte, an die die Anforderung weitergeleitet wird, beginnen wiederum mit der Ausführung des Verfahrens von Fig. 7.A first exemplary embodiment of a method for processing such a request for data access is shown in FIG. 7. When the data provider 34 A of the data object 30 A receives the request, a test 70 checks whether the data object 30 A contains a data element with the name given in the request. If such a data item is available ("YES" branch from test 70 ), its value is determined in step 72 and the method sequence ends. If the data object 30 A does not contain an appropriately named data element, the request in block 74 is forwarded to all assigned objects. In the exemplary embodiment described here, this includes forwarding the request to the data providers of all superordinate objects (step 76 ), to the data providers of all subordinate objects (step 78 ) and to the data providers of all related objects (step 80 ). The data providers of the objects to which the request is forwarded in turn begin to execute the method of FIG. 7.

Offensichtlich kann dieses erste Ausführungsbeispiel der Datenzugriffsfunktionali­ tät gemäß dem Verfahren von Fig. 7 bei großen Netzen miteinander verbundener Datenobjekte unnötig viel Rechenzeit beanspruchen. Daher werden mehrere Aus­ führungsalternativen erwogen, bei denen die Datenzugriffsanforderung selektiver weitergeleitet wird. In einer zweiten Ausführungsform gibt jedes Objekt, das eine weitergeleitete Datenzugriffsanforderung erhält, einen Hinweis zurück, ob die An­ forderung erfolgreich erfüllt werden konnte oder nicht. Dies ermöglicht es, die Aus­ führung von Block 74 zu beenden, sobald der erste erfolgreiche Datenzugriff von einem zugeordneten Objekt mitgeteilt wird. Diese optionale Möglichkeit einer früh­ zeitigen Beendigung von Block 74 ist in Fig. 7 durch den gestrichelten Pfeil 82 angezeigt. In anderen Ausführungsalternativen verwaltet der Datenlieferant jedes Datenobjekts Informationen über die Namen derjenigen Datenelemente, die von anderen zugeordneten Datenobjekten verfügbar sind. In diesem Fall kann eine Datenzugriffsanforderung auf direktere Art und Weise als in Fig. 7 angezeigt an den zuständigen Datenlieferanten weitergeleitet werden.Obviously, this first embodiment of the data access functionality according to the method of FIG. 7 can take up an unnecessarily large amount of computing time for large networks of interconnected data objects. Therefore, several execution alternatives are considered in which the data access request is forwarded more selectively. In a second embodiment, each object that receives a forwarded data access request returns an indication of whether the request could be successfully met or not. This makes it possible to end the execution of block 74 as soon as the first successful data access is communicated by an assigned object. This optional possibility of early termination of block 74 is indicated in FIG. 7 by the dashed arrow 82 . In other alternative embodiments, the data provider of each data object manages information about the names of those data elements that are available from other assigned data objects. In this case, a data access request can be forwarded to the responsible data provider in a more direct manner than indicated in FIG. 7.

Es ist wiederum bemerkenswert, daß die Datenzugriffsfunktionalität verwendet werden kann, um Zugriff auf sehr viele von dem Anwendungsprogramm verarbei­ tete Anwendungsdatenelemente zu erhalten, sogar wenn die interne Organisation der Datenelemente und insbesondere die Verbindungsstruktur zwischen den Datenobjekten nicht bekannt ist. Es reicht aus, mit der Anforderung einen Verweis auf ein einziges Datenobjekt 30A zu liefern.Again, it is noteworthy that the data access functionality can be used to gain access to a large number of application data elements processed by the application program, even if the internal organization of the data elements and in particular the connection structure between the data objects is not known. It is sufficient to provide a reference to a single data object 30 A with the request.

Eine weitere wichtige Funktionalität, die vom Datenlieferantobjekt bereitgestellt wird, ist die des Setzens oder Änderns einzelner Datenelemente. Die Bearbeitung einer solchen Anforderung zum Einstellen von Daten weist auch die in Fig. 7 gezeigte Struktur auf, natürlich mit der Änderung, daß Schritt 72 ein Schritt ist, bei dem das Datenelement geschrieben wird. Es sind auch dieselben Ausführungs­ alternativen, wie sie oben in Verbindung mit Fig. 7 beschrieben worden sind, möglich.Another important functionality that is provided by the data provider object is that of setting or changing individual data elements. Processing of such a data setting request also has the structure shown in Fig. 7, with the change, of course, that step 72 is a step in which the data item is written. The same alternative embodiments as described above in connection with FIG. 7 are also possible.

Andere Funktionen, die von den Datenlieferanten 34A bis 34D implementiert wer­ den, sind unter anderem eine Überprüfung, ob ein Datenelement mit einem ange­ gebenen Namen in dem Datenobjekt eines Datenlieferanten oder in einem zuge­ ordneten Objekt existiert, die Überprüfung, ob ein Datenelement veränderbar ist, und die Überprüfung, ob neue Datenelemente dem Datenobjekt hinzugefügt werden können.Other functions that are implemented by the data providers 34 A to 34 D are, among other things, a check whether a data element with a specified name exists in the data object of a data provider or in an assigned object, the check whether a data element can be changed and checking whether new data elements can be added to the data object.

Die Erweiterungsobjekte 32A bis 32D und die Datenlieferanten 34A bis 34D sind Routinen auf einer relativ niedrigen Ebene zum Zugriff auf interne Anwendungs­ daten des CAD-Programms. Während diese Routinen von externen Entwicklern und auch vom Endanwender eingesetzt werden können, um Erweiterungen des CAD-Programms zu programmieren, weist eine bevorzugte Ausführungsform des Computersoftwareprodukts (Bezugszeichen 50 in Fig. 5) ferner einen Evaluator auf, um die erfindungsgemäße Funktionalität auf benutzerfreundlichere Art und Weise bereitzustellen. Der Evaluator kann verwendet werden, um Textausdrücke, die Namen von Datenelementen (in spitzen Klammern eingeschlossen), einfache mathematische Operatoren (z. B. "+", "-", ".", "/") und beliebigen Text zur Erläute­ rung aufweisen, auszuwerten. Beispielsausdrücke, die durch den Evaluator verar­ beitet werden können, sind zum Beispiel:
"Titel der Zeichnung: <SI : TITEL<"
"= <ST : TITEL<: Der Titel der aktuellen Zeichnung"
oder allgemeiner:
"= freier_Text_1 <Ausdruck1< freier_Text_2 <Ausdruck2< . . .".
The extension objects 32 A to 32 D and the data providers 34 A to 34 D are routines on a relatively low level for access to internal application data of the CAD program. While these routines can be used by external developers and also by the end user to program extensions of the CAD program, a preferred embodiment of the computer software product (reference number 50 in FIG. 5) furthermore has an evaluator in order to implement the functionality according to the invention in a more user-friendly manner and Way to deploy. The evaluator can be used to describe text expressions, the names of data elements (enclosed in angle brackets), simple mathematical operators (e.g. "+", "-", ".", "/") And any text have to evaluate. Example expressions that can be processed by the evaluator are, for example:
"Title of the drawing: <SI: TITEL <"
"= <ST: TITEL <: The title of the current drawing"
or more generally:
"= free_text_1 <expression1 <free_text_2 <expression2 <...".

Um eine verbesserte Benutzerunterstützung bereitzustellen, bietet der Evaluator auch die Funktionalität an, voreingestellte Ausdrücke für jedes Datenobjekt vor­ zuschlagen. Solche voreingestellten Ausdrücke sind Ausdrücke, die normalerweise in Verbindung mit einem bestimmten Datenobjekt als nützlich angesehen werden. Auch wenn der Benutzer unmittelbar keinen der voreingestellten Ausdrücke benö­ tigt, dienen sie zumindest als Vorlagen, um den Benutzer beim Formulieren seiner oder ihrer eigenen Ausdrücke zu unterstützen, und sie enthalten auch alle oder mindestens einige der Namen der verfügbaren Datenelemente.To provide improved user support, the evaluator offers also functionality, pre-set expressions for each data object strike. Such default expressions are expressions that are usually can be considered useful in connection with a particular data object. Even if the user does not immediately use any of the preset expressions At least they serve as templates to help the user formulate his or to support their own expressions, and they also contain all or at least some of the names of the available data items.

Eine Anforderung zum Erhalten von Beispielsausdruck-Zeichenketten, die der Evaluator empfängt, wird an das Erweiterungsobjekt eines Datenobjekts weiterge­ leitet, für das der Evaluator erzeugt worden ist. Dieses Erweiterungsobjekt führt dann ein Verfahren aus, das dem in Fig. 6 gezeigten ähnelt, das heißt, es gibt seine eigene Beispielsausdruck-Zeichenkette oder -Zeichenketten aus und leitet die Anforderung an die Erweiterungsobjekte der anderen zugeordneten Objekte weiter. Im Gegensatz zum Verfahren nach Fig. 6 wird die Anforderung jedoch von den Erweiterungsobjekten 32A-32D (und nicht von den Datenlieferantobjekten 34A-34D) bearbeitet, weil die Erweiterungsobjekte 32A-32D geeigneter dafür sind, Datenelementnamen, die von einer Vielzahl unterschiedlicher Datenobjekte stammen, zu sammeln und zu einzelnen Beispielsausdrücken zu kombinieren.A request to obtain sample expression strings that the evaluator receives is forwarded to the extension object of a data object for which the evaluator was created. This extension object then performs a procedure similar to that shown in Figure 6, that is, it issues its own example expression string or strings and forwards the request to the extension objects of the other associated objects. In contrast to the method of FIG. 6, however, the request is processed by the extension objects 32 A- 32 D (and not by the data provider objects 34 A- 34 D) because the extension objects 32 A- 32 D are more suitable for data element names that are from a variety of different data objects come from, collect and combine them into individual example expressions.

Eine mögliche Ausführungssequenz eines den Evaluator verwendenden Verfah­ rens gemäß einem Ausführungsbeispiel der Erfindung ist in Fig. 8 gezeigt. Der Beispielsablauf wird dadurch begonnen, daß der Benutzer auf ein Datenobjekt zeigt und für dieses Objekt einen Beispielsausdruck anfordert (Benutzeraktion 90). Beispielsweise, und auf Fig. 1 Bezug nehmend, kann der Benutzer mit Hilfe der Maus 14 auf die auf der Videoanzeige 16 gezeigte Sprechblase 22 zeigen und über ein Kontextmenü mögliche Beispielsausdrücke anfordern.A possible execution sequence of a method using the evaluator according to an embodiment of the invention is shown in FIG. 8. The example sequence is started by the user pointing to a data object and requesting an example expression for this object (user action 90 ). For example, and referring to FIG. 1, the user can use the mouse 14 to point to the speech bubble 22 shown on the video display 16 and request possible example expressions via a context menu.

In Reaktion auf die Zeigeaktion des Benutzers wird in Schritt 92 der Pfad des Datenobjekts, auf das gezeigt wird, bestimmt. Dieser Pfad, der der vollständige hierarchisch strukturierte Identifikator des Datenobjekts ist, wird verwendet, um einen Evaluator für das Datenobjekt zu erzeugen und um ihn mit dem entspre­ chenden Datenlieferanten und dem Erweiterungsobjekt zu initialisieren. Fig. 9 zeigt beispielhaft einen solchen Evaluator 120, der erzeugt worden ist, um einen Daten­ zugriff auf das Datenobjekt 30A (das im vorliegenden Beispiel der Sprechblase 22 entspricht) bereitzustellen, und der im Hinblick auf das Erweiterungsobjekt 32A und den Datenlieferanten 34A initialisiert worden ist. Die Definition des Evaluators 120 ist auch Bestandteil des Computerprogrammprodukts 50 des vorliegend be­ schriebenen Ausführungsbeispiels.In response to the user's pointing action, the path of the data object that is pointed to is determined in step 92 . This path, which is the complete hierarchically structured identifier of the data object, is used to generate an evaluator for the data object and to initialize it with the corresponding data provider and the extension object. FIG. 9 shows an example of such an evaluator 120 , which was generated in order to provide data access to the data object 30 A (which corresponds to the speech bubble 22 in the present example), and that with regard to the expansion object 32 A and the data provider 34 A has been initialized. The definition of the evaluator 120 is also part of the computer program product 50 of the exemplary embodiment described here.

Zum Flußdiagramm von Fig. 8 zurückkehrend, erhält der Evaluator nun die Liste der Beispielsausdrücke (Schritt 96) von dem Erweiterungsobjekt 32A des Daten­ objekts 30A. Die in diesem Zusammenhang ausgeführten Verarbeitungsschritte sind bereits oben allgemein beschrieben worden. Im vorliegenden Beispiel, und unter Hinweis auf Fig. 1, bietet die Sprechblase 22 (für die der Evaluator initialisiert worden ist) keinen Beispielsausdruck an, aber sie leitet die Anforderung auf das Erweiterungsobjekt des zugeordneten Datenobjekts, das den Quader 20 darstellt, weiter. Der erste in Verbindung mit dem Quader 20 zurückgelieferte Beispiels­ ausdruck kann der Ausdruck "Fläche der Vorderseite: <HÖHE.BREITE< m2" sein, der die Fläche der sichtbaren Vorderseite des Quaders 20 ergibt. Dieser erste Beispielsausdruck wird in Schritt 98 dargestellt, und dem Benutzer wird Gelegenheit gegeben, die anderen möglichen Beispielsausdrücke zu durchlaufen.Returning to the flowchart of Fig. 8, the evaluator 32 A now receives the list of example, expressions (step 96) from the extension object of the data object A. The 30 executed in this context, processing steps have already been generally described above. In the present example, and with reference to FIG. 1, the speech bubble 22 (for which the evaluator has been initialized) does not offer an example expression, but it forwards the request to the extension object of the associated data object, which represents the cuboid 20 . The first example expression returned in connection with the cuboid 20 can be the expression “area of the front side: <HEIGHT.WIDTH <m 2”, which gives the area of the visible front side of the cuboid 20 . This first example expression is presented in step 98 and the user is given the opportunity to go through the other possible example expressions.

Wenn der Benutzer die Auswahl eines Beispielsausdrucks in einer Benutzeraktion 100 bestätigt, wird der ausgewählte Ausdruck in dem Datenobjekt, auf das sich der Benutzer bezieht, verwendet. Im vorliegenden Fall wird dieser Ausdruck in das­ jenige Datenobjekt aufgenommen, das die Sprechblase 22 darstellt. Der Ausdruck wird nun in Schritt 104 ausgewertet und das Auswertungsergebnis wird dem Be­ nutzer als Inhalt der Sprechblase 22 dargestellt (Schritt 106).If the user confirms the selection of a sample expression in a user action 100 , the selected expression is used in the data object to which the user refers. In the present case, this expression is included in the data object that represents the speech bubble 22 . The expression is now evaluated in step 104 and the evaluation result is presented to the user as the content of the speech bubble 22 (step 106 ).

Das in der Sprechblase 22 gezeigte Ergebnis bleibt so lange unverändert, wie sich die Werte der in dem entsprechenden Ausdruck verwendeten Datenelemente nicht verändern (Wartezustand 108). Immer wenn eine solche Veränderung stattgefun­ den hat oder stattgefunden haben könnte, wird automatisch ein Neuberechnungs­ ereignis 110 ausgelöst. Zusätzlich wird eine Neuberechnung aller Ausdrücke auch auf manuelle Anforderung des Benutzers ausgeführt, oder wenn die gesamte Zeichnung neu dargestellt wird. Die Schritte 104 und 106 werden im Verlauf der Neuberechnung wiederholt. Dies stellt sicher, daß die in der Zeichnung angezeig­ ten Werte von Ausdrücken immer korrekt sind und daß sie automatisch jede Modifikation oder Veränderung der Zeichnungsobjekte widerspiegeln.The result shown in the speech bubble 22 remains unchanged as long as the values of the data elements used in the corresponding expression do not change (waiting state 108 ). Whenever such a change has taken place or could have taken place, a recalculation event 110 is triggered automatically. In addition, recalculation of all expressions is also carried out at the user's manual request or when the entire drawing is redisplayed. Steps 104 and 106 are repeated in the course of the recalculation. This ensures that the values of expressions shown in the drawing are always correct and that they automatically reflect any modification or change in the drawing objects.

Die Fähigkeit des vorliegenden Ausführungsbeispiels zur Auswertung von Aus­ drücken ist oben am Beispiel eines in der Sprechblase 22 enthaltenen Ausdrucks beschrieben worden. Es ist jedoch offensichtlich, daß Ausdrücke ebensogut bei einer Vielzahl anderer Zeichnungsobjekte verwendet werden können, insbeson­ dere in "STÜCKLISTE"- und "STÜCKLISTENELEMENT"-Objekten sowie in "TEILELISTE"- und "ANMERKUNG"-Objekten (Anmerkung = note). Als weiteres Beispiel könnte der Titelblock einer Zeichnung Datenelemente des zugeordneten "STÜCKLISTE"-Objekts verwenden, um den voreingestellten Maßstab darzustel­ len oder um Informationen wie beispielsweise die Gesamtmasse, den Namen der Stückliste, den zum Erstellen der Zeichnung verwendeten Standard darzustellen. Es ist ferner ohne weiteres möglich, parametrische "ANMERKUNG"-Objekte für jedes Zeichnungsobjekt zu erzeugen, und eine intelligente Annotierung von Fasen und Kehlen (die immer die richtigen Größen anzeigt) ist möglich. Die von den Zeichnungsobjekten erhaltenen Daten können auch in ein Rechenblatt exportiert werden, und die Oberflächenbeschaffenheit kann das tatsächlich der Oberfläche zugeordnete Attribut anzeigen, wenn ein solches Attribut existiert.The ability of the present exemplary embodiment to evaluate expressions has been described above using the example of an expression contained in the speech bubble 22 . However, it is apparent that expressions can be used in a variety of other drawing objects as well, particularly in "PIECE LIST" and "PIECE LIST ELEMENT" objects, as well as in "PART LIST" and "NOTE" objects. As another example, the title block of a drawing could use data elements of the associated "PIECE LIST" object to represent the preset scale or to present information such as the total mass, the name of the parts list, the standard used to create the drawing. It is also readily possible to create parametric "NOTE" objects for each drawing object, and intelligent chamfer and throat annotation (which always shows the correct sizes) is possible. The data obtained from the drawing objects can also be exported to a spreadsheet, and the surface condition can indicate the attribute actually assigned to the surface if such an attribute exists.

In weiteren Ausführungsalternativen verarbeitet der Evaluator nicht nur dimen­ sionslose Zahlen, sondern auch Einheiten. Funktionen werden bereitgestellt, um die sich ergebenden Einheiten aus einem Ausdruck zu berechnen, um Werte mit unterschiedlichen Grundeinheiten (z. B. Millimeter und Zoll) ineinander umzuwan­ deln, und um Rechnungen mit unterschiedlichen abgeleiteten Einheiten (z. B. Milli­ meter, Meter, Kilometer) korrekt auszuführen.In other alternative versions, the evaluator does not only process dimen sionsless numbers, but also units. Features are provided to to calculate the resulting units from an expression using values different basic units (e.g. millimeters and inches) and bills with different derived units (e.g. milli meter, meter, kilometer) correctly.

Es ist offensichtlich, daß die oben beschriebenen Anwendungsmöglichkeiten und Ausführungsalternativen lediglich einige Beispiele darstellen, und daß ein weiter Bereich weiterer Anwendungen der Lehren der vorliegenden Erfindung sowohl im Zusammenhang mit CAD-Programmen als auch hinsichtlich anderer Anwendungs­ programme besteht.It is obvious that the uses and applications described above Execution alternatives are just a few examples, and that a further Scope of further applications of the teachings of the present invention both in  Connection with CAD programs as well as with regard to other applications programs exist.

Claims (19)

1. Ein Verfahren zum Bereitstellen einer Zugriffsmöglichkeit auf Anwendungs­ datenelemente eines Anwendungsprogramms, wobei die Anwendungsdatenele­ mente in einer Mehrzahl miteinander verknüpfter und von dem Anwendungspro­ gramm verarbeiteter Datenobjekte (30A-30D) enthalten sind und das Verfahren die Schritte aufweist:
  • - Empfangen einer Anforderung, die mindestens eines der Anwendungs­ datenelemente betrifft, wobei sich die Anforderung auf ein Datenobjekt der Mehr­ zahl von Datenobjekten bezieht,
  • - Erfüllen der Anforderung im Hinblick auf dasjenige Datenobjekt, auf das sich die Anforderung bezieht, und
  • - wenn die Anforderung mindestens ein anderes Datenobjekt der Mehrzahl von Datenobjekten betrifft, Weiterleiten der Anforderung an das mindestens eine andere Datenobjekt zur Weiterverarbeitung der Anforderung.
1. A method for providing access to application data elements of an application program, the application data elements being contained in a plurality of data objects ( 30 A- 30 D) linked to one another and processed by the application program, and the method comprising the steps:
  • Receiving a request relating to at least one of the application data elements, the request relating to a data object of the plurality of data objects,
  • Fulfilling the requirement with regard to the data object to which the requirement relates and
  • - If the request relates to at least one other data object of the plurality of data objects, forwarding the request to the at least one other data object for further processing of the request.
2. Das Verfahren nach Anspruch 1, bei dem das Weiterverarbeiten der Anforderung durch ein anderes Datenobjekt, an das die Anforderung weitergeleitet worden ist, die Schritte aufweist:
  • - Erfüllen der Anforderung im Hinblick auf das andere Datenobjekt, an das die Anforderung weitergeleitet worden ist, und
  • - wenn die Anforderung mindestens ein weiteres Datenobjekt betrifft, Weiter­ leiten der Anforderung an das mindestens eine weitere Datenobjekt zur Weiterver­ arbeitung der Anforderung.
2. The method of claim 1, wherein further processing the request by another data object to which the request has been forwarded comprises the steps:
  • Fulfilling the request with respect to the other data object to which the request was forwarded, and
  • - If the request relates to at least one further data object, forward the request to the at least one further data object for further processing of the request.
3. Das Verfahren nach Anspruch 1 oder Anspruch 2, bei dem die Datenobjekte miteinander auf eine Weise verknüpft sind, daß jedem Datenobjekt null oder mehr Datenobjekte zugeordnet sind, und bei dem jede Anforderung als zumindest einige derjenigen Datenobjekte betreffend angesehen wird, die demjenigen Datenobjekt zugeordnet sind, auf das sich die Anforderung bezieht. 3. The method of claim 1 or claim 2, in which the data objects are linked to one another in such a way that each Data object zero or more data objects are assigned, and each of which Requirement viewed as at least some of those data objects that are assigned to the data object to which the request relates refers.   4. Das Verfahren nach einem der Ansprüche 1 bis 3, bei dem die Datenobjekte miteinander auf eine Weise verknüpft sind, daß jedem Datenobjekt null oder mehr Datenobjekte als übergeordnete Objekte zugeordnet sind, und null oder mehr Datenobjekte als untergeordnete Objekte zugeordnet sind, und null oder mehr Datenobjekte als verwandte Objekte zugeordnet sind, und bei dem jede Anforderung als zumindest diejenigen Datenobjekte betreffend ange­ sehen wird, die demjenigen Datenobjekt, auf das sich die Anforderung bezieht, als Superobjekte zugeordnet sind, und als zumindest diejenigen Datenobjekte betref­ fend, die dem Datenobjekt, auf das sich die Anforderung bezieht, als verwandte Objekte zugeordnet sind.4. The method according to any one of claims 1 to 3, in which the data objects are linked to one another in such a way that each Data object associated with zero or more data objects as parent objects and assign zero or more data objects as child objects and zero or more data objects are associated as related objects, and where each request is specified as at least those data objects will see the data object to which the request relates as Super objects are assigned, and are concerned with at least those data objects fend that is related to the data object to which the request refers Objects are assigned. 5. Das Verfahren nach Anspruch 4, bei dem jede Anforderung zusätzlich als zumindest diejenigen Datenobjekte be­ treffend angesehen wird, die mit demjenigen Datenobjekt, auf das sich die Anfor­ derung bezieht, als untergeordnete Objekte verknüpft sind.5. The method according to claim 4, where each request is additionally considered as at least those data objects is aptly viewed with the data object on which the request changes as subordinate objects are linked. 6. Das Verfahren nach einem der Ansprüche 1 bis 5, bei dem die Anforderung eine Anforderung zur Initialisierung der Zugriffsbereitstel­ lungsfunktionafität ist, und bei dem der Schritt des Erfüllens der Anforderung für ein Datenobjekt (30A-30D) die Erzeugung (40) eines Datenlieferanten (34A-34D) umfaßt, der dem Datenobjekt (30A-30D) zugeordnet ist.6. The method of any one of claims 1 to 5, wherein the request is a request to initialize the access provisioning functionality, and wherein the step of fulfilling the request for a data object ( 30 A- 30 D) is to generate ( 40 ) one Data provider ( 34 A- 34 D) includes who is assigned to the data object ( 30 A- 30 D). 7. Das Verfahren nach Anspruch 6, bei dem die Anforderung zur Initialisierung der Zugriffsbereitstellungsfunktionalität von mindestens einem Erweiterungsobjekt (32A-32D) verarbeitet wird, das dem Datenobjekt (30A-30D), auf das sich die Anforderung bezieht, zugeordnet ist.7. The method according to claim 6, wherein the request to initialize the access provision functionality is processed by at least one extension object ( 32 A- 32 D) that is assigned to the data object ( 30 A- 30 D) to which the request relates , 8. Das Verfahren nach einem der Ansprüche 3 bis 7, bei dem die Anforderung eine Anforderung zum Erhalten einer Ansammlung mit den Namen aller Anwendungsdatenelemente ist, auf die über das Datenobjekt, auf das sich die Anforderung bezieht, zugegriffen werden kann. 8. The method according to any one of claims 3 to 7, where the request is a request to get a build with is the name of all application data elements referenced via the data object that the request relates to can be accessed.   9. Das Verfahren nach einem der Ansprüche 3 bis 8, bei dem die Anforderung eine Anforderung zum Erhalten einer Ansammlung von Beispielsausdrücken ist, wobei die Beispielsausdrücke mindestens einige der Namen der Anwendungsdatenelemente enthalten, auf die über das Datenobjekt, auf das sich die Anforderung bezieht, zugegriffen werden kann.9. The method according to any one of claims 3 to 8, in which the request is a request to obtain an accumulation of Is, where the example expressions are at least some of the Contain names of the application data elements that are referenced via the data object, to which the request relates can be accessed. 10. Das Verfahren nach Anspruch 8 oder Anspruch 9, bei dem die über das Datenobjekt, auf das sich die Anforderung bezieht, zugreif­ baren Anwendungsdatenelemente die in dem Datenobjekt, auf das sich die Anfor­ derung bezieht, enthaltenen Anwendungsdatenelemente und die in irgendeinem der diesem Objekt zugeordneten Datenobjekte enthaltenen Anwendungsdaten­ elemente aufweisen.10. The method of claim 8 or claim 9, which accesses via the data object to which the request relates Application data elements that can be found in the data object to which the request related application data elements contained in and in any of the application data contained in this object assigned to this object have elements. 11. Das Verfahren nach einem der Ansprüche 3 bis 10, bei dem die Anforderung eine Anforderung zum Erhalten (72) des Werts eines in dem Datenobjekt, auf das sich die Anforderung bezieht, oder in irgendeinem der diesem Objekt zugeordneten Datenobjekte enthaltenen Anwendungsdatenele­ ments ist:The method of any one of claims 3 to 10, wherein the request is a request to obtain ( 72 ) the value of an application data element contained in the data object to which the request relates or in any of the data objects associated with that object: 12. Das Verfahren nach Anspruch 11, ferner mit den Schritten:
  • - Erzeugen (94) eines Evaluators (120) für ein Datenobjekt;
  • - Aufrufen des Evaluators (120) mit einem Ausdruck, der mindestens einen Namen eines Anwendungsdatenelements enthält, das in dem Datenobjekt oder in irgendeinem der diesem Objekt zugeordneten Datenobjekte enthalten ist,
  • - Auswerten (104) des Ausdrucks unter Verwendung erhaltener Werte der Anwendungsdatenelemente, deren Namen in dem Ausdruck enthalten sind, und
  • - Ausgeben (106) des Auswertungsergebnisses.
12. The method of claim 11, further comprising the steps of:
  • - creating ( 94 ) an evaluator ( 120 ) for a data object;
  • - calling the evaluator ( 120 ) with an expression that contains at least one name of an application data element contained in the data object or in any of the data objects assigned to this object,
  • Evaluating ( 104 ) the expression using obtained values of the application data elements whose names are contained in the expression, and
  • - Output ( 106 ) of the evaluation result.
13. Das Verfahren nach Anspruch 12, bei dem die Schritte des Auswertens (104) des Ausdrucks und des Ausgebens (106) des Ergebnisses beim Auftreten eines Neuberechnungsereignisses (110) wiederholt werden. 13. The method of claim 12, wherein the steps of evaluating ( 104 ) printing and returning ( 106 ) the result are repeated when a recalculation event ( 110 ) occurs. 14. Das Verfahren nach Anspruch 12 oder Anspruch 13, bei dem das Ergebnis der Auswertung als ein Anwendungsdatenelement eines der von dem Anwendungsprogramm verarbeiteten Datenobjekte ausgegeben wird.14. The method of claim 12 or claim 13, in which the result of the evaluation as an application data element is one of the data objects processed by the application program are output. 15. Das Verfahren nach einem der Ansprüche 1 bis 14, bei dem die Hauptfunktionalität des Anwendungsprogramms die graphische und/oder textuelle Anzeige und/oder Verarbeitung von Dokumenten ist, die die Datenobjekte widerspiegeln.15. The method according to any one of claims 1 to 14, where the main functionality of the application program is graphical and / or textual display and / or processing of documents that the Reflect data objects. 16. Das Verfahren nach einem der Ansprüche 1 bis 15, bei dem das Anwendungsprogramm ein CAD-Programm ist und die Anwendungs­ daten die Zeichnungs- und/oder Designdaten sind, die von dem CAD-Programm verarbeitet werden.16. The method according to any one of claims 1 to 15, where the application program is a CAD program and the application data is the drawing and / or design data created by the CAD program are processed. 17. Das Verfahren nach einem der Ansprüche 1 bis 16, bei dem die Zugriffsmöglichkeit als eine Hilfsfunktion des Anwendungsprogramms bereitgestellt wird.17. The method according to any one of claims 1 to 16, where the accessibility as an auxiliary function of the application program provided. 18. Ein Computerprogrammprodukt (50) zur Ausführung durch einen Computer zum Bereitstellen einer Zugriffsmöglichkeit auf Anwendungsdatenelemente eines Anwendungsprogramms, wobei das Computerprogrammprodukt (50) Befehle auf­ weist, die den Computer veranlassen, die Schritte des Verfahrens nach einem der Ansprüche 1 bis 17 auszuführen.A computer program product ( 50 ) for execution by a computer to provide access to application data elements of an application program, the computer program product ( 50 ) having instructions which cause the computer to carry out the steps of the method according to one of claims 1 to 17. 19. Eine Vorrichtung mit mindestens einem Computer, der dazu programmiert ist, die Schritte des Verfahrens nach einem der Ansprüche 1 bis 17 auszuführen.19. A device with at least one computer programming is to carry out the steps of the method according to one of claims 1 to 17.
DE10031041A 2000-06-26 2000-06-26 Application data access provision method for computer aided design, involves forwarding request referring to several data objects for further processing, when request is concerned with one other data object Ceased DE10031041A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE10031041A DE10031041A1 (en) 2000-06-26 2000-06-26 Application data access provision method for computer aided design, involves forwarding request referring to several data objects for further processing, when request is concerned with one other data object
US09/876,285 US6918121B2 (en) 2000-06-26 2001-06-07 Providing access to application data items of an application program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10031041A DE10031041A1 (en) 2000-06-26 2000-06-26 Application data access provision method for computer aided design, involves forwarding request referring to several data objects for further processing, when request is concerned with one other data object

Publications (1)

Publication Number Publication Date
DE10031041A1 true DE10031041A1 (en) 2002-01-03

Family

ID=7646814

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10031041A Ceased DE10031041A1 (en) 2000-06-26 2000-06-26 Application data access provision method for computer aided design, involves forwarding request referring to several data objects for further processing, when request is concerned with one other data object

Country Status (2)

Country Link
US (1) US6918121B2 (en)
DE (1) DE10031041A1 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7558793B1 (en) 2000-04-10 2009-07-07 Arena Solutions, Inc. System and method for managing data in multiple bills of material over a network
US6983278B1 (en) 2001-04-10 2006-01-03 Arena Solutions, Inc. System and method for access control and for supply chain management via a shared bill of material
US6629093B1 (en) * 2001-01-31 2003-09-30 Autodesk, Inc. Method and apparatus for simplified computer aided design (CAD) model search and retrieval
US6999965B1 (en) 2001-04-10 2006-02-14 Arena Solutions, Inc. Method, apparatus, and product to associate computer aided design data and bill of materials data
US7088995B2 (en) * 2001-12-13 2006-08-08 Far Eastone Telecommunications Co., Ltd. Common service platform and software
US8245150B2 (en) * 2004-11-22 2012-08-14 Caterpillar Inc. Parts catalog system
EP1804187B1 (en) * 2005-12-30 2020-09-09 Dassault Systèmes Process for displaying objects in a PLM database and apparatus implementing this process
US20080120208A1 (en) * 2006-10-30 2008-05-22 Ford Motor Company System and method for receiving and changing a bill of material for vehicle components
US8150882B2 (en) * 2009-03-03 2012-04-03 Microsoft Corporation Mapping from objects to data model

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5206951A (en) * 1987-08-21 1993-04-27 Wang Laboratories, Inc. Integration of data between typed objects by mutual, direct invocation between object managers corresponding to object types
US5226161A (en) * 1987-08-21 1993-07-06 Wang Laboratories, Inc. Integration of data between typed data structures by mutual direct invocation between data managers corresponding to data types
US4953080A (en) * 1988-04-25 1990-08-28 Hewlett-Packard Company Object management facility for maintaining data in a computer system
US5121333A (en) * 1989-06-09 1992-06-09 Regents Of The University Of Minnesota Method and apparatus for manipulating computer-based representations of objects of complex and unique geometry
JPH0644255A (en) * 1991-05-17 1994-02-18 Shimizu Corp Comprehensive production project information management system
US5652880A (en) * 1991-09-11 1997-07-29 Corel Corporation Limited Apparatus and method for storing, retrieving and presenting objects with rich links
US5978811A (en) * 1992-07-29 1999-11-02 Texas Instruments Incorporated Information repository system and method for modeling data
US5680618A (en) * 1993-05-26 1997-10-21 Borland International, Inc. Driver query and substitution for format independent native data access
US5608909A (en) * 1994-04-15 1997-03-04 Microsoft Corporation Method and system for caching presentation data of a source object in a presentation cache
US5682532A (en) * 1994-05-02 1997-10-28 Microsoft Corporation System and method having programmable containers with functionality for managing objects
US6301581B1 (en) * 1994-08-01 2001-10-09 Texas Instruments Incorporated Method and system for managing access to a plurality of data objects
US6223227B1 (en) * 1994-12-07 2001-04-24 Next Software, Inc. Method for providing stand-in objects
US5689711A (en) * 1995-04-21 1997-11-18 Bardasz; Theodore Method and apparatus for representing data dependencies in software modeling systems
US5692184A (en) * 1995-05-09 1997-11-25 Intergraph Corporation Object relationship management system
US5696961A (en) * 1996-05-22 1997-12-09 Wang Laboratories, Inc. Multiple database access server for application programs
US6088625A (en) * 1996-08-23 2000-07-11 Kellstrom, Jr.; Gary E. System for transferring assembly data and method therefor
US6826759B2 (en) * 1997-04-01 2004-11-30 Sun Microsystems, Inc. Method and apparatus for discovering and activating software components
US6233584B1 (en) * 1997-09-09 2001-05-15 International Business Machines Corporation Technique for providing a universal query for multiple different databases
US6728726B1 (en) * 1999-03-05 2004-04-27 Microsoft Corporation Prefetching and caching persistent objects
US6694336B1 (en) * 2000-01-25 2004-02-17 Fusionone, Inc. Data transfer and synchronization system
US6792607B1 (en) * 2000-05-18 2004-09-14 Microsoft Corporation Databinding using server-side control objects
US6832215B2 (en) * 2000-07-21 2004-12-14 Microsoft Corporation Method for redirecting the source of a data object displayed in an HTML document

Also Published As

Publication number Publication date
US20010056436A1 (en) 2001-12-27
US6918121B2 (en) 2005-07-12

Similar Documents

Publication Publication Date Title
DE60002876T2 (en) PRESENTATION, ADMINISTRATION AND SYNTHESIS OF TECHNICAL CONTENT
EP1311989B1 (en) Automatic search method
DE69835616T2 (en) METHOD FOR MANAGING OBJECTS AND OBJECT-LINKED PARAMETER VALUES IN A SIMULATION MODEL
DE10051645A1 (en) Method and device for controlling versions and producing logs and lists in a process control system incorporates a computer-readable medium and a processor for communicating with that medium.
DE19632854A1 (en) System and method using context identifier for an individual menu adjustment in a window
DE10120869A1 (en) Multi-dimensional database access method involves generating index comprising multidimensional database, to access subject multidimensional database
DE10129209A1 (en) Product construction system using computer-aided design coupled to client via network allowing input of product modifications
WO2010124853A2 (en) Method for producing at least one application guide
DE10150387A1 (en) CAD data model with design notes has CAD part and CAD drawing interfaces for acquiring information relating to CAD part and CAD drawing in part object and drawing object respectively
DE69719641T2 (en) A process for presenting information on screen devices in various sizes
DE10251440A1 (en) Method for reproducible selection of elements in a hierarchy e.g. for business enterprises, has sequence of actions marked in an element selection script
DE112013005993T5 (en) Method, apparatus and computer readable medium for optimal determination of data subsets
DE102004043788A1 (en) Personal computing device executes program based on individual programming code to provide predefined code and to define direct relation between input and output of data by user and attribute of classes in input model
DE10031041A1 (en) Application data access provision method for computer aided design, involves forwarding request referring to several data objects for further processing, when request is concerned with one other data object
DE69907714T2 (en) COMPONENT-BASED SOURCE CODE GENERATOR METHOD
DE102005025401A1 (en) Data Transformation System
EP1030254B1 (en) Method and system to manage documents
DE10063514A1 (en) Accessing database involves index generator calling up stored procedure to access index configuration data in remote database management system for optimal index configuration
WO2000038084A2 (en) Method for processing data objects
WO2003054727A1 (en) Categorizing system for data objects and method for verifying the consistency of assignments of data objects to categories
EP1490762B1 (en) Method, software product and system for carrying out universal, computer-aided information processing
DE10136505A1 (en) Querying and navigating product structures in simple tree involves navigation in search results by enacting query in database, detecting results of query and adding results to query
WO2002037339A2 (en) System, method and computer programme for configuring objects
WO1994007197A1 (en) Method of processing an application program on a parallel-computer system
EP1388785A1 (en) Method and system for transformation of software and hardware models

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection