Database-eigenschappen
De in deze paragraaf besproken eigenschappen worden gebruikt in een tekeningdatabase.
Elementindex
Ieder element in de tekening krijgt bij het aanmaken een uniek volgnummer: de elementindex (EIND). Wanneer een tekeningdatabase wordt bijgehouden, bepaalt de elementindex welk databaserecord bij een element hoort. Er is dus een één-op-één relatie tussen de elementen in een tekening en de records in de bijbehorende tekeningdatabase.
Structuur databaserecord
Adomi-databaserecords bevatten een aantal specifieke Adomi-velden. Deze velden worden bij de automatische aanpassing van Adomi naar de database gevuld, en bij de automatische update vanuit de DBF-file naar Adomi gebruikt om de elementen uit de tekening aan te passen.
Het EIND-veld is de unieke entry en moet altijd in de recorddefinitie aanwezig zijn. De overige Adomi-velden zijn optioneel. Alle velden die geen Adomi-velden zijn, zijn 'gebruikers(user)-velden'. Deze velden zijn vanuit Adomi te benaderen en te wijzigen.
Adomi-velden
Naam | Type | Lengte | Toelichting |
---|---|---|---|
ASPC | N | 1 | Aspect |
CHNG | L | T als het element in de tekening gewijzigd is | |
CODE | C | 8 | Bij componentplaatsing: code, bij referentietekst/view: bestandsnaam, bij andere elementtypen: leeg |
CREA | D | Aanmaakdatum van het databaserecord | |
CTYP | C | 1 | Bij componentplaatsing: S, 1, 2, 3, of 4, bij referentie-tekening : R |
DELE | L | T als het element in de tekening gewist is | |
EDIT | D | Datum van laatste wijziging vanuit Adomi | |
EHGT | F | Elementhoogte | |
EIND | N | >= 5 | Unieke elementindex |
GIND | N | >= 3 | Grafische index, bij een componentplaatsing is deze -1 |
HILI | L | T als het element in de tekening geselecteerd is | |
LAYR | N | 3 | Hoofdlaag |
LEVL | C | 8 | Nivoset |
LOCX | F | X-coördinaat van PCS/eerste punt | |
LOCY | F | Y-coördinaat van PCS/eerste punt | |
LOCZ | F | Z-coördinaat/referentievlak | |
QNTY | F | Basishoeveelheid van het element; bij type S, 1, 2 geldt stuks = 1, bij type 3: lengte in meters, bij type 4: oppervlakte in vierkante meters | |
QNT1 | F | Hoeveelheid in meters; type 2: elementhoogte, type 3: lengte, type 4: omtrek | |
QNT2 | F | Hoeveelheid in vierkante meters; type 3: lengte * hoogte, type 4: oppervlakte | |
QNT3 | F | Hoeveelheid in kubieke meters; type 4: inhoud | |
ROTA | F | Hoek van het PCS (in graden) | |
SUBL | N | 1 | Sublaag |
UPDT | L | T als de record door de gebruiker is aangepast |
Het DBF-record kan de bovenstaande gereserveerde Adomi-velden bevatten.
Gebruikte afkortingen:
- D = datum
- N = geheel getal (number)
- F = reëel getal (floating point number)
- C = tekst (character)
- L = schakelaar
- T = waar/aan (true)
- F = onwaar/uit (false)
Databasekoppeling gebruiken
Adomi ondersteunt het DBF-formaat voor het opslaan van de database. Om de databasekoppeling te kunnen gebruiken, moet men ook beschikken over een databaseapplicatie, waarmee bestanden in DBF-formaat kunnen worden aangemaakt, geraadpleegd en gewijzigd.
Wijzigingen in de tekening worden door Adomi automatisch doorgevoerd in de tekeningdatabase. Andersom worden wijzigingen in de tekeningdatabase ook overgenomen in de tekening. De link tussen tekening elementen en database recordnummers wordt gelegd door de elementindex (EIND). Het veld elementindex is een verplicht veld in de database.
Bij het importeren van een DRW-bestand en het knippen en plakken via klembord worden bij tekeningen met databases de databasevelden mee gekopieerd wanneer deze in beide databases dezelfde naam en eigenschappen hebben.
Automatische aanpassing database vanuit de tekening
Als er iets in de tekening gewijzigd is, wordt de tekeningdatabase bij het opslaan van de tekening bijgewerkt. Voor alle elementen die gewijzigd zijn, worden in de tekeningdatabase de aanwezige Adomi-velden aangepast. Voor alle nieuwe elementen in de tekening wordt een nieuw record gemaakt in de tekening-database. Bij alle gewijzigde records wordt het CHNG-veld op TRUE gezet.
Automatische aanpassing tekening vanuit de database
Bij het laden van de tekening worden, als Adomi-velden in de tekening-database gewijzigd zijn, deze wijzigingen in de tekening overgenomen. Alleen als binnen de databaseapplicatie een record van de tekening-database wordt gewijzigd en het UPDT-veld op T(rue) wordt gezet, zullen de eventuele wijzigingen in de tekening worden overgenomen.
Als de tekeningdatabase leeg is, of als deze minder elementen bevat dan de tekening, wordt deze update niet uitgevoerd. Bij het opslaan van de tekening wordt dan de hele tekening-database dan opnieuw aangemaakt.
Databasevelden als tekst in Adomi
Met #-teksten kan bij elke geplaatst component alle informatie worden afgebeeld uit het databaserecord dat bij deze componentplaatsing hoort, zowel de Adomi-velden als de overige velden. Informatie uit Adomi-velden kan meestal ook zonder database, via %-tekst worden afgebeeld.
Aangezien de tekeningdatabase pas aangepast wordt bij het opslaan van de tekening, zal als er lang gewerkt wordt zonder tussentijds op te slaan, de informatie in de tekeningdatabase verouderd zijn. De #-tekst die direct uit de tekeningdatabase wordt meegetekend kan dan ook verouderd zijn.
De gebruikersinformatie vormt hierop een uitzondering. Deze wordt altijd meteen naar de tekeningdatabase weggeschreven en klopt dus altijd.
Elementen in de database bewerken
Door de Adomi-velden in de tekeningdatabase te bewerken, kunnen bestaande elementen aangepast worden, nieuwe elementen toegevoegd worden en elementen gewist worden.
Informatie uit de database kan in de tekening worden weergegeven met #-teksten. Verder wordt aangegeven welke velden uit de tekeningdatabase bij het laden van de tekening worden overgenomen (als ze gewijzigd zijn).
De informatie uit de velden CODE, LAYR, SUBL, GIND, ASPC, LEVL, LOCX, LOCY, ROTA, LOCZ en EHG worden door Adomi automatisch overgenomen bij het ladern van de tekening als de velden aanwezig en gewijzigd zijn.
Bestaande elementen aanpassen
De inhoud van de zojuist genoemde velden kan worden gewijzigd. De primitieven doorgaande lijn en veelhoek kunnen worden omgezet in respectievelijk componenten van type 3 en type 4. Dit kan door het lege CODE-veld in te vullen en het GIND-veld op -1 te zetten. De component moet wel bestaan en het type moet voldoen.
Bij een referentietekening is het codeveld gevuld met de naam van deze tekening. Het aanpassen van dit veld betekent dat er een andere referentietekening in de tekening opgenomen wordt.
Nieuwe elementen toevoegen
Als de hierboven beschreven velden worden ingevuld, wordt een nieuw element tijdens het laden van de tekening toegevoegd. Dit kan alleen voor componenten (typen S, 1 en 2) en referentie-tekeningen. Het EIND-veld moet 0 zijn. Verder moeten alle bovengenoemde Adomi-velden ingevuld zijn, anders wordt het element niet toegevoegd.
Elementen wissen
Als in de tekening-database het DELE-veld FALSE is en op TRUE gezet wordt, wordt dit element tijdens het laden van de tekening gewist.