Applicatie tekeningenbeheer Eindverslag
Afstudeeropdracht in het kader van de studie aan het TEC / CADCollege van het deeltijd hbo-traject ACE System Manager te Nijmegen. Begeleid door ir. R. Boeklagen.
Ing. T. Cornelissen Nijmegen 11 juli 201430 juni 2014
11-7-2014
Applicatie tekeningenbeheer
Pagina 2/68
Applicatie tekeningenbeheer Opschonen tekeningen Beheer en Onderhoud
Auteur: ing. Tim Cornelissen. In opdracht van: Servicebedrijf Radboudumc, productgroep Vastgoed & Infrastructuur, afdeling Beheer & Onderhoud.
Begeleider TEC / CADCollege: ir. Ronald Boeklagen. Begeleider Radboudumc: ing. Willy Baten.
Opleiding: TEC / CADCollege Richting: ACE System Manager Plaats: Nijmegen Datum: 11-7-2014
11-7-2014
Applicatie tekeningenbeheer
Pagina 3/68
VOORWOORD Dit verslag is een eindrapportage ter afsluiting van het hbo-traject ACE System Manager dat deel uit maakt van een breder scala CAD gerelateerde opleidingen, verzorgd door het TEC / CADCollege te Nijmegen. Allereerst een korte toelichting over de aanleiding van het volgen van deze studie. Mijn naam is Tim Cornelissen. Na het afronden van mijn studie hbo bouwkunde in 2012 aan de Avans Hogeschool te ‘s-Hertogenbosch, en mijzelf enige tijd te hebben georiënteerd op de arbeidsmarkt, kwam ik op het idee mijn kennis te verder gaan uit te breiden om mijzelf hopelijk op deze manier sterker te kunnen positioneren op de arbeidsmarkt. Om deze reden ben ik gestart met het hbo-traject ACE System Manager bij TEC / CADCollege. Daarnaast leek het mij interessant om mijn interesse voor ICT te gaan combineren met mijn huidige kennis over bouwkunde. De eindrapportage is een reflectie van een afrondende stageopdracht in opdracht van het Servicebedrijf van het Radboudumc, productgroep Vastgoed & Infrastructuur, afdeling Beheer & Onderhoud. De vraag naar een geautomatiseerde CAD-oplossing is ontstaan toen per 1 oktober 2013 de naam van het voormalige Universitair Medisch Centrum St. Radboud (kortweg UMC St. Radboud) veranderd werd in het Radboud universitair medisch centrum (kortweg Radboudumc). Ik zou graag een woord van dank willen uitspreken naar beide begeleidende partijen en haar medewerkers, TEC / CADCollege en het Radboudumc, die mij zowel hartelijk hebben ontvangen en behandeld als professioneel ondersteund. Als schrijver van dit verslag hoop ik u te prikkelen zijn inhoud van begin tot eind met interesse door te lezen en u wellicht van nieuwe inzichten te kunnen voorzien. Tim Cornelissen Nijmegen, 11 juli 2014
11-7-2014
Applicatie tekeningenbeheer
Pagina 4/68
SAMENVATTING Het Radboudumc is, als universitair medisch centrum, een groot complex. Het is belangrijk dat de gebouwde omgeving op dit complex zo efficiënt mogelijk beheerd wordt. Om dit te realiseren is de afdeling Beheer & Onderhoud opgezet. 1 oktober 2013 is de naam van het voormalige Universitair Medisch Centrum St. Radboud (kortweg UMC St. Radboud) veranderd in het Radboud Universitair Medisch Centrum (kortweg Radboudumc). De introductie van een nieuwe naam heeft ook organisatorisch veranderingen met zich meegebracht: er is een nieuw logo ingevoerd en de huisstijl, gebruikt in documenten, is aangepast. Binnen deze groep van documenten vallen alle technische tekeningen. Het is belangrijk dat de informatie uit tekeningen, zowel grafisch als non-grafisch (metadata), goed bijgewerkt en bijgehouden wordt. Met betrekking tot de invoering van de nieuwe huisstijl kan de vraagstelling vanuit het Radboudumc als volgt worden geformuleerd in abstracte vorm: Bedenk een oplossing om onze technische tekeningen zo eenvoudig mogelijk om te zetten naar de nieuwe huisstijl. Daarnaast is er een grote behoefte om middels een geautomatiseerde oplossing de tekeningen zoveel mogelijk op te schonen (bijvoorbeeld het opruimen van ongebruikte instellingen en/of elementen, en het instellen van de instellingen zoals deze omschreven worden in het CADhandboek dat men hanteert). In het project is onderzocht welke geautomatiseerde oplossingen het Radboudumc kan ondersteunen bij het invoeren van een nieuwe huisstijl. Er is afgewogen of er een oplossing binnen de bestaande functionaliteit van AutoCAD geboden kon worden, of dat aanvullende functionaliteit vereist was. Omdat de functionaliteit binnen AutoCAD niet toereikend bleek te zijn, is een applicatie ontwikkeld die informatie uit een reeks tekenLQJHQ kan ophalen en deze kan manipuleren en/of vervangen. Na het voltooien van applicatie is na een analyse gebleken dat het gebruik van de applicatie een positieve bijdrage levert aan de verhoging van de productiviteit binnen de afdeling Beheer & Onderhoud.
11-7-2014
Applicatie tekeningenbeheer
Pagina 5/68
INHOUDSOPGAVE
1
INLEIDING ....................................................................................................................................... 8
2
BEDRIJFSSTITUATIE .................................................................................................................... 9 2.1
3
ORGANISATIE .............................................................................................................................. 9
2.1.1
Missie en ondersteunende activiteiten .................................................................................... 9
2.1.2
Het complex .......................................................................................................................... 11
2.1.3
Werkomgeving ...................................................................................................................... 12
PROBLEEM .................................................................................................................................... 13 3.1
4
OORZAKEN ................................................................................................................................ 13
3.1.1
Naamswijziging .................................................................................................................... 13
3.1.2
Stempel ................................................................................................................................. 13
3.1.3
Documentenbeheer ............................................................................................................... 14
3.1.4
Externe partijen .................................................................................................................... 15
3.2
AANDACHTSPUNTEN ................................................................................................................. 15
3.3
OUDE SITUATIE.......................................................................................................................... 16
3.4
PROBLEEM- EN DOELSTELLING .................................................................................................. 17
OPLOSSING.................................................................................................................................... 18 4.1
OPLOSSINGSRICHTING ............................................................................................................... 18
4.2
GEAUTOMATISEERDE OPLOSSINGEN .......................................................................................... 19
4.2.1
AutoCAD .............................................................................................................................. 19
4.2.2
Macro ................................................................................................................................... 20
4.2.3
Script .................................................................................................................................... 20
4.2.4
Routine ................................................................................................................................. 20
4.2.4.1
4.3
KEUZE ....................................................................................................................................... 21
4.4
TOEPASSING .............................................................................................................................. 21
4.4.1
11-7-2014
Applicatie....................................................................................................................................20
Functionaliteit ...................................................................................................................... 22
4.4.1.1
Stempel .......................................................................................................................................22
4.4.1.2
Manipulatie .................................................................................................................................26
4.4.1.3
Analyse .......................................................................................................................................27
Applicatie tekeningenbeheer
Pagina 6/68
5
EINDPRODUCT ............................................................................................................................. 28 5.1
DIALOOG ................................................................................................................................... 28
5.1.1
Tabbladen ............................................................................................................................. 28
5.1.1.1
Stempel .......................................................................................................................................29
5.1.1.2
Manipulatie .................................................................................................................................38
5.1.1.3
Analyse .......................................................................................................................................48
5.2
PALETTE .................................................................................................................................... 51
5.3
ROUTINE TIJDENS AFSLUITEN .................................................................................................... 52
5.4
EFFICIËNTIE ............................................................................................................................... 52
5.4.1
Korte termijn ........................................................................................................................ 52
5.4.2
Lange termijn ....................................................................................................................... 53
6
CONCLUSIES EN AANBEVELINGEN ...................................................................................... 55
7
NAWOORD ..................................................................................................................................... 56
8
BRONNEN ....................................................................................................................................... 57
9
BIJLAGEN ...................................................................................................................................... 58 BIJLAGE I-A ............................................................................................................................................ 59 BIJLAGE I-B ............................................................................................................................................ 61 BIJLAGE II .............................................................................................................................................. 63 BIJLAGE III ............................................................................................................................................. 65 BIJLAGE IV ............................................................................................................................................. 67
11-7-2014
Applicatie tekeningenbeheer
Pagina 7/68
1
INLEIDING
Sneller, minder kosten, efficiënter. Er gaat bijna geen dag voorbij in professionele organisaties zonder dat deze termen de revue passeren. Ze lijken haast als een heilige drie-eenheid met elkaar verbonden te zijn. Ook in dit project is het hoofddoel geweest om bedrijfsprocessen te versnellen om de efficiëntie te verhogen waardoor er uiteindelijk kosten bespaard kunnen worden. 1 oktober 2013 werd de naam van het voormalige Universitair Medisch Centrum St. Radboud (kortweg UMC St. Radboud) veranderd in het Radboud Universitair Medisch Centrum (kortweg Radboudumc). Deze naamswijziging heeft binnen de organisatie verschillende veranderingen met zich meegebracht. Een van die veranderingen is de invoer van een nieuw logo met een bijhorende huisstijl die gebruikt zal worden in alle documenten van het Radboudumc. Dit geldt ook voor alle technische tekeningen van het ziekenhuis. Omdat het ziekenhuis over een grote hoeveelheid tekeningen beschikt die gepubliceerd zijn voor de invoering van de nieuwe huisstijl, ontstond de vraag of er een mogelijkheid is om, op een relatief eenvoudige, manier de oude tekeningen bij te werken zodat deze ook uitgewerkt zijn conform de nieuwe huisstijl. Naast het vervangen van een logo, is het van essentieel belang dat alle informatie uit de tekeningen, veelal beschreven rechtsonder in een stempel, volledig intact blijft. Dit wil zeggen dat de informatie uit de oude stempels te allen tijden beschikbaar moet zijn voor inzage. De nieuwe informatie in de nieuwe in te voegen stempels bevatten externe gegevens afkomstig van een documentenbeheersysteem diens gegevens altijd leidend dienen te zijn. Omdat de oude tekeningen in dit project onderhanden worden genomen ontstond ook de vraag deze zoveel mogelijk op te schonen: het verwijderen van overbodige informatie, instellingen conform bedrijfsstandaard instellen. In dit verslag wordt gemotiveerd hoe de applicatie “Tekeningenbeheer” tot stand is gekomen, welke keuzes hierbij zijn gemaakt, en waarom deze keuzes gemaakt zijn. In het begin van het verslag zal worden toegelicht wat de situatie was voor het starten van het project. Vervolgens zal worden geanalyseerd wat het probleem van de opdrachtgever is, een probleemstelling wordt geformuleerd. Aan de hand van de probleemstelling volgt een onderzoek waarin wordt opgesomd welke mogelijke oplossingen er kunnen worden toegepast die tegemoet komen aan het probleem. Na het opsommen van verschillende mogelijkheden zal een onderbouwde oplossing worden voorgesteld waaruit blijkt wat volgens het onderzoek de beste oplossing is. Tot slot volgt een weergave van de prestaties van de gekozen oplossing, het resultaat.
11-7-2014
Applicatie tekeningenbeheer
Pagina 8/68
2
BEDRIJFSSTITUATIE
2.1
Organisatie
Het Radboudumc is een universitair medisch centrum wat betekent dat het, naast het bieden van zorg, ruimte geeft voor wetenschappelijk onderzoek, onderwijs en opleidingen. Voor het verder uitweiden organisatiestructuur is het belangrijk om te vermelden dat het complex van het Radboud door twee organisaties in gebruik wordt genomen: het Radboudumc en de Radboud Universiteit Nijmegen. Vanaf nu zal in dit verslag de titel Radboud Universiteit Nijmegen worden afgekort tot RU. 2.1.1
Missie en ondersteunende activiteiten
Als universitair medisch centrum heeft het Radboudumc drie kerntaken: -
patiëntenzorg;
-
onderzoek;
-
onderwijs.
Om de organisatie te ondersteunen in deze Radboudumc
kerntaken, is het Servicebedrijf in het leven geroepen. Het Servicebedrijf is
Servicebedrijf
samenstelling van verschillende onderdelen, ieder met een eigen expertise en specialisme. Dit opdracht is in opdracht van het onderdeel “Productgroep Vastgoed & Infrastructuur”. Specifieker, dit is een opdracht van de subafdeling Beheer & Onderhoud. Vanaf nu zullen in dit verslag de namen “Productgroep Vastgoed & Infrastructuur” en “Beheer & Onderhoud” respectievelijk worden afgekort tot V&I en B&O. Voor een uitgebreid overzicht van de organisatiestructuur binnen V&I zie Bijlage I-b.
11-7-2014
Applicatie tekeningenbeheer
Adviesgroep Procesverbetering & Innovatie
Productgroep Human Resources
Productgroep Communicatie
Productgroep Inkoop
Productgroep Financiën
Productgroep Logistiek & Services Productgroep Vastgoed & Infrastructuur Afdeling Beheer & Onderhoud
Pagina 9/68
De productgroep Vastgoed & Infrastructuur staat voor het ontwikkelen, realiseren en operationeel houden van de huisvesting die kwalitatief hoogwaardig en toekomstbestendig moet zijn. De ongeveer 300 medewerkers van Vastgoed & Infrastructuur zijn verantwoordelijk voor ontwikkeling, inrichting, onderhoud, schoonmaak en beveiliging van de gebouwen, de omliggende wegen en plantsoenen. De belangrijke aandachtsgebieden voor Vastgoed & Infrastructuur zijn:
11-7-2014
-
nieuwbouw;
-
inrichting;
-
service en onderhoud;
-
energie en distributie;
-
schoonmaak;
-
beveiliging;
-
bewegwijzering;
-
ontwikkeling en onderhoud van medische apparatuur.
Applicatie tekeningenbeheer
Pagina 10/68
2.1.2
Het complex
Zowel het Radboudumc als de RU beheren ieder hun eigen vastgoed. De onderlinge verdeling van de bouwwerken is als volgt hieronder. De met groen gekleurde bouwwerken zijn in beheer van het Radboudumc, de rood gekleurde gebouwen zijn in beheer van de RU. Tevens is aangegeven waar de afdeling V&I gevestigd is.
Figuur 2.1: Terreintekening.
11-7-2014
Applicatie tekeningenbeheer
Pagina 11/68
2.1.3
Werkomgeving
In de werkkamer waarin dit project gerealiseerd is, waren de volgende werknemers actief: -
de applicatiebeheerder; de tekeningenbeheerder; de ruimtebeheerder; de systeembeheerder. Applicatiebeheerder
Tekeningenbeheerder
Ruimtebeheerder
Figuur 2.2: Werkomgeving.
Er is een nauwe samenwerking tussen deze collega’s omdat er veel raakvlakken zijn tussen hun werkzaamheden. Dit is vooral van toepassing op de applicatiebeheerder, de tekeningenbeheerder en de ruimtebeheerder. Met betrekking tot dit project kan de rolverdeling binnen deze kamer als volgt worden omschreven: in opdracht van de applicatiebeheerder, de begeleider van de stagiair, wordt een geautomatiseerde oplossing gegenereerd die met name de tekeningenbeheerder en in mindere mate de ruimtebeheerder bijstaat bij hun dagelijkse activiteiten. Applicatiebeheerder Stagiair
Tekeningenbeheerder
Ruimtebeheerder
Figuur 2.3: Projectrelaties binnen werkomgeving.
11-7-2014
Applicatie tekeningenbeheer
Pagina 12/68
3
PROBLEEM
3.1 3.1.1
Oorzaken Naamswijziging
Per 1 oktober 2013 is de naam van het voormalige Universitair Medisch Centrum St. Radboud (UMC St. Radboud) veranderd in Radboud universitair medisch centrum (Radboudumc). Met de invoering van een nieuwe naam is de organisatie tevens gestart met het invoeren van een nieuwe huisstijl. Een nieuw logo is geïntroduceerd:
Figuur 3.1: Oud logo.
Figuur 3.2: Nieuw logo.
Deze huisstijl wordt toegepast op alle documenten die door, of in naam van, het Radboud worden gepubliceerd. Binnen deze groep documenten vallen ook alle technische tekeningen. Abstract geformuleerd komt het er op neer dat het project zich richt op een geautomatiseerde oplossing die de eindgebruiker, het Radboudumc, in staat stelt om de technische tekeningen te voorzien van de nieuwe huisstijl zodat alle tekeningen een uniforme uitstraling krijgen. Concreet dient de oplossing de informatie uit tekeningen, zowel grafisch als non-grafisch, te kunnen bewerken en vereenvoudigt het, het beheren van deze tekeningen. Zo wordt getracht de efficiëntie van het tekeningenbeheer te verhogen om zo het creëren van uniformiteit te bespoedigen. 3.1.2
Stempel
Het invoeren van een nieuwe huisstijl heeft tot gevolg dat bij alle technische tekeningen de stempels, rechtsonder op de tekening, moeten worden voorzien van het nieuwe logo. Een nieuw stempel met dit logo is reeds ontworpen en wordt al gebruikt in de praktijk. Naast het vervangen van het logo is het van essentieel belang dat alle informatie uit het stempel, na het toepassen van een geautomatiseerde oplossing, beschikbaar blijft. Dit houdt dat alle oorspronkelijke informatie niet hoofdzakelijk terug hoeft te komen. De reden hiervoor is de uitwisseling van informatie met het documentenbeheersysteem Meridian.
11-7-2014
Applicatie tekeningenbeheer
Pagina 13/68
De stempels in de tekening zijn ingevoegd als blokken. Het aantal namen van deze blokken kan in theorie oneindig zijn. Sinds mijn begeleider, de applicatiebeheerder, actief is bij het Radboud, is hij veel bezig geweest met het ontwikkelen van een bedrijfsstandaard die omschreven wordt in een CAD-handboek. In het handboek staat voorgeschreven welk stempel gehanteerd moet worden door zowel interne als externe partijen. Hierdoor is het relatief eenvoudig geworden om stempels te herkennen middels routines om deze zo uit te lezen, te vervangen en te bewerken. Dit project richt zich dus alleen op de stempels die toegepast zijn na het invoeren van de bedrijfsstandaard. Naast dat het op deze manier eenvoudiger is om een bereik vast te stellen, zijn de voorgeschreven stempels de enige stempels die op een correctie wijze communiceren met het documentenbeheersysteem. 3.1.3
Documentenbeheer
Binnen B&O maakt Meridian een belangrijk deel uit van de werkset van software die wordt gebruikt bij het uitvoeren van de dagelijkse activiteiten binnen de afdeling. Het programma bevat informatie over alle tekeningen die beschikbaar zijn binnen het Radboud. Deze informatie omvat in veel gevallen non-grafische gegevens, metadata. Meridian is onder andere in staat om te communiceren met attributen uit opgegeven blokken. De velden van metadata die momenteel binnen de organisatie gebruikt worden, zijn weergegeven in Bijlage II. In deze bijlage staan tevens de attributen van alle stempels uit de geschiedenis van de door de applicatiebeheerder gecreëerde bedrijfsstandaard. Zo is een overzicht gecreëerd van de velden en de attributen waarmee deze communiceren.
Wegschrijven Database tekening
Database Meridian Opvragen
Figuur 3.3: Gegevensuitwisseling Meridian en tekeningen.
De gegevens van Meridian worden in een eigen gegevensbank (database) opgeslagen. Deze database staat los van die van een tekening. Het is wel mogelijk, indien de gegevens uit een tekening wijzigen, deze automatisch in de database van Meridian te wijzigen. Daarnaast is het mogelijk om zelf de opdracht te geven om het programma gegevens op te laten halen uit een tekening of meerdere tekeningen. Ook is het mogelijk om de gegevens uit de database van Meridian op aanvraag weg te schrijven naar een enkele tekening of een reeks tekeningen. Een groot nadeel hiervan is dat alle oorspronkelijke informatie uit de stempels verloren gaat.
11-7-2014
Applicatie tekeningenbeheer
Pagina 14/68
Wel is het mogelijk om de database van Meridian te exporteren naar andere gegevensdragers zoals een tekstbestand, een Excel-bestand of een Access-bestand. Zo zijn er dus twee informatiesystemen aanwezig: de database van Meridian en de informatie die direct afkomstig is uit tekeningen. De informatie uit Meridian is leidend. Omdat de informatiesystemen onafhankelijk van elkaar kunnen functioneren komt het regelmatig voor dat de informatie uit tekeningen niet actueel zijn. Immers, deze behoren identiek te zijn aan de gegevens uit Meridian omdat dit systeem leidend is. Omdat het eerder vernoemde vraagstuk van het invoeren van een nieuwe huisstijl zich alleen op de stempels van de tekeningen richt, is de opdracht van het Radboud tevens om de oorspronkelijke gegevens van de stempels te backuppen waarna deze worden gewijzigd in de gegevens van de database van Meridian. 3.1.4
Externe partijen
Vaak ontstaan er ook problemen wanneer tekeningen van externe partijen aangeleverd worden. Hoewel het Radboudumc een CAD-handboek heeft met hierin alle te respecteren voorschriften, zijn niet altijd alle tekeningen die aangeleverd worden door externe partijen uitgewerkt conform de Radboud-bedrijfsstandaard. De oorzaken hiervan kunnen uiteenlopen: tekenaars met weinig ervaring, nieuwe partners die nog niet bekend zijn met de standaard etc. Omdat de tekeningen bij het omzetten naar de nieuwe huisstijl seriematig worden afgehandeld, ontstond aanvullend de vraag om deze zoveel mogelijk op te schonen waardoor overbodige informatie wordt verwijderd en overige instellingen zoveel mogelijk worden aangepast conform de bedrijfsstandaard. 3.2
Aandachtspunten
Zaken die aandacht verdienen in de tekening, naast het invoeren van de nieuwe huisstijl: -
Purgen Alle overbodige informatie opruimen in een tekening. Hiermee wordt hetzelfde bedoeld als de functie “Purge All”.
-
Oorsprong resetten Met het resetten van de oorsprong wordt hetzelfde bedoeld als het commando “UCS World”. Hiermee worden alle UCS’en verwijderd. Om de routine efficiënter te maken wordt ook het basepoint gelijk gesteld aan de coördinaten 0,0,0. Dit wordt toegepast op alle lay-outs.
11-7-2014
Applicatie tekeningenbeheer
Pagina 15/68
-
Inzoomen op bereik Met het inzoomen op het bereik wordt hetzelfde bedoeld als het commando “Zoom All”. Dit dient te worden toegepast op alle lay-outs. Wanneer de “Model”-lay-out is geselecteerd wordt ingezoomd op alle getekende elementen (entiteiten). Wanneer een andere lay-out geselecteerd is, moet eerst worden bepaald wat het in te zoomen bereik is. Centraal staat of er elementen aanwezig zijn en of deze binnen of buiten de lay-out vallen.
-
Lagen instellen In de Radboud-bedrijfsstandaard staat omschreven welke lagen mogen worden toegepast in tekeningen. Omdat externe partijen vaak ook een eigen standaard gebruiken, komt het regelmatig voor dat niet de juiste lagen worden toegepast. Er moet worden getracht zoveel mogelijk van deze lagen aan te passen volgens de standaard van het Radboud.
-
Xref-paden herstellen Situatieschets: Een externe partij is tekeningen aan het maken in opdracht van het Radboud. In deze tekeningen wordt verwezen naar tekeningen die aangeleverd zijn door het Radboudumc. Bij het Radboud worden alle tekeningen van een gebouw in individuele mappen geplaatst. Omdat sommige verwijzingen afkomstig zijn van andere gebouwen en externe partijen niet dezelfde mappenstructuur hanteren als het Radboudumc, zal het pad waarnaar verwezen wordt in de aangemaakte tekeningen niet meer kloppen nadat de tekeningen worden aangeleverd bij het Radboud. Omdat het Radboud een vaste structuur hanteert voor het opslaan van tekeningen, is het mogelijk aan de hand van de geëxporteerde database van Meridian een pad te reconstrueren waarmee de verwijzing naar eigen tekeningen van het Radboud kunnen worden hersteld. De structuur is als volgt: \\naam netwerkschijf\map op netwerkschijf\documentstatus\gebouwcode\tekening.
3.3
Oude situatie
Om te zorgen dat de uniformiteit tussen tekeningen bewaakt wordt, heeft het Radboudumc een tekeningenbeheerder aangesteld. Deze persoon heeft een controlefunctie om mensen intern of extern mensen te benaderen om er voor te zorgen dat de voorgeschreven bedrijfsstandaard gerespecteerd wordt. De huidige tekeningenbeheerder is vaardig in het gebruik van AutoCAD. Echter, deze beschikt niet over de kennis om meerdere tekeningen seriematig middels een zelfgeschreven applicatie aan te passen. In de huidige situatie moet de tekeningenbeheerder dus zonder verdere hulpmiddelen de tekeningen handmatig aanpassen. Bij een gemiddelde tekening neemt dit ongeveer 15 minuten in beslag.
11-7-2014
Applicatie tekeningenbeheer
Pagina 16/68
3.4
Probleem- en doelstelling
Na een analyse van de huidige bedrijfssituatie kan de probleemstelling als volgt worden samengevat: “Hoe kunnen tekeningen van het Radboudumc zo efficiënt mogelijk worden opgeschoond zodat zij voorzien zijn van de huidige huisstijl en zoveel mogelijk worden aangepast conform de Radboud-bedrijfsstandaard?” Deze hoofdvraag kan worden ontleed in twee deelvragen: “Hoe kunnen tekeningen van het Radboudumc zo efficiënt mogelijk worden voorzien van de huidige huisstijl?” “Hoe kunnen tekeningen van het Radboudumc zo efficiënt mogelijk worden aangepast conform de Radboud-bedrijfsstandaard?” Concreet worden de volgende doelen nagestreefd: -
het vervangen van het oude logo in tekeningen door het nieuwe logo van het Radboudumc;
-
oorspronkelijke gegevens van stempels in tekeningen back-uppen;
-
oorspronkelijke gegevens van stempels in tekeningen vervangen door actuele gegevens uit de database van het documentenbeheersysteem Meridan;
-
overbodige informatie uit tekeningen verwijderen;
-
door gebruikers gedefinieerde UCS’en verwijderen;
-
bij alle lay-outs in een tekening inzoomen op bereik;
-
zoveel mogelijk lagen uit te tekeningen instellen conform de laaginstellingen uit het CAD-handboek van het Radboudumc;
-
11-7-2014
foutieve xref-paden herstellen.
Applicatie tekeningenbeheer
Pagina 17/68
4
OPLOSSING
4.1
Oplossingsrichting
Om eerst te kunnen bepalen hoe de oplossing aan de concrete doelstelling zal voldoen is het eerst van belang om vast te stellen welke vorm de oplossing precies aan zal nemen. Er wordt onderscheidt gemaakt tussen: -
reeds voltooide tekeningen;
-
tekeningen die momenteel in behandeling zijn;
-
tekeningen die geproduceerd zullen worden bij toekomstige projecten.
Omdat de laatste twee categorieën beide tekeningen omvatten die bij uitgave op korte termijn door de tekeningenbeheerder worden gecontroleerd, worden deze vanaf QXondergebracht onder een gezamenlijke noemer: tekeningen in behandeling. Omdat de tekeningen in behandeling op korte termijn worden gecontroleerd, is de tekeningenbeheerder in een vroeg stadium al in staat om eventuele fouten te constateren. Bij deze tekeningen komt de taak van de tekeningenbeheerder volledig tot zijn recht: door anderen van goede voorlichting te voorzien, worden de tekeningen voordat deze akkoord worden bevonden gecorrigeerd door verantwoordelijke partij. Hiermee wordt tegemoet gekomen aan de probleemstelling om de tekeningen van het Radboud conform de bedrijfsstandaard uit te werken. Door vroegtijdig met de makers van tekeningen contact op te nemen, worden verdere fouten voorkomen. Hoewel dit een goed functionerende workflow is, resteert de vraag of dit proces niet efficiënter kan. Immers, zowel de eigenlijke verantwoordelijke leveranciers van de tekeningen als de tekeningbeheerder dienen nog steeds handmatig, met de standaard functionaliteit van AutoCAD, tekeningen individueel aan te passen. Ditzelfde probleem geldt voor de reeds voltooide tekeningen. De tekeningen zijn in sommige gevallen al enige tijd niet meer ingezien waardoor het niet zeker is of deze correct zijn opgemaakt en of ze juiste, actuele informatie bevatten ten opzichten van de Meridian-database. Naast de tijd die men dus kwijt is aan het aanpassen van tekeningen, is er veel studie nodig om te achterhalen of tekeningen actueel zijn. De huidige oplossing voor het probleem is dus om de tekeningenbeheerder alles handmatig te laten aanpassen waarop aanvullend wordt gecontroleerd of tekeningen in behandeling voldoen aan de eisen van het Radboudumc zodat dit werk bij de leveranciers van de tekeningen kan worden gelegd.
11-7-2014
Applicatie tekeningenbeheer
Pagina 18/68
Hoewel de controlefunctie van de tekeningenbeheerder zeker een positieve bijdrage levert aan het conform houden van de tekeningen, is het overduidelijk dat er een oplossing bedacht moet worden die enerzijds de tekeningenbeheerder ondersteund bij het opschonen van reeds voltooide tekeningen en het hem makkelijker maakt om binnenkomend werk te corrigeren. 4.2
Geautomatiseerde oplossingen
Omdat alle menselijke voorzieningen zijn ingezet om het probleem op te lossen, is het zinvol om te overwegen of een geautomatiseerde oplossing bij kan dragen aan het vergroten van de efficiëntie van de werkzaamheden van de tekeningenbeheerder. De huidige tekeningenbeheerder beschikt over voldoende kennis om tekeningen handmatig aan te passen middels de standaard functionaliteit van AutoCAD. Aanvullend beschikt AutoCAD over de mogelijkheid bepaalde processen te automatiseren met behulp van macro’s, scripts en routines. De applicatiebeheerder heeft onder andere als taak om slimme oplossingen te bedenken als aanvulling op de standaard functionaliteit van applicaties als AutoCAD ter ondersteuning van de tekeningenbeheerder. Er zijn in het verleden verschillende oplossingen bedacht met betrekking tot de huidige probleemstelling maar deze bevatten nog geen duidelijke samenhang verwerkt in een werkset. 4.2.1
AutoCAD
Standaard AutoCAD biedt de gebruiker een uitgebreide werkset van handelingen, toepasbaar als commando’s, om een tekening te bewerken. Hoewel het mogelijk is om meerdere tekeningen te openen in de applicatie, is het niet mogelijk deze seriematig te bewerken. Sommige commando’s zijn krachtiger dan anderen maar ze moeten individueel worden uitgevoerd. Middels functies als data extraction vindt er interactie plaats met externe gegevens. De functionaliteit hierin is beperkt. Specifieke gegevens kunnen via het UI van AutoCAD worden benaderd. Middels bepaalde tools kunnen meerdere gegevens tegelijkertijd worden benaderd (bv. een collectie elementen dat in een bepaalde laag staat). Deze tools zijn een uitwerksel van geschreven routines (zie 4.2.4). Voor deze analyse worden deze tools niet gerekend tot de standaard functionaliteit van AutoCAD.
11-7-2014
Applicatie tekeningenbeheer
Pagina 19/68
4.2.2
Macro
Het toepassen van macro’s is een efficiënte manier om verschillende handelingen achter elkaar uit te voeren in een actieve AutoCADtekening. De handelingen vormen een samenstelling van de commando’s binnen AutoCAD. Deze oplossing heeft dus twee grote nadelen: -
het is niet mogelijk om een reeks tekeningen te benaderen;
-
er is geen mogelijkheid om specifieke informatie uit tekeningen (bv. attributen) uit te lezen of om deze te manipuleren.
Het ontwikkelen van macro’s is relatief eenvoudig en kost ten opzichten van scripts en routines weinig tijd (afhankelijk van de omvang). 4.2.3
Script
Scripts stellen de eindgebruiker in staat om net als macro’s verschillende handelingen achter elkaar uit te voeren op basis van de commando’s van AutoCAD. Aanvullend is er ook de mogelijkheid deze handelingen herhaaldelijk toe te passen op een reeks tekeningen. Echter, het is net als bij macro’s niet mogelijk om specifieke informatie uit te lezen of te manipuleren. Daarnaast is het een tijdrovend proces om een nieuw bereik van bestanden op te geven als invoer voor het script. Naast dat scripts niet zo geschikt zijn voor variabele parameters, neemt het ontwikkelen ervan überhaupt veel tijd in beslag. 4.2.4
Routine
Met behulp van code is het mogelijk om routines te schrijven. Met deze routines is mogelijk om als het ware dieper in de functionaliteit te duiken van AutoCAD. Naast het combineren van handelingen (commando’s) is het mogelijk om specifieke informatie uit te lezen of te bewerken. Ook is het mogelijk om data buiten AutoCAD te betrekken in een routine. Routines hebben de gunstige eigenschap dat zij goed om kunnen gaan met variërende parameters (variabelen). Het nadeel van routines is dat, afhankelijk van de omvang, het ontwikkelen hiervan veel tijd in beslag kan nemen. 4.2.4.1
Applicatie
Met het schrijven van een routine is het tevens mogelijk een eigen gebruikersomgeving (User Interface, of kortweg UI) te creëren. Dit is een grafische representatie van de geschreven code. Met de juiste kennis kunnen hiermee veel uitlopende geautomatiseerde oplossingen ontwikkeld worden. Ook is een applicatie vaak een zeer gebruiksvriendelijke product voor de eindgebruiker omdat de gevraagde input van hem of haar zoveel mogelijk beperkt wordt, en de functionaliteit speciaal ontworpen is om aan de specifieke wensen en eisen te voldoen van de eindgebruiker.
11-7-2014
Applicatie tekeningenbeheer
Pagina 20/68
4.3
Keuze
Omdat dit project zich met name zal richten op het seriematig bewerken van tekeningen is het niet interessant om aan de oplossingen te denken met behulp van standaard AutoCAD, macro’s. Het gebruik van scripts gaat niet zo goed samen met een variabele invoer van parameters. Het schrijven van routines en programmeren in het algemeen bieden de meeste oplossingsmogelijkheden. Het nadeel van deze oplossing is dat er vaak veel ontwikkelingstijd mee gemoeid gaat. Is het dan nodig om een dermate complexe, tijdrovende oplossing te kiezen? Omdat de andere oplossingen teveel functionaliteit missen, is het verantwoord om te stellen dat dit de beste oplossing is. Om het werk voor de tekeningenbeheerder te vereenvoudigen is het wenselijk de routines uit te werken in een grafische oplossing, een applicatie, om zo een efficiënt en gebruiksvriendelijk hulpmiddel te creëren. Voorafgaand aan dit project heeft de stagiair kennis genomen van het schrijven van routines middels de programmeertaal VB.NET. Alle functionaliteit binnen de applicatie zal dan ook in deze taal worden uitgewerkt. Standaard Autocad
Macro
Script
Routine
Reeks handelingen combineren
-/+
++
++
++
Reeks tekeningen
--
--
+
++
+
+
-/+
++
--
--
--
++
Variërende parameters
-
-
-
++
Gegevens buiten AutoCAD
-/+
-/+
-/+
++
Ontwikkelingstijd
++
+
-
--
Gebruiksvriendelijkheid eindgebruiker Uitlezen/bewerken specifieke gegevens
Figuur 4.1: Keuzemotivatie geautomatiseerde oplossing.
4.4
Toepassing
De volgende stap bij het zoeken naar de definitieve oplossingsvorm, is om vast te stellen welke functionaliteit de applicatie dient te bevatten en hoe deze zich onderling verhouden. Zo scheppen niet alleen de individuele functies meer efficiëntie, maar wordt via een overzichtelijke workflow de tekeningenbeheerder stapsgewijs door de applicatie geleid en krijgt bepaalde functionaliteit ook onderlinge samenhang wat eveneens de efficiëntie ten goede komt.
11-7-2014
Applicatie tekeningenbeheer
Pagina 21/68
4.4.1
Functionaliteit
Om structuur te creëren binnen de applicatie dient eerst te worden vastgesteld welke functionaliteit het uiteindelijk dient te bevatten. Er wordt onderscheidt gemaakt tussen drie hoofdcategorieën: -
Stempel Binnen deze categorie vallen alle handelingen die betrekking hebben op stempels van tekeningen.
-
Manipulatie Deze categorie is een verzameling van routines die bepaalde instellingen van tekeningen aanpassen conform de Radboud-bedrijfsstandaard. Ook het herstellen van xref-paden wordt ondergebracht in deze categorie.
-
Analyse Dit is een aanvulling op de oorspronkelijke van het project. Deze categorie bevat hulpmiddelen om de eindgebruiker, de tekeningenbeheerder, te ondersteunen bij het beheren van de tekeningen die buiten het bereik van de applicatie vallen.
Functionaliteit applicatie
Stempel
Manipulatie
Analyse
Figuur 4.2: Functionaliteit applicatie.
4.4.1.1
Stempel
Om zowel het stempel in een tekening te vervangen als de informatie uit het stempel te actualiseren, is het slim om het stempel als geheel te benaderen. Het stempel is een blok. Met deze kennis is het mogelijk om veel specifieker te werk te gaan. De informatie uit het stempel vormt een verzameling attributen. Deze is uit te lezen middels een routine. Het is de bedoeling dat, hoewel de oude informatie wordt vervangen met gegevens uit Meridian, de oorspronkelijke informatie te allen tijden beschikbaar moet zijn om ingezien te kunnen worden. Het is dus noodzakelijk om een oplossing te bedenken waarbij een nieuwe gegevensdrager wordt geïntroduceerd waarin alle deze gegevens gestopt kunnen worden: er wordt een back-up gemaakt.
11-7-2014
Applicatie tekeningenbeheer
Pagina 22/68
Mogelijke gegevensdragers voor het opslaan van deze gegevens kunnen zijn: -
een Excel-werkmap;
-
een Acces-database;
-
een XML-bestand.
De back-up dient aan enkele eigenschappen te voldoen: -
Alleen lezen Omdat aangenomen mag worden dat de gegevens uit Meridian de juiste zijn, is het niet wenselijk om een nieuw informatiesysteem te creëren dat gebruikers in staat stelt om data aan te passen waardoor het later lastig wordt om te achterhalen welke gegevens de juiste zijn. Samengevat: het is wenselijk om het aantal informatiesystemen beperkt te houden. Het moet voor een gebruiker met standaard kennis van ICT dus niet mogelijk zijn om een back-up aan te passen. Hierdoor blijft het eventuele hergebruik van de gegevens uit de back-ups is een bewuste actie en wordt voorkomen dat informatiesystemen langs elkaar gaan lopen. Een Excel-werkmap en Access-database zijn geen goede oplossingen: zij bieden de eindgebruiker de mogelijkheid om gegevens aan te passen. Een XML-bestand is een goed alternatief omdat dergelijke bestanden hoofdzakelijk bedoeld zijn voor inzage of voor later hergebruik door deskundigen. Aanvullend dient het wel te worden vermeldt dat het mogelijk is om bepaalde gebruikers restricties op te leggen betreffende het aanpassen van Excel- of Accessbestanden.
11-7-2014
Applicatie tekeningenbeheer
Pagina 23/68
-
Lagen structuur Het is belangrijk voor de applicatie om de samenhang tussen gegevens te herkennen voor later gebruik binnen de applicatie. Een reeks tekeningen wordt ontleed in de volgende lagenstructuur:
Bibliotheek
Tekeningen
Tekening
Naam
Bestandslocatie
Is de tekening leesbaar
Bevat de tekening een geldig stempel
Blokken
Blok
Naam
Invoegpunt
Schaal
Naam van de lay-out waar het in staat
Attributen
Attribuut
Naam (tag)
Waarde
Excel en Access zijn programma’s die hoofdzakelijk bedoeld zijn om tabellen mee te maken. Ze zijn hierdoor niet zo geschikt om een diepere lagenstructuur mee te maken. Een XML-bestand is een uitstekende gegevensdrager voor het opslaan van gegevens in een bepaalde lagenstructuur. Het is mogelijk om een oneindige aantal lagen aan te maken. Hieronder volgt een voorbeeld van de laagstructuur van XML. Als voorbeeld worden een tweetal attributen uitgewerkt in XML:
Gebouwcode <Waarde>000 Aanmaakdatum <Waarde>04-03-2001
11-7-2014
Applicatie tekeningenbeheer
Pagina 24/68
-
Compact Omdat de applicatie ook bedoeld is voor toekomstig gebruik en het controleren van aangeleverde tekeningen, zullen er verschillende back-ups gemaakt gaan worden van diverse tekeningen. Het aanmaken van een back-up-collectie kan, bij het kiezen van een verkeerde gegevensdrager, veel geheugen in beslag nemen. Het is daarom verstandig om te overwegen welke oplossing hier het meest geschikt voor is. XML-bestanden blinken op dit gebied echt uit. Zij zijn eigenlijk een verzameling van karakters. Omdat het dus niet nodig is om overige informatie op te slaan (bv. de opmaak van tabellen), is dit ten opzichten van een Excel-werkmap en een Access-database de meest compacte oplossing. Aanvullend dient te worden vermeldt dat Excel- en Access-bestanden in absolute ook niet veel geheugen in beslag nemen.
-
Makkelijk benaderbaar Om een samenhangend geheel te creëren, is het van belang dat de gegevens die uit tekeningen makkelijk uit te wisselen zijn met de back-ups.
Tekening
Applicatie
Back-up
Figuur 4.3: Gegevensoverdracht tussen tekening en back-up.
De applicatie moet in staat zijn om zo efficiënt mogelijk gegevens over te brengen van een tekening naar een back-up of vice versa. Alle drie de oplossingen bieden uitbreidingsmogelijkheden om dergelijke efficiënte verbindingen tot stand te brengen. Echter, om dit te realiseren bij een Excel-werkmap of Access-database dient er gebruik gemaakt te worden van zogenoemde SQL-opdrachten. SQL is een taal waarmee het mogelijk is te communiceren met databases. Indirect gezien zijn tabellen uit Excel ook te beschouwen als databases. Het toepassen van deze taal valt buiten het bereik van de oorspronkelijke grenzen van dit project en wordt daarom zoveel mogelijk vermeden. Het gebruik van XML biedt een meer integrale oplossing omdat er standaard methodes en routines zijn opgenomen in VB.NET die in staat zijn om te communiceren met dit formaat. Om deze reden is XML als de meeste eenvoudig benaderbare oplossing te beschouwen.
11-7-2014
Applicatie tekeningenbeheer
Pagina 25/68
Excel
Access
XML
Alleen lezen
+
+
++
Lagen structuur
-/+
-/+
++
Compact
+
+
++
Makkelijk benaderbaar
-/+
-/+
+
Figuur 4.4: Keuzemotivatie back-up-oplossing.
Concluderend, na het analyseren van alle vereist eigenschappen, blijkt het gebruik van XMLbestanden de beste oplossing zijn voor het opslaan van back-ups. Betreffende het vervangen van stempels: Omdat meerdere onderdelen van het stempel worden bewerkt is het verstandig om het stempel als geheel, als blok, te benaderen. Met dit als uitgangspunt, is het mogelijk om een oud stempel te vervangen met een nieuw stempel dat en over een nieuw logo beschikt, en ingevuld wordt met de meest actuele gegevens uit de database van Meridian. Een nieuw stempel met een nieuw logo, en attributen die instaat zijn om te communiceren met Meridian is reeds aanwezig. De vraag is dus om een routine te ontwerpen dat een oud stempel verwijdert en in een nieuw stempel invoegt met attribuutwaardes op basis van de gegevens van Meridian. 4.4.1.2
Manipulatie
Hoewel in theorie het mogelijk is om een tekening volledig te transformeren conform de Radboud-bedrijfsstandaard, is dit een uitermate complex proces. Zowel bij het ontwikkelen van dergelijke functionaliteit als het in gebruik nemen van een dergelijke oplossing die de eindgebruiker de vrijheid hoort te geven om zelf te bepalen welke onderdelen in een tekening hij wilt aanpassen. Door de grote hoeveelheid parameters ontstaat er een onwerkbare situatie. Vanwege deze factoren richt de functionaliteit binnen deze categorie zich op de aandachtspunten zoals deze vernoemd staan in hoofdstuk 3.2. Aanvullend op het instellen van lagen dient een specifiek bereik te worden vastgelegd. Een routine die alle onderdelen uit een tekening moet herkennen en onderverdelen in categorieën zodat hier lagen aan toegekend kunnen worden, zou veels te complex zijn en moeilijk te bewerken bij eventuele veranderingen binnen de werkomgeving. Onderdelen die makkelijk herkent kunnen worden zijn xrefs en viewports. Ook alle te vervangen en nieuwe stempels (zie hoofdstuk 4.4.1.1) zijn relatief eenvoudig van een juiste laag te voorzien omdat de applicatie al over de code beschikt deze te identificeren of te benaderen.
11-7-2014
Applicatie tekeningenbeheer
Pagina 26/68
4.4.1.3
Analyse
Het back-up-proces dat deel uitmaakt van de categorie “Stempel” (zie hoofdstuk 4.4.1.1) is zo efficiënt mogelijk ingericht. Omdat de tekeningen toch al worden ingelezen, wordt er zoveel mogelijk informatie uit opgehaald. Bijvoorbeeld ook wanneer er geen geldige stempels zijn gevonden of wanneer een tekening niet geopend kan worden. Al deze resultaten worden weergegeven middels de routines uit de categorie “Analyse”. Er wordt weergegeven in getallen welke resultaten behaald zijn in een specifiek back-up-proces. Vervolgens kunnen lijsten worden opgevraagd, indien aanwezig, van tekeningen die geen geldig stempel bevatten of onleesbaar zijn.
11-7-2014
Applicatie tekeningenbeheer
Pagina 27/68
4
OPLOSSING
4.1
Oplossingsrichting
Om eerst te kunnen bepalen hoe de oplossing aan de concrete doelstelling zal voldoen is het eerst van belang om vast te stellen welke vorm de oplossing precies aan zal nemen. Er wordt onderscheidt gemaakt tussen: -
reeds voltooide tekeningen;
-
tekeningen die momenteel in behandeling zijn;
-
tekeningen die geproduceerd zullen worden bij toekomstige projecten.
Omdat de laatste twee categorieën beide tekeningen omvatten die bij uitgave op korte termijn door de tekeningenbeheerder worden gecontroleerd, worden deze vanaf QXondergebracht onder een gezamenlijke noemer: tekeningen in behandeling. Omdat de tekeningen in behandeling op korte termijn worden gecontroleerd, is de tekeningenbeheerder in een vroeg stadium al in staat om eventuele fouten te constateren. Bij deze tekeningen komt de taak van de tekeningenbeheerder volledig tot zijn recht: door anderen van goede voorlichting te voorzien, worden de tekeningen voordat deze akkoord worden bevonden gecorrigeerd door verantwoordelijke partij. Hiermee wordt tegemoet gekomen aan de probleemstelling om de tekeningen van het Radboud conform de bedrijfsstandaard uit te werken. Door vroegtijdig met de makers van tekeningen contact op te nemen, worden verdere fouten voorkomen. Hoewel dit een goed functionerende workflow is, resteert de vraag of dit proces niet efficiënter kan. Immers, zowel de eigenlijke verantwoordelijke leveranciers van de tekeningen als de tekeningbeheerder dienen nog steeds handmatig, met de standaard functionaliteit van AutoCAD, tekeningen individueel aan te passen. Ditzelfde probleem geldt voor de reeds voltooide tekeningen. De tekeningen zijn in sommige gevallen al enige tijd niet meer ingezien waardoor het niet zeker is of deze correct zijn opgemaakt en of ze juiste, actuele informatie bevatten ten opzichten van de Meridian-database. Naast de tijd die men dus kwijt is aan het aanpassen van tekeningen, is er veel studie nodig om te achterhalen of tekeningen actueel zijn. De huidige oplossing voor het probleem is dus om de tekeningenbeheerder alles handmatig te laten aanpassen waarop aanvullend wordt gecontroleerd of tekeningen in behandeling voldoen aan de eisen van het Radboudumc zodat dit werk bij de leveranciers van de tekeningen kan worden gelegd.
11-7-2014
Applicatie tekeningenbeheer
Pagina 18/68
5.1.1.1
Stempel
Het tabblad “Stempel” is grofweg in twee delen op te delen: -
Het back-uppen van gegevens uit de oorspronkelijke stempels van tekeningen;
-
Het vervangen van de oorspronkelijke stempels uit tekeningen met nieuwe stempels en deze invullen met de gegevens uit de database van Meridian.
Figuur 5.2: Tabblad "Stempel".
11-7-2014
Applicatie tekeningenbeheer
Pagina 29/68
5.1.1.1.1
Invoer – back-up (Stroomschema cmd11)
De eerste stap bij het maken van back-up is om de invoer op te geven. Eerst kiest de gebruiker uit welke bron hij of zij invoer selecteren:
Figuur 5.3: Bronkeuze back-up.
De gebruiker heeft de keuze om invoer te selecteren uit een kluis of om dit handmatig te doen. Bij een handmatige selectie wordt onderscheid gemaakt tussen het selecteren van bestanden of een map. -
Kluis
Figuur 5.4: Bronselectie in kluis.
11-7-2014
Applicatie tekeningenbeheer
Pagina 30/68
Binnen de dialoog kan een selectieset samen worden gesteld op drie verschillende niveaus:
Kluis Selecteer een kluis. Uit prestatieoverwegingen kan er maar een kluis tegelijkertijd geback-upt worden.
-
Subkluis Selecteer documentstatus archief of revisie.
Gebouw Selecteer op gebouwcode.
Handmatig – bestanden
Figuur 5.5: Handmatige bronselectie - bestanden.
Een dialoog verschijnt waarin de gebruiker de gelegenheid krijgt om een eigen selectie van bestanden samen te stellen.
11-7-2014
Applicatie tekeningenbeheer
Pagina 31/68
-
Handmatig – map
Figuur 5.6: Handmatige bronselectie - map.
Een dialoog verschijnt waarin de gebruiker de gelegenheid krijgt om een map te selecteren waaruit alle tekeningen worden opgehaald. Dit is een recursief proces wat wil zeggen dat dit voor alle tekeningen geldt uit alle niveaus van de bovenliggende map. Bijvoorbeeld niet alleen Map\”Tekening.dwg” maar ook Map\Submap\Subsubmap\”Tekening.dwg”.
11-7-2014
Applicatie tekeningenbeheer
Pagina 32/68
5.1.1.1.2
Back-uppen van tekeningengegevens (Stroomschema cmd12)
Na het opgeven van een bron wordt een nieuwe knop zichtbaar.
Figuur 5.7: Knop back-up starten.
Met deze knop wordt het back-up-proces gestart. Gezocht wordt naar de stempels:
11-7-2014
-
BTTEKHFD;
-
TEKHFD01;
-
TEKHFD02;
-
tekhfd03 (1-1-2009);
-
tekhfd03;
-
tekhfd04.
Applicatie tekeningenbeheer
Pagina 33/68
Voordat het proces verschijnt een venster met waarin de gebruiker dient te bevestigen of het proces gestart mag worden.
Figuur 5.8: Bevestiging start routine.
Om prestatieredenen en om conflicten te vermijden moeten eerst alle geopende, actieve tekeningen gesloten worden. Door op “Doorgaan” te klikken, bevestigd de gebruiker dat het proces mag starten, en wordt toestemming gegeven om alle actieve tekeningen te sluiten. Deze worden niet opgeslagen. Klikt de gebruiker op “Terug” of sluit deze het venster, dan stopt de routine en krijgt de gebruiker eerst de kans om zijn of haar tekeningen op te slaan. Hieronder een voorbeeld van de codestructuur om seriematig een reeks een tekeningen te doorlopen. Dim Docs As DocumentCollection = Application.DocumentManager Dim dcmnt As Document 'Ga naar volgende tekening. For Each tek As String In Bron.tekeningen Try 'Probeer tekening te openen. dcmnt = Docs.Open(tek, False) Catch ex As Exception 'Als openen niet lukt, ga naar volgende tekening. Continue For End Try 'Doe dingen. '... 'Sluit tekening (en sla deze op). dcmnt.CloseAndDiscard() 'Of dcmnt.CloseAndSave(tek) 'Ga naar volgende tekening. Next
Deze structuur of variaties hierop worden veelvuldig toegepast in deze applicatie.
11-7-2014
Applicatie tekeningenbeheer
Pagina 34/68
Nadat alle gegevenV zijn verzameld in de klasse “Bibliotheek” wordt dit object vertaald naar een XML-lagenstructuur. Deze methode wordt “serialize” genoemd. 'Construeer een mapnaam voor de back-ups. Dim backupnaam As String = "Voorbeeld" 'Als map nog niet bestaat, maak deze aan. If Not Directory.Exists(map) Then Directory.CreateDirectory(map) End If 'Maak een back-up. Dim serialschrijver As StreamWriter = New StreamWriter(backupnaam) Dim xmlschrijver As New System.Xml.Serialization.XmlSerializer(Bib.GetType()) xmlschrijver.Serialize(serialschrijver, Bib) serialschrijver.Close()
5.1.1.1.3
Invoer – vervangen (Stroomschema cmd13)
Om stempels te kunnen vervangen zijn de gegevens nodig van tekeningen uit de aangemaakte back-ups. Nadat de gebruiker klikt op de knop “Selecteren” (boven de knop “Vervangen”) verschijnt een venster met daarin een lijst van aangemaakte back-ups. De gebruiker kiest een back-up om aan te geven bij welke tekeningen stempels vervangen moet worden. Voor het starten van een van de bewerkingen, krijgt de gebruiker net als bij het tabblad “Stempels” de vraag om alle openstaande tekeningen te sluiten zonder deze op te slaan of om de routine te stoppen en eerst alle tekeningen handmatig op te slaan.
Figuur 5.9: Back-up-lijst.
11-7-2014
Applicatie tekeningenbeheer
Pagina 35/68
5.1.1.1.4
Vervangen (Stroomschema cmd14)
Na het selecteren van een back-up is een nieuwe knop verschenen.
Figuur 5.10: Knop stempels vervangen.
Met de knop “Vervangen” worden alle oorspronkelijke, geldige stempels in de tekeningen uit een back-up vervangen.
11-7-2014
Applicatie tekeningenbeheer
Pagina 36/68
Dit proces kan worden onderverdeeld in enkele deelprocessen: -
De oorspronkelijke, geldige stempels worden verwijderd;
-
Voor ieder oorspronkelijk stempel wordt een nieuw stempel ingevoegd in de juiste schaal en met het juiste invoegpunt;
-
De nieuwe stempels worden ingevoegd;
-
Nieuwe stempels worden ingevuld met gegevens uit de database van Meridian indien de tekening hierin voorkomt. In alle andere gevallen worden de gegevens van de oorspronkelijke gegevens overgenomen.
11-7-2014
Applicatie tekeningenbeheer
Pagina 37/68
5.1.1.2
Manipulatie
Het tabblad “0DQLSXODWLH” wordt onderverdeeld in zes processen. Op basis van de aandachtspunten in hoofdstuk 3.2 wordt onderscheid gemaakt tussen: -
Purge tekeningen;
-
Reset oorsprong;
-
Inzoomen bereik;
-
Lagen instellen;
-
Herstel xref-paden;
-
Combineer acties.
De laatste functie is een combinatie van alle bovenstaande routines. De eindgebruiker kan opgeven welke routines hij of zij wil combineren.
Figuur 5.11: Tabblad "Manipulatie".
11-7-2014
Applicatie tekeningenbeheer
Pagina 38/68
5.1.1.2.1
Invoer (Stroomschema cmd21)
Figuur 5.12: Bronkeuze manipulatie.
De werking van deze dialoog is vrij identiek aan die van de dialoog die verschijnt bij het maken van een back-up (zie hoofdstuk 5.1.1.1.1). Aanvullend is het mogelijk om een selectieset van een reeds aangemaakte back-up te als bron op te geven. Een venster verschijnt met daarin een lijst van bestaande back-ups.
Figuur 5.13: Back-up-selectieset.
11-7-2014
Applicatie tekeningenbeheer
Pagina 39/68
Na het selecteren van een bron verschijnen verschillende nieuwe knoppen.
Figuur 5.14: Nieuw knoppen.
Met ieder van deze knoppen wordt een routine geactiveerd waarmee een specifieke handeling wordt uitgevoerd met uitzondering van de laatste knop; Voordat de laatste knop gebruikt kan worden, dient de gebruiker eerst aan te geven welke handelingen hij of zij wilt combineren. Acties worden toegevoegd respectievelijk verwijderd door deze aan of uit te vinken. Een nadere toelichting voor alle individuele acties verschijnt wanneer de gebruiker met de muiscursor zweeft over de betreffende knop.
11-7-2014
Applicatie tekeningenbeheer
Pagina 40/68
5.1.1.2.2
Purge tekeningen (Stroomschema cmd22)
Bij het purgen van tekeningen wordt dezelfde handeling uitgevoerd als het commando “Purge All”. Voordat deze handeling plaatsvindt worden enkele instellingen veranderd. Zo wordt voor alle stijlen de standaard stijl actief gemaakt en worden alle lagen die op slot staan van het slot gehaald. Zo wordt gegarandeerd dat de juiste informatie gepurged en wordt voorkomen dat zaken worden overgeslagen of onterecht worden verwijderd. Na het purgen van de tekening worden alle lagen die voor het proces van het slot waren gehaald weer op slot gezet. Alle stijlen staan vermeldt in tabellen en DBdictionaries. Hieronder een kort fragment waarin getoond wordt hoe eerst lagen die op slot staan van het slot worden gehaald en op het eind weer op slot gezet worden, en hoe tabellen en dictionaries benaderd worden om de standaard stijlen actief te maken indien aanwezig. 'De definitie van document blijft in dit voorbeeld achterwege. Hiervoor kan bijvoorbeeld 'de actieve tekening of de laatst geopende tekening worden aangehouden. Dim dcmnt As Document Dim mijnDB As Database 'Vergrendel de tekening en start een transactie om informatie uit de database 'van de tekening aan te roepen. Using dcmnt.LockDocument 'Start een transactie om informatie uit de database van de tekening aan 'te roepen. Using transactie As Transaction = mijnDB.TransactionManager.StartTransaction Dim lt As LayerTable = transactie.GetObject(mijnDB.LayerTableId, _ OpenMode.ForWrite) Dim OpSlot As New List(Of LayerTableRecord)() 'Verzamel alle lagen die op slot staan. Haal deze van het slot en 'stop deze in een lijst. For Each layerId As ObjectId In lt Dim ltr As LayerTableRecord = transactie.GetObject(layerId, _ OpenMode.ForWrite) If ltr.IsLocked = True Then ltr.IsLocked = False OpSlot.Add(ltr) End If Next 'Haal bijvoorbeeld de tabel voor “Dimstyle” en de dictionary van '“MleaderStyle” op. Dim dst As DimStyleTable = _ transactie.GetObject(mijnDB.DimStyleTableId, OpenMode.ForWrite) Dim mlst As DBDictionary = _ transactie.GetObject(mijnDB.MLeaderStyleDictionaryId, _ OpenMode.ForWrite)
11-7-2014
Applicatie tekeningenbeheer
Pagina 41/68
'Maak standaard “Dimstyle” actief indien aanwezig. Er wordt 'rekening gehouden met verschillende variaties i.v.m. 'hoofdlettergevoeligheid. If dst.Has("standard") Then mijnDB.Dimstyle = dst.Item("standard") ElseIf dst.Has("Standard") Then mijnDB.Dimstyle = dst.Item("Standard") ElseIf dst.Has("STANDARD") Then mijnDB.Dimstyle = dst.Item("STANDARD") End If 'Maak standaard “MLeaderstyle” actief indien aanwezig. Er wordt 'rekening gehouden met verschillende variaties i.v.m. 'hoofdlettergevoeligheid. If mlst.Contains("standard") Then mijnDB.MLeaderstyle = mlst.GetAt("standard") ElseIf mlst.Contains("Standard") Then mijnDB.MLeaderstyle = mlst.GetAt("Standard") ElseIf mlst.Contains("STANDARD") Then mijnDB.MLeaderstyle = mlst.GetAt("STANDARD") End If 'Lagen uit eerder aangemaakte verzameling op slot zetten. For Each ltr As LayerTableRecord In OpSlot Try ltr.IsLocked = True Catch ex As Exception End Try Next transactie.Commit() End Using 'Communicatie met database beëndigen en document ontgrendelen. End Using
Bijzonder aan deze procedure is de manier waarop de tekening gepurged wordt. De totale applicatie maakt gebruik van .NET-libraries. Deze libraries (of bibliotheken) bevatten alle informatie die nodig is om herkenbare code voor AutoCAD te genereren. Voordat deze libraries bestonden, maakte men gebruik van COM-libraries. Hoewel de COM-bibliotheken nog steeds kunnen worden gebruikt, is het wenselijk om de broncode zo overzichtelijk mogelijk te houden en zoveel mogelijk van een beperkt aantal bibliotheken gebruik te maken. Gelukkig is hiervoor een oplossing. Het is namelijk mogelijk om gebruik te maken van COM-objecten/-methoden zonder dat de bijhorende bibliotheek in hoeft worden geladen. Vooral voor functies als “Purge All” is dit gunstig: er hoeft slechts een enkele methode worden aangeroepen om de gehele database te purgen. Ter vergelijking: om hetzelfde resultaat te bereiken met .NET-methodes moeten alle tabellen en dictionaries een voor een worden gepurged en moeten alle bijhorende objecten apart worden verwijderd uit de database van de tekening.
11-7-2014
Applicatie tekeningenbeheer
Pagina 42/68
Het aanroepen van de COM-methode van “Purge All” geschiedt als volgt: Sub PurgeAllCOM() Dim acadAppm As Object = Application.AcadApplication acadApp.ActiveDocument.PurgeAll() End Sub
“AcadApplication” maakt deel uit van Autodesk.AutoCAD.ApplicationServices.Application. Omdat het indirect gebruik van deze COM-objecten en –methodes niet standaard deel uitmaakt van de .NET-libraries, dient de ontwikkelaar de code uit zijn of haar hoofd te kennen of moet dit eerst worden opgezocht omdat deze niet automatisch wordt aangevuld in de ontwikkelomgeving. 5.1.1.2.3
Reset oorsprong (Stroomschema cmd23)
De kortste manier om alle bestaande UCS’en te verwijderen, is om per lay-out een nieuw transformatiematrix te introduceren wat nog geen transformaties bevat. Dit moet voor alle layouts gedaan worden. Hieronder een kort fragment waarin is samengevat hoe het doorlopen van lay-outs geschiedt: Dim lotmgr As LayoutManager = LayoutManager.Current Dim LotDic As DBDictionary = _ transactie.GetObject(mijnDB.LayoutDictionaryId, _ OpenMode.ForRead)
'Dooloop alle lay-outs van de tekening. For Each LotEnt In LotDic 'Maak lay-out actief. lotmgr.CurrentLayout = LotEnt.Key 'Naar volgende lay-out. Next
Los hiervan moet ook het basepoint verplaatst worden naar de coördinaten 0,0,0. Dit staat los van het wijzigen of verwijderen van UCS’en en zal dus als aparte handeling moeten worden toegevoegd. Omdat er geen methode bestaat in de .NET-bibliotheken om dit te bereiken, wordt een commando uitgevoerd. Hieronder een voorbeeld om doormiddel van .NET een commando in AutoCAD in te voeren. dcmnt.SendStringToExecute("(command ""BASE"" ""0,0,0"") ", False, False, False)
Binnen de buitenste quotes wordt het commando geplaatst dat normaal in de commandoregel van AutoCAD ingevoerd zou worden. Uitgebreidere commando’s kunnen worden samengesteld gebaseerd op de taal AutoLISP. Een spatie wordt herkent als enter. Belangrijk is om, na het doorlopen van alle lay-outs, de layout te selecteren die als tabblad het eerste staat ingedeeld na de “Model”-lay-out.
11-7-2014
Applicatie tekeningenbeheer
Figuur 5.15: Lay-out na "Model"-tab.
Pagina 43/68
5.1.1.2.4
Inzoomen bereik (Stroomschema cmd24)
Net als bij de functie “Reset oorsprong” worden bij “Inzoomen bereik” alle lay-outs van een tekening doorlopen. Wanneer het de “Model”-lay-out is geselecteerd, wordt er ingezoomd op alle getekende objecten. Wanneer een andere lay-out is geselecteerd dient eerst worden vastgesteld waarop ingezoomd moet worden. Er wordt onderscheidt gemaakt tussen het bereik van de lay-out en het bereik van alle aanwezige objecten (entiteiten) op de lay-out. Het bereik vaststellen bij een andere lay-out dan “Model” vindt als volgt plaats: Dim Dim Dim Dim Dim
MinPLot As Point2d = lot.Limits.MinPoint MaxPLot As Point2d = lot.Limits.MaxPoint MinPPS As Point3d = mijnDB.Pextmin MaxPPS As Point3d = mijnDB.Pextmax XMin, XMax, YMin, YMax As Double
'Als de laagste waarde van het bereik van de lay-out op de x-as kleiner is dan 'de laagste waarde van het bereik van alle aanwezige entiteiten, dan is de laagste 'waarde van de nieuw in te stellen view op de x-as gelijk aan de laagste waarde van 'het bereik van de lay-out op de x-as. In alle andere gevallen is de laagste 'waarde van de nieuw in te stellen view op de x-as gelijk aan de laagste waarde van 'het bereik van alle entiteiten op de x-as. If MinPLot.X < MinPPS.X Then XMin = MinPLot.X Else XMin = MinPPS.X End If 'Als de hoogste waarde van het bereik van de lay-out op de x-as hoger is dan 'de hoogste waarde van het bereik van alle aanwezige entiteiten, dan is de hoogste 'waarde van de nieuw in te stellen view op de x-as gelijk aan de hoogste waarde van 'het bereik van de lay-out op de x-as. In alle andere gevallen is de hoogste 'waarde van de nieuw in te stellen view op de x-as gelijk aan de hoogste waarde van 'het bereik van alle entiteiten op de x-as. If MaxPLot.X > MaxPPS.X Then XMax = MaxPLot.X Else XMax = MaxPPS.X End If 'Als de laagste waarde van het bereik van de lay-out op de y-as kleiner is dan 'de laagste waarde van het bereik van alle aanwezige entiteiten, dan is de kleinste 'waarde van de nieuw in te stellen view op de y-as gelijk aan de laagste waarde van 'het bereik van de lay-out op de y-as. In alle andere gevallen is de kleinste 'waarde van de nieuw in te stellen view op de y-as gelijk aan de laagste waarde van 'het bereik van alle entiteiten op de y-as. If MinPLot.Y < MinPPS.Y Then YMin = MinPLot.Y Else YMin = MinPPS.Y End If
11-7-2014
Applicatie tekeningenbeheer
Pagina 44/68
'Als de hoogste waarde van het bereik van de lay-out op de y-as hoger is dan 'de hoogste waarde van het bereik van alle aanwezige entiteiten, dan is de hoogste 'waarde van de nieuw in te stellen view op de y-as gelijk aan de hoogste waarde van 'het bereik van de lay-out op de y-as. In alle andere gevallen is de hoogste 'waarde van de nieuw in te stellen view op de y-as gelijk aan de hoogste waarde van 'het bereik van alle entiteiten op de y-as. If MaxPLot.Y > MaxPPS.Y Then YMax = MaxPLot.Y Else YMax = MaxPPS.Y End If view.Width = XMax - XMin view.Height = YMax - YMin Dim Xmidden As Double = (XMin + XMax) / 2 Dim Ymidden As Double = (YMin + YMax) / 2 view.CenterPoint = New Point2d(Xmidden, Ymidden) dcmnt.Editor.SetCurrentView(view)
Na als bij het resetten van de oorsprong dient na het doorlopen van alle lay-outs de lay-out geselecteerd te worden die als tabblad het eerste staat ingedeeld na de “Model”-layout. 5.1.1.2.5
Lagen instellen (Stroomschema cmd25)
Met deze actie worden zoveel mogelijk herkenbare onderdelen van een tekening ingesteld op de juiste laag. Aan xrefs wordt de juiste laag toegekend en laag 0 wordt actief. Ook de te vervangen en nieuwe stempels waarop dit project zich richt, worden van de juiste laag voorzien. Als een laag nog niet bestaat wordt deze eerst aangemaakt. Dit gebeurt als volgt: Using ltr As LayerTableRecord = New LayerTableRecord() ltr.Name = XrefLaag LyrTbl.Add(ltr) transactie.AddNewlyCreatedDBObject(ltr, True) End Using
5.1.1.2.6
Herstel xref-paden (Stroomschema cmd26)
Deze routine is bedoeld om alle foutieve paden naar xrefs te herstellen. Dit is alleen mogelijk voor tekeningen die zijn opgenomen in de digitale tekeningenkluis “UMCN Gebouwdocumentatie”. Omdat het mogelijk is om de database van Meridian te exporteren naar diverse andere formaten, is het mogelijk om met een behulp van een export het pad te reconstrueren (zie hoofdstuk 3.2).
11-7-2014
Applicatie tekeningenbeheer
Pagina 45/68
Om een indruk te geven hoe dit gebeurt, volgt hieronder de volledige routine: Dim dcmnt As Document = Application.DocumentManager.MdiActiveDocument Dim mijnDB As Database = dcmnt.Database Using dcmnt.LockDocument Using transactie As Transaction = _ mijnDB.TransactionManager.StartTransaction Dim AccessReg As RegistryKey = _ Registry.ClassesRoot.OpenSubKey("Access.Application\CurVer") Dim AccessVersie As String = AccessReg.GetValue("") Dim ConString As String = Nothing 'Bepaal doormiddel van de versie van Access welke provider gebruik moet 'worden bij de connectiestring. If AccessVersie.Substring(AccessVersie.LastIndexOf(".") + 1, _ AccessVersie.Length - 1 - AccessVersie.LastIndexOf(".")) < 14 Then ConString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _ Locaties.DatabaseLocatie ElseIf AccessVersie.Substring(AccessVersie.LastIndexOf(".") + 1, _ AccessVersie.Length - 1 - AccessVersie.LastIndexOf(".")) >= 14 Then ConString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & _ Locaties.DatabaseLocatie End If 'Start de verbinding met Access-database. Dim Conn = New OleDbConnection(ConString) Conn.Open() Dim BTable As BlockTable = transactie.GetObject(mijnDB.BlockTableId, _ OpenMode.ForWrite) 'Doorloop de blocktable om te zoeken naar onopgelost xrefs. For Each item As ObjectId In BTable Dim btr As BlockTableRecord = transactie.GetObject(item, _ OpenMode.ForWrite) If btr.IsFromExternalReference And btr.XrefStatus = _ XrefStatus.FileNotFound Then Dim Status As String = Nothing Dim Gebouwcode As String = Nothing 'Stel een query samen. Dim regel As String = "SELECT Name, Gebouwcode, " & _ "Documentstatus " & _ "FROM Meridian WHERE Name = '" & btr.Name & ".dwg'" 'Begin de informative-uitwisseling met de database. Using DbTran = Conn.BeginTransaction() Dim SQLCommando = New OleDbCommand(regel, Conn, _ DbTran) Dim resultaat = SQLCommando.ExecuteReader() 'Zoek naar de documentstatus en de gebouwcode van 'de tekening om een pad te kunnen reconstrueren. While resultaat.Read If resultaat.GetValue(resultaat.GetOrdinal( "Documentstatus")) = "Archief" Then Status = "Archief" Else Status = "Revisie" End If Gebouwcode = resultaat.GetValue(resultaat. GetOrdinal("Gebouwcode")) End While
11-7-2014
Applicatie tekeningenbeheer
Pagina 46/68
resultaat.Close() resultaat = Nothing DbTran.Commit() End Using 'Verander het pad van de xref. btr.PathName = "\\NaamNetwerkSchijf\MapNetwerkSchijf" & _ & "\" Status & "\" & Gebouwcode & "\" & btr.Name & ".dwg" End If Next 'Sluit de verbinding met Access-database. Conn.Close() Conn = Nothing transactie.Commit() End Using End Using
5.1.1.2.7
Combineer acties (Stroomschema cmd27)
In deze routine kunnen alle eerder genoemde functies uit het tabblad “Manipulatie” in alle mogelijke samenstellingen, worden gecombineerd. De gebruiker vinkt aan welke acties uitgevoerd dienen te worden en klikt vervolgens op “Combineer acties”. (Opmerking: Vanwege de omvang is stroomschema cmd27 niet beschikbaar in de bijlage als hard copy. Verwezen wordt naar de digitale bijlage.)
11-7-2014
Applicatie tekeningenbeheer
Pagina 47/68
5.1.1.3
Analyse
Het tabblad “Analyse” leest een back-up uit en geeft een weergave van de resultaten die behaalt zijn bij het back-uppen van een bepaalde tekeningenreeks.
Figuur 5.16: Tabblad "Analyse".
11-7-2014
Applicatie tekeningenbeheer
Pagina 48/68
5.1.1.3.1
Invoer (Stroomschema cmd31)
Om de gegevens van een backup te analyseren, moet de gebruiker eerst opgeven welke back-up als bron gebruikt wordt. Nadat de gebruiker klikt op de knop “Selecteren” verschijnt een venster met daarin een lijst van aangemaakte back-ups. Na het selecteren van een back-up worden verschillende waarden opgehaald. Hiernaast volgt een voorbeeldweergave:
Figuur 5.17: Analysevoorbeeld.
Per back-up zijn twee bestanden aanwezig en uitgelezen: een primaire back-up en een secundaire back-up. Het is de bedoeling dat de primaire back-up onaangepast blijft. Uit de secundaire back-up worden twee lijsten opgehaald: een lijst met tekeningen die een ongeldig stempel bevatten en een lijst met onleesbare tekeningen. Via een venster wordt de lijst, en de bijhorende secundaire back-up, aangepast. Het resultaat wordt als volgt berekend: tekeningen met geldig stempel / bruikbare tekeningen × 100% = Resultaat.
11-7-2014
Applicatie tekeningenbeheer
Pagina 49/68
5.1.1.3.2
Tekeningen met ongeldig stempel (Stroomschema cmd32)
Met behulp van de een lijst krijgt de gebruiker snel een overzicht van welke tekeningen nog handmatig moeten worden aangepast.
Figuur 5.18: Lijst van tekeningen met ongeldig stempel.
Vanuit dit venster kunnen tekeningen worden geopend, is het mogelijk om naar het bestand te navigeren middels de verkenner, of om tekeningen uit de lijst te verwijderen. Tekeningen kunnen uit de lijst worden verwijderd nadat deze handmatig zijn aangepast. 5.1.1.3.3
Onleesbare tekeningen (Stroomschema cmd33)
Met behulp van de een lijst krijgt de gebruiker snel een overzicht van welke tekeningen extra controle nodig hebben omdat zij niet geopend konden worden. De werking van dit venster is gelijk aan het venster dat opgeroepen wordt om een lijst met ongeldige stempels te bekijken. De mogelijkheid om tekeningen te openen is weggelaten omdat dit niet mogelijk is. Omdat er geen onleesbare tekeningen beschikbaar waren is dit niet zichtbaar in figuur 5.16.
11-7-2014
Applicatie tekeningenbeheer
Pagina 50/68
5.2
Palette
Na het ontwikkelen van de oorspronkelijke applicatie in de vorm van een dialoog, ontstond de vraag om een werkset te ontwikkelen met dezelfde functionaliteit als de dialoog maar dan gericht op de actieve tekening in AutoCAD. Deze werkset is uitgewerkt in een palette. De functionaliteit is bijna volledig identiek aan die van het tabblad “Manipulatie” van de dialoog (zie hoofdstuk 5.1.1.2). Een extra knop is toegevoegd om stempels te vervangen. Hiermee worden oude stempels met een geldige naam vervangen en ingevuld met de oorspronkelijke gegevens uit dezelfde oude stempels. Er is bewust gekozen om deze stempels niet met de gegevens van een database in te vullen omdat deze functie in de palette willekeurig in dagelijkse praktijk zal worden gebruikt. De gebruiker weet dan vaak niet of de geëxporteerde database van Meridian actuele gegevens bevat of niet. Zo zouden gegevens uit een stempel, die actueler zouden kunnen zijn dan die van de geëxporteerde database, overschreven worden met mogelijk oudere gegevens van een verouderde geëxporteerde database.
Figuur 5.19: Palette "Tekeningenbeheer".
11-7-2014
Applicatie tekeningenbeheer
Pagina 51/68
5.3
Routine tijdens afsluiten
Om ook alle instellingen van AutoCAD in een standaard te handhaven is er een routine ontwikkeld die voor het afsluiten van een tekening in de achtergrond verschillende instellingen wijzigt. De meeste van deze instellingen worden gewijzigd door veranderen van de waarde van systeem variabelen van AutoCAD. Het veranderen van een systeem variabele gebeurd als volgt: 'In dit voorbeeld wordt de waarde van de systeem variabele “ATTDIA” gewijzigd naar 1. Application.SetSystemVariable("ATTDIA", 1)
5.4
Efficiëntie
Nu de applicatie gereed is, is het mogelijk om gefundeerd uitspraken te doen over de prestaties en hoe deze zich verhouden tot de oude situatie. 5.4.1
Korte termijn
Direct vanaf het in gebruik nemen van de applicatie, zal meteen tijdswinst behaald worden ten opzichten van de oorspronkelijke situatie. Ter indicatie: het uitvoeren van alle handelingen zou handmatig ongeveer 15 minuten in beslag nemen. Voor 100 tekeningen zou dit 100 × 15 minuten = 1500 minuten = 25 uur duren. Hier komt bij dat alle oude informatie uit de oorspronkelijke stempels na het overschrijven met de data uit Meridian verloren is gegaan. Tot slot is het als mens lastig om zich te blijven concentreren bij het handmatig aanpassen van een grote reeks tekeningen waardoor een bepaalde kans op fouten bestaat. Het toepassen van de applicatie voorkomt menselijke fouten als gevolg van bijvoorbeeld concentratieverlies en bezit de extra functionaliteit om alle oude informatie veilig te stellen. Uit een test met 100 tekeningen is gebleken dat de applicatie binnen gemiddeld 15 minuten alle oude informatie uit tekeningen heeft opgeslagen in een back-up, alle geldige stempels heeft vervangen en ingevuld, en alle bewerkingen ten behoeve van de uniformiteit van tekeningen heeft uitgevoerd. Per tekening is dit 15 × 60 / 100 = 9 sec. In absolute zin is dit een tijdswinst van 1500 minuten - 15 minuten = 1485 minuten. Relatief gezien verhoogt dit de productiviteit met 1500 minuten / 15 min × 100% - 100% = 9900 %. Handmatig
Applicatie
Absolute tijdswinst
Toename productiviteit
1 tekening
15 min
0,15 min = 9 sec
± 14,85 min
9900 %
100 tekeningen
1500 min
15 min
1485 min
9900 %
Figuur 5.20: Overzicht tijdswinst applicatie.
11-7-2014
Applicatie tekeningenbeheer
Pagina 52/68
5.4.2
Lange termijn
Uitgaande van een ontwikkeltijd van 1000 uur in combinatie met de resultaten uit hoofdstuk 5.4.1 kan worden berekend wanneer de applicatie zich terug gaat verdienen. De hieronder weergegeven grafiek geeft hier een overzichtelijk beeld van. De belangrijkste uitgangspunten voor de grafiek: -
Grafiek start bij het in gebruik nemen van de applicatie;
-
De gebruiker werkt alleen aan de gelijksoortige handelingen die uitgevoerd worden door de applicatie.
Aantal tekeningen Handmatig [arbeidsuren] Applicatie [arbeidsuren]
0
1000
2000
3000
4000
5000
0
250
500
750
1000
1250
1000
1003
1005
1008
1010
1013
1400 1200
Arbeidsuren →
1000 800 600 400 200 0 0
1000
2000
3000
4000
5000
Tekeningen → Handmatig
Applicatie
Figuur 5.21: Relatie aantal tekeningen en arbeidsuren.
Er kan nu berekend worden na hoeveel tekeningen de applicatie tijdswinst op gaat leveren: 900𝑥 = 9𝑥 + 1000 × 602 900𝑥 - 9𝑥 = 3.600.000 891𝑥 = 3.600.000 𝑥 = 3.600.000 / 891 ≈ 4040 tekeningen. 11-7-2014
Applicatie tekeningenbeheer
Pagina 53/68
Aan de hand van het aantal tekeningen wordt berekend hoeveel arbeidsuren hiermee gepaard gaan: 900 × 4040 / 602 = 1010 arbeidsuren Na het aanmaken van verschillende back-ups moet de workflow binnen de applicatie voor nog meer tijdswinst kunnen zorgen op de lange termijn. Omdat in de projectgrenzen is opgenomen dat niet alle stempels vervangen worden, kan het nodig zijn om tekeningen alsnog handmatig aan te moeten passen. Zoals besproken in hoofdstuk 4.4.1.3 biedt het tabblad “Analyse” de gebruiker enkele hulpmiddelen om zo overzichtelijk mogelijk weer te geven welke tekeningen handmatig moeten worden aangepast en biedt het aanvullende hulpmiddelen om snel naar tekeningen te navigeren, ze te openen en het overzicht van deze tekeningen bij te werken. Uitspraken over resultaten op de lange termijn kunnen nog niet worden gedaan omdat de applicatie nog niet voor een langere periode van minimaal een jaar in gebruik is genomen door de tekeningenbeheerder.
11-7-2014
Applicatie tekeningenbeheer
Pagina 54/68
6
CONCLUSIES EN AANBEVELINGEN
Na het analyseren van verschillende oplossingen en deze aan elkaar te hebben afgewogen, is gebleken dat dit project het beste uitgewerkt kon worden in de vorm van een applicatie. Middels deze applicatie is het mogelijk om informatie uit tekeningen uit te kunnen lezen en op te slaan in een back-up. Deze back-ups worden aangemaakt om informatie veilig te stellen indien zij ooit nog nodig zijn voor inzage. De stempels worden na het veiligstellen van de oorspronkelijke informatie vervangen voor een nieuw stempel met hierin het nieuwe logo. Tijdens het proces van het vervangen van stempels worden de nieuwe stempels tevens ingevuld met de meest actuele informatie uit de database van Meridian. Omdat het zonder verdere studie niet mogelijk is om direct te communiceren met de database van Meridian is het eerst noodzakelijk om al haar gegevens te exporteren naar een Access-database. Naast het vervangen van een stempel wordt de tekening ook opgeschoond. Hieronder wordt verstaan het purgen van overbodige data, verwijderen van UCS’en, inzoomen op het bereik, instellen van lagen en herstellen van xrefpaden. De doelstellingen van het project zijn met succes behaald. Met uitgebreidere kennis zou het ontwikkelen van een toekomstige applicatie zich kunnen richten op het direct communiceren met Meridian. Hierdoor zijn er minder informatiesystemen in omloop waardoor er minder kans is op fouten doordat gegevens onafhankelijk van elkaar worden aangepast. Wanneer het mogelijk is om te communiceren met de database van Meridian, wordt het ook mogelijk om een stempel direct vanuit AutoCAD aan
Database Meridian
Applicatie
Meridian
Tekening
te sturen met de opdracht om zijn gegevens te vervangen met de gegevens uit Meridian. Eventuele tijdswinst zou ook nog behaald kunnen worden GRRUde code voor
Figuur 6.2: Ideale informatieuitwisseling.
het vervangen van stempels uit te breiden zodat onthouden wordt welke tekening het laatst in behandeling is Applicatie
genomen zodat het proces daar een andere keer zou kunnen worden hervat. Kritische noot hierbij is dat dit niet te lang mag worden uitgesteld omdat tekeningen van het Radboud veel aan
Meridian
Tekening
revisie onderhevig zijn. Figuur 6.1: Informatie-uitwisseling project.
11-7-2014
Applicatie tekeningenbeheer
Pagina 55/68
7
NAWOORD
Het gebruik van deze applicatie kan een grote bijdrage leveren aan het vergroten van de efficiëntie van de werkzaamheden van de tekeningenbeheerder. Wat betreft het actualiseren van gegevens in een grote tekeningenreeks vanuit Meridian: er bestaat wellicht een grote kans dat, na het aanschaffen van nieuwe systemen, het programma zelf de taak op zich kan nemen om dit proces uit te voeren. Immers, vaak is het zo dat nieuwe systemen over meer capaciteiten beschikken waardoor het misschien niet meer voor gaat komen dat een dergelijke procedure plotseling beëindigd wordt. Op de langere termijn zal blijken of de applicatie echt goed haar werk doet. Omdat de applicatie naast het opschonen van tekeningen ook inzichtelijk maakt voor de tekeningenbeheerder welke tekeningen extra aandacht verdienen, zodat deze gericht handmatig tekeningen kan aanpassen, ontstaat er zodoende een soort zelfreinigend vermogen; Het aantal tekeningen dat handmatig aangepast dient te worden, wordt steeds kleiner. Hierdoor wordt het steeds overzichtelijker welke bestanden nog handmatig moeten worden aangepast. Uiteindelijk wordt getracht om alle bestaande tekeningen van een uniforme huisstijl te voorzien en allen over de meest actuele informatie beschikken.
11-7-2014
Applicatie tekeningenbeheer
Pagina 56/68
8
BRONNEN
Ronald, ir. R., AutoCAD 2011 Nijmegen, 2010, Computer Ondersteund Ontwerpen Ronald, ir. R., AutoCAD 2014 Nijmegen, 2013, Computer Ondersteund Ontwerpen https://www.radboudumc.nl/ http://docs.autodesk.com/ACD/2014/enu/ http://www.jtbworld.com/ http://through-the-interface.typepad.com/ http://adndevblog.typepad.com/autocad/
11-7-2014
Applicatie tekeningenbeheer
Pagina 57/68
9
BIJLAGEN I.
Organigrammen: globaal en V&I
II.
Attributen en velden
III.
Stroomschema’s
IV. Broncode applicatie V.
11-7-2014
Installatiehandleiding
Applicatie tekeningenbeheer
Pagina 58/68
Bijlage I-a Organigram globaal
11-7-2014
Applicatie tekeningenbeheer
Pagina 59/68
Bijlage I-b Organigram V&I
11-7-2014
Applicatie tekeningenbeheer
Pagina 61/68
Bijlage II Attributen en velden
11-7-2014
Applicatie tekeningenbeheer
Pagina 63/68
Attributen en velden MERIDIAN Metadata Afdeling Akkoord controle JA Akkoord controle NEE
VELDEN/ATTRIBUTEN
Bladnummer Contactpersoon Controledatum Datum controle retour Datum gereserveerd Discipline Document Type Documentsoort Documentstatus Formaat Gebouwcode Gebouwomschrijving Gereserveerd door Getekend Groep Hoofdgroep Interne postcode Maateenheid Name Opmerking 1 Opmerking 2 Projectleider Revisiedatum Schaal Tekeningomschrijving_1 Tekeningomschrijving_2 Uitgeleend aan UItgeleend Projectnummer Uitleendatum Verdieping Verwachte retour datum Wijzigingsdatum_1 Wijziging_1_door Wijziging_1_project Wijzigingsdatum_2 Wijziging_2_door Wijziging_2_project Wijzigingsdatum_3 Wijziging_3_door Wijziging_3_project Wijzigingsdatum_4 Wijziging_4_door Wijziging_4_project Wijzigings_datum5 Wijziging_5_door Wijziging_5_project Witdruk ter controle naar
BLOKKEN BTTEKHFD
TEKHFD01
TEKHFD02
tekhfd03 (1‐1‐2009)
tekhfd03
tekhfd04
tekhfd05
ADVISEUR ENTITEIT
ADVISEUR ENTITEIT
ADVISEUR ENTITEIT
ADVISEUR ENTITEIT
ADVISEUR ENTITEIT
ADVISEUR ENTITEIT
ADVISEUR ENTITEIT
Legenda: = Meridian, CAD, database
ARCHITECT TEKENINGNUMMER
ARCHITECT TEKENINGNUMMER
ARCHITECT TEKENINGNUMMER
ARCHITECT TEKENINGNUMMER
ARCHITECT TEKENINGNUMMER
ARCHITECT TEKENINGNUMMER
ARCHITECT TEKENINGNUMMER
= Meridian, database = Meridian = CAD
TEKENINGSTATUS TEKENINGFORMAAT GEBOUWCODE GEBOUWOMSCHRIJVING
TEKENINGSTATUS TEKENINGFORMAAT GEBOUWCODE GEBOUWOMSCHRIJVING
TEKENINGSTATUS TEKENINGFORMAAT GEBOUWCODE GEBOUWOMSCHRIJVING
TEKENINGSTATUS TEKENINGFORMAAT GEBOUWCODE GEBOUWOMSCHRIJVING
TEKENINGSTATUS TEKENINGFORMAAT GEBOUWCODE GEBOUWOMSCHRIJVING
TEKENINGSTATUS TEKENINGFORMAAT GEBOUWCODE GEBOUWOMSCHRIJVING
TEKENINGSTATUS TEKENINGFORMAAT GEBOUWCODE GEBOUWOMSCHRIJVING
GETEKEND
GETEKEND
GETEKEND
GETEKEND
GETEKEND
GETEKEND
GETEKEND
TEKENINGTYPE INSTALLATEUR
TEKENINGTYPE INSTALLATEUR INTERNEPOSTCODE
TEKENINGTYPE INSTALLATEUR
TEKENINGTYPE INSTALLATEUR INTERNEPOSTCODE
TEKENINGTYPE INSTALLATEUR
TEKENINGTYPE INSTALLATEUR
TEKENINGTYPE INSTALLATEUR
CAD‐NAAM
CAD‐NAAM
CAD‐NAAM
CAD‐NAAM
CAD‐NAAM
CAD‐NAAM
CAD‐NAAM
AANMAAKDATUM TEKENINGSCHAAL TEKENINGOMSCHRIJVING_1 TEKENINGOMSCHRIJVING_2
AANMAAKDATUM TEKENINGSCHAAL TEKENINGOMSCHRIJVING_1 TEKENINGOMSCHRIJVING_2
AANMAAKDATUM TEKENINGSCHAAL TEKENINGOMSCHRIJVING_1 TEKENINGOMSCHRIJVING_2
AANMAAKDATUM TEKENINGSCHAAL TEKENINGOMSCHRIJVING_1 TEKENINGOMSCHRIJVING_2
AANMAAKDATUM TEKENINGSCHAAL TEKENINGOMSCHRIJVING_1 TEKENINGOMSCHRIJVING_2
AANMAAKDATUM TEKENINGSCHAAL TEKENINGOMSCHRIJVING_1 TEKENINGOMSCHRIJVING_2
AANMAAKDATUM TEKENINGSCHAAL TEKENINGOMSCHRIJVING_1 TEKENINGOMSCHRIJVING_2
WIJZIGINGSDATUM_1 WIJZIGING_1_DOOR WIJZIGING_1_PROJECT WIJZIGINGSDATUM_2 WIJZIGING_2_DOOR WIJZIGING_2_PROJECT WIJZIGINGSDATUM_3 WIJZIGING_3_DOOR WIJZIGING_3_PROJECT WIJZIGINGSDATUM_4 WIJZIGING_4_DOOR WIJZIGING_4_PROJECT WIJZIGINGSDATUM_5 WIJZIGING_5_DOOR WIJZIGING_5_PROJECT
WIJZIGINGSDATUM_1 WIJZIGING_1_DOOR WIJZIGING_1_PROJECT WIJZIGINGSDATUM_2 WIJZIGING_2_DOOR WIJZIGING_2_PROJECT WIJZIGINGSDATUM_3 WIJZIGING_3_DOOR WIJZIGING_3_PROJECT WIJZIGINGSDATUM_4 WIJZIGING_4_DOOR WIJZIGING_4_PROJECT WIJZIGINGSDATUM_5 WIJZIGING_5_DOOR WIJZIGING_5_PROJECT
WIJZIGINGSDATUM_1 WIJZIGING_1_DOOR WIJZIGING_1_PROJECT WIJZIGINGSDATUM_2 WIJZIGING_2_DOOR WIJZIGING_2_PROJECT WIJZIGINGSDATUM_3 WIJZIGING_3_DOOR WIJZIGING_3_PROJECT WIJZIGINGSDATUM_4 WIJZIGING_4_DOOR WIJZIGING_4_PROJECT WIJZIGINGSDATUM_5 WIJZIGING_5_DOOR WIJZIGING_5_PROJECT
WIJZIGINGSDATUM_1 WIJZIGING_1_DOOR WIJZIGING_1_PROJECT WIJZIGINGSDATUM_2 WIJZIGING_2_DOOR WIJZIGING_2_PROJECT WIJZIGINGSDATUM_3 WIJZIGING_3_DOOR WIJZIGING_3_PROJECT WIJZIGINGSDATUM_4 WIJZIGING_4_DOOR WIJZIGING_4_PROJECT WIJZIGINGSDATUM_5 WIJZIGING_5_DOOR WIJZIGING_5_PROJECT
WIJZIGINGSDATUM_1 WIJZIGING_1_DOOR WIJZIGING_1_PROJECT WIJZIGINGSDATUM_2 WIJZIGING_2_DOOR WIJZIGING_2_PROJECT WIJZIGINGSDATUM_3 WIJZIGING_3_DOOR WIJZIGING_3_PROJECT WIJZIGINGSDATUM_4 WIJZIGING_4_DOOR WIJZIGING_4_PROJECT WIJZIGINGSDATUM_5 WIJZIGING_5_DOOR WIJZIGING_5_PROJECT
WIJZIGINGSDATUM_1 WIJZIGING_1_DOOR WIJZIGING_1_PROJECT WIJZIGINGSDATUM_2 WIJZIGING_2_DOOR WIJZIGING_2_PROJECT WIJZIGINGSDATUM_3 WIJZIGING_3_DOOR WIJZIGING_3_PROJECT WIJZIGINGSDATUM_4 WIJZIGING_4_DOOR WIJZIGING_4_PROJECT WIJZIGINGSDATUM_5 WIJZIGING_5_DOOR WIJZIGING_5_PROJECT
WIJZIGINGSDATUM_1 WIJZIGING_1_DOOR WIJZIGING_1_PROJECT WIJZIGINGSDATUM_2 WIJZIGING_2_DOOR WIJZIGING_2_PROJECT WIJZIGINGSDATUM_3 WIJZIGING_3_DOOR WIJZIGING_3_PROJECT WIJZIGINGSDATUM_4 WIJZIGING_4_DOOR WIJZIGING_4_PROJECT WIJZIGINGSDATUM_5 WIJZIGING_5_DOOR WIJZIGING_5_PROJECT
OVERIGE ATTRIBUTEN (vaak afkomstig van externe partijen)
Bijlage III Stroomschema’s
11-7-2014
Applicatie tekeningenbeheer
Pagina 65/68
cmd11
Start
Selecteer bron
Kluis
Handmatig ‐ bestanden
Handmatig ‐ map
Selecteer bestanden
Selecteer map
Invoer selecteren Kluis
Gebouw Subkluis
Selecteer kluis
Selecteer subkluis/‐ kluizen
Selecteer gebouw(en)
Verzamel selectie
Einde
Start
cmd12 Selecteer tekening
Tekeningnaam ophalen
Probeer tekening te openen
Mislukt
Vermelden dat openen is mislukt
Nee
Vermelden dat geldig stempel ontbreekt
Selecteer volgende tekening
Gelukt
Vermelden dat openen is gelukt
Geldig stempel aanwezig Ja Vermelden dat geldig stempel aanwezig is
Verzamel blokreferenties per layout
Na laatste blokreferentie
Selecteer blokreferentie
Bloknaam ophalen
Bijhorende layoutnaam van blokreferentie ophalen Selecteer volgende blokreferentie Invoegpunt blokreferentie ophalen
Schaal blokreferentie ophalen
Attribuutreferenties verzamelen
Niet aanwezig
Aanwezig
Selecteer attribuutreferentie
Tag attribuutreferentie ophalen
Waarde attribuutreferentie ophalen Na laatste tekening
Back‐up aanmaken
Einde
Selecteer volgende attribuutreferentie
cmd13
Start
Back‐ups verzamelen
Selecteer kluis
Einde
Start
cmd14 Verzamel gegevens tekeningen uit back‐ up
Selecteer tekening Selecteer volgende tekening Probeer tekening te openen
Mislukt
Gelukt Nee
Geldig stempel aanwezig? Ja Verwijder blokreferenties geldige stempels
Verwijder en purge blokdefinities geldige stempels
Selecteer layout
Nee
Geldig stempel aanwezig?
Selecteer volgende layout
Ja
Selecteer stempel
Vraag gegevens op van oorspronkelijke stempel
Blokdefinitie van nieuw stempel toevoegen
Blokreferentie toevoegen op schaal op invoegpunt Collectie ophalen van nieuw ingevoegde stempels
Selecteer volgend stempel
Na laatste stempel uit collectie
Selecteer stempel
Selecteer volgend stempel Bijhorende laag aanwezig? Nee
Laag aanmaken
Ja
Stempel bijhorende laag toekennen
Attributen invullen
Na laatste layout
Selecteer “Model”‐ layout
Na laatste tekening
Einde
cmd21
Start
Selecteer bron
Kluis
Selectieset back‐up
Handmatig ‐ bestanden
Handmatig ‐ map
Invoer selecteren Kluis
Gebouw Subkluis
Selecteer kluis
Selecteer subkluis/‐ kluizen
Selecteer gebouw(en)
Selecteer back‐up
Verzamel selectie
Einde
Selecteer bestanden
Selecteer map
cmd22
Start
Selecteer tekening
Selecteer volgende tekening Probeer tekening te openen
Mislukt
Gelukt Collectie aanmaken van lagen die op slot staan
Lagen die op slot staan van slot halen
Standaard stijlen actief maken
Purge alle gegevens van tekening
Lagen uit aangemaakte collectie op slot zetten Na laatste tekening
Einde
Na laatste laag
cmd23
Start
Selecteer tekening
Selecteer volgende tekening Probeer tekening te openen
Mislukt
Gelukt
Selecteer layout
UCS resetten (UCS naar WCS)
Basepoint naar 0, 0, 0
Na laatste layout
Selecteer “Model”‐ layout
Na laatste tekening Einde
Selecteer volgende layout
Start
cmd24
Selecteer tekening
Selecteer volgende tekening Probeer tekening te openen
Mislukt
Gelukt
Selecteer layout “Model”
Anders
Zoom Extents uitvoeren via COM‐ methode
Minimum x layout > minimum x entiteiten
Ja
Nee
Extensie x min = Minimum x layout
Extensie x min = Minimum x entiteiten
Maximum x layout > maximum x entiteiten
Ja
Nee
Extensie x max = Maximum x layout
Extensie x max = Maximum x entiteiten
Minimum y layout > minimum y entiteiten
Ja
Nee
Extensie y min = Minimum y layout
Extensie y min = Minimum y entiteiten
Maximum y layout > maximum y entiteiten
Ja
Extensie y max = Maximum y layout
Nee
Extensie y max = Maximum y entiteiten
Middelpunt bepalen
View instellen a.d.v. middelpunt
Na laatste tekening Einde
Na laatste layout
Start
cmd25
Selecteer tekening
Selecteer volgende tekening Probeer tekening te openen
Mislukt
Gelukt Collectie aanmaken van lagen die op slot staan
Lagen die op slot staan van slot halen
Xrefs verzamelen Aanwezig
Niet aanwezig
Bijhorende laag aanwezig? Nee
Ja
Laag aanmaken
Xref selecteren
Selecteer volgende xref Xref bijhorende laag toekennen Na laatste xref
Viewports verzamelen Aanwezig
Niet aanwezig
Bijhorende laag aanwezig? Nee
Laag aanmaken
Ja
Viewport selecteren
Viewport bijhorende laag toekennen
Selecteer volgende viewport
Na laatste viewport
Laag 0 actief maken
Lagen uit aangemaakte collectie op slot zetten Na laatste tekening
Einde
Na laatste laag
cmd26
Start
Selecteer tekening
Selecteer volgende tekening Probeer tekening te openen
Mislukt
Gelukt
Entiteiten verzamelen
Selecteer entiteit
Selecteer volgende entiteit
Entiteit is xref?
Ja
Is verwijzing foutief?
Nee
Nee
Ja Documentstatus ophalen uit database
Gebouwcode ophalen uit database
Locatie xref reconstrueren en corrigeren Na laatste tekening
Einde
Na laatste entiteit
cmd27
Start
Selecteer tekening Selecteer volgende tekening Mislukt
Probeer tekening te openen Gelukt Collectie aanmaken van lagen die op slot staan
Lagen die op slot staan van slot halen
Selecteer layout
“Model”
Anders
Extensies ophalen bijhorende view
Minimum x layout > minimum x entiteiten
Ja
Nee
Extensie x min = Minimum x layout
Extensie x min = Minimum x entiteiten
Maximum x layout > maximum x entiteiten
Ja
Nee
Extensie x max = Maximum x layout
Extensie x max = Maximum x entiteiten
Minimum y layout > minimum y entiteiten
Ja
Nee
Extensie y min = Minimum y entiteiten
Extensie y min = Minimum y layout
Selecteer volgende layout Maximum y layout > maximum y entiteiten
Ja
Nee
Extensie y max = Maximum y entiteiten
Extensie y max = Maximum y layout
Middelpunt bepalen
View instellen a.d.v. middelpunt
UCS resetten (UCS naar WCS)
Basepoint naar 0, 0, 0
Na laatste layout
Selecteer “Model”‐ layout
Xrefs verzamelen Aanwezig
Niet aanwezig
Bijhorende laag aanwezig? Nee
Ja
Laag aanmaken
Xref selecteren Selecteer volgende xref Xref bijhorende laag toekennen Na laatste xref
Viewports verzamelen Aanwezig
Niet aanwezig
Bijhorende laag aanwezig? Nee
Ja
Laag aanmaken
Viewport selecteren Selecteer volgende viewport Viewport bijhorende laag toekennen Na laatste viewport
Laag 0 actief maken
Entiteiten verzamelen
Selecteer entiteit
Selecteer volgende entiteit
Entiteit is xref?
Ja
Is verwijzing foutief? Ja Documentstatus ophalen uit database
Gebouwcode ophalen uit database
Locatie xref reconstrueren en corrigeren
Standaard stijlen actief maken
Purge alle gegevens van tekening
Lagen uit aangemaakte collectie op slot zetten Na laatste tekening Einde
Nee
Nee
cmd31
Start
Back‐ups verzamelen
Selecteer kluis
Back‐up‐naam uit primaire back‐up ophalen en weergeven Aantal gelezen tekeningen in primaire back‐up tellen en weergeven Aantal onleesbare tekeningen in primaire back‐up tellen en weergeven Aantal bruikbare tekeningen berekenen en weergeven Aantal tekeningen met geldig stempel in primaire back‐up tellen en weergeven
Resultaat berekenen en weergeven
Back‐up‐naam uit secundaire back‐up ophalen en weergeven Aantal gelezen tekeningen in secundaire back‐up tellen en weergeven Aantal onleesbare tekeningen in secundaire back‐up tellen en weergeven Aantal bruikbare tekeningen berekenen en weergeven Aantal tekeningen met geldig stempel in secundaire back‐ up tellen en weergeven
Resultaat berekenen en weergeven
Einde
cmd32
Start
Gegevens van tekeningen met ongeldig stempel ophalen en weergeven
Selecteer tekening
Tekening openen
Bestandslocatie openen
Einde
Tekening uit lijst verwijderen
cmd33
Start
Gegevens van onleesbare tekeningen ophalen en weergeven
Selecteer tekening
Tekening openen
Bestandslocatie openen
Einde
Tekening uit lijst verwijderen
Bijlage IV Handleiding beheer
11-7-2014
Applicatie tekeningenbeheer
Pagina 67/68
HANDLEIDING BEHEER
1
INSTALLATIE & CONFIGURATIE
1.1
Installatie
Om gebruik te kunnen maken van de applicatie dient allereerst het bijhorende bestand “Tekeningenbeheer.dll” te worden geplaatst op de gewenste locatie op het gewenste systeem of meerdere systemen. Het is toegestaan om alle willekeurige lokale locaties hiervoor te gebruiken. Ook het gebruik van netwerklocaties is toegestaan al wordt dit niet geadviseerd omdat dit vaak tot problemen leidt in verband met het ontbreken van rechten voor bepaalde gebruikers binnen een netwerk. 1.2
acad.lsp
Afhankelijk van de instellingen van een profiel binnen AutoCAD, worden bij het starten van het programma verschillende scripts geladen. De volgorde waarin dit plaatsvindt is als volgt: 1.
Files in acad.rx
2.
acadYEAR.lsp
3.
acad.lsp
4.
acadYEARdoc.lsp
5.
acaddoc.lsp
6.
acad.dvb
7.
Partials to Main CUI/CUIX named MNLs
8.
Partials to Main CUI/CUIX loaded LSPs and MNLs in the order seen in CUI
9.
Main CUI/CUIX named MNL
10. Main CUI/CUIX loaded LSP and MNL in the order seen in CUI 11. Partials to Enterprise CUI/CUIX named MNLs 12. Partials to Enterprise CUI/CUIX loaded LSPs and MNLs in the order seen in CUI 13. Enterprise CUI/CUIX named MNL 14. Enterprise CUI/CUIX loaded LSP and MNL in the order seen in CUI 15. acetmain.MNL 16. Express Tools loaded LSP and MNL in the order seen in CUI 17. Files in the startup suite in listed order seen in APPLOAD 18. (S::STARTUP) called 19. Script file started by acad.exe command line switch /b Bron: http://www.jtbworld.com/lisp/acad_lsp.htm
Voor dit project is gekozen om de applicatie automatisch te laden bij het opstarten van AutoCAD middels het acad.lsp bestand.
30 juni 2014
Tekeningenbeheer Gebouwen
Pagina 1/12
Dit bestand wordt niet altijd standaard aangemaakt bij de installatie van AutoCAD. Het bestand bevindt zich in de map “support” van de installatielocatie van AutoCAD (in veel gevallen: …\Program Files\Autodesk\AutoCAD jaar\support). Als het bestand ontbreekt moet dit eerst worden aangemaakt. Om het bestand aan te maken, maak eerst een txt-bestand aan.
Hernoem het aangemaakte txt-bestand tot acad.lsp. Bevestig dat u de extensie van het “txt” wilt veranderen in “lsp”. In sommige gevallen wordt er gevraagd om te bevestigen dat deze handeling met administrator-machtigingen uitgevoerd dient te worden.
30 juni 2014
Tekeningenbeheer Gebouwen
Pagina 2/12
Open vervolgens het bestand om de applicatie te kunnen configureren. Om tekst aan dit bestand te kunnen voegen, open het bestand met kladblok (notepad).
Voeg nu de regel toe waarin wordt vastgelegd welk commando geladen wordt bij het laden van de acad.lsp-bestand. De constructie van het commando is als volgt: (command “_NETLOAD” “xxx”) Vul ter plaatsen van de drie x’en de locatie van de applicatie in. Gebruik in plaats van een enkel terugliggend schuin streepje, twee terugliggende streepjes. Sla tot slot het bestand op. Voorbeeld: (command "_NETLOAD" "E:\\Radboudumc\\Werkmap\\Programmeren\\Tekeningenbeheer 2014\\Tekeningenbeheer\\bin\\Debug\\Tekeningenbeheer.dll")
30 juni 2014
Tekeningenbeheer Gebouwen
Pagina 3/12
1.3
Support file search path
Wanneer de applicatie geconfigureerd is, wordt deze automatisch geladen bij het opstarten van AutoCAD. Omdat AutoCAD niet over de intelligentie beschikt om schadelijke software te herkennen, wordt, zonder de benodigde instellingen, een venster weergegeven:
Wanneer de applicatie betrouwbaar is, klik op “Load” om deze definitief in te laden voor de huidige AutoCAD-sessie. Om te voorkomen dat deze beveiligingswaarschuwing elke sessie terugkeert, voeg de locatie van toe aan de verzameling van support file search path. Om de locatie toe te voegen, ga eerst naar het venster “options”. Om dit venster te openen, gebruik het commando “options”. Selecteer het tabblad “Files”. Klik op “Add…” om een nieuwe locatie toe te voegen. Klik op “Browse…” en selecteer het gewenste pad. Klik op “OK”.
30 juni 2014
Tekeningenbeheer Gebouwen
Pagina 4/12
Het venster “Options” wordt weer actief. Klik vervolgens weer op “OK” om de locatie definitief toe te voegen.
30 juni 2014
Tekeningenbeheer Gebouwen
Pagina 5/12
2
INPUT – XML
2.1
Voorbereiding
Voordat de applicatie gebruik kan maken van een XML dient de locatie hiervan bekend te zijn binnen de applicatie. De locatie staat gedefinieerd in de Module “Start”. 2.2
Variabelen in applicatie -
Stempellocatie
-
Stempelnaam
-
Back-ups-locatie
-
Handleidinglocatie
-
Kluislocatie
2.2.1
Stempellocatie
De stempellocatie is de locatie waaruit de applicatie het nieuw in te voegen stempel uit ophaalt. 2.2.2
Stempelnaam
De stempelnaam is de naam van de blokdefinitie die wordt opgehaald uit de eerder opgegeven tekening. Het stempel dient dus als blokdefinitie aanwezig te zijn in een dwg-bestand. Het is niet mogelijk te verwijzen naar een tekening dat is weggeschreven als wblock omdat een blokdefinitie hierin ontbreekt. 2.2.3
Backs‐ups‐locatie
De back-ups-locatie is de verwijzing naar de map waarin de back-ups van de gegevens van tekeningen worden opgeslagen. In deze map wordt per back-up een nieuwe map aangemaakt met bijhorende naamgeving. 2.2.4
Handleidinglocatie
De handleidinglocatie is de locatie van de handleiding. Deze handleiding is opgeslagen als pdfbestand. 2.2.5
Kluislocatie
Kluislocatie is een tabel bestaande uit een kolom. Per regel wordt een locatie opgegeven van de verschillende te gebruiken kluizen. Let op: de namen van deze kluizen moeten uniek zijn anders kan er geen onderscheidt gemaakt worden. Voorbeeld: F:\Radboudumc\Test\Test conform database Er mag dus maar een kluis opgegeven worden met de naam, als zijnde het topniveau van het pad, met de naam “Test conform database”. 30 juni 2014
Tekeningenbeheer Gebouwen
Pagina 6/12
2.3
Variabelen aanpassen
2.3.1
Excel & XML
In de module “Start” van de programmeercode wordt verwezen naar een XML-bestand waaruit de applicatie verschillende variabelen ophaalt. Dit XML-bestand is een export van een Excelbestand. Deze structuur is gekozen om het aanpassen van de waarden van alle variabelen zo eenvoudig mogelijk te maken. In het gebruik van de applicatie wordt er onderscheidt gemaakt in drie niveaus: ‐ ‐ ‐
De eindgebruiker De systeembeheerder De ontwikkelaar
Kort samengevat wordt er aan ieder niveau een bijhorend kennisniveau toegekend. Zo is er de eindgebruiker met een middelmatige kennis van AutoCAD die alleen dient te weten hoe de applicatie wordt toegepast, de systeembeheerder met een gevorderd kennisniveau, en de ontwikkelaar die over uitgebreide kennis beschikt over de sourcecode achterliggend aan het gebruik van de applicatie. Aangenomen wordt dat een systeembeheerder over voldoende kennis beschikt om de variabelen in het Excel-bestand te kunnen beheren . 2.3.2
Structuur
Om de gegevens uit een Excel-bestand te kunnen exporteren naar een bestand in XML-formaat, dient Excel eerst te beschikken over de gewenste eindstructuur van het XML-bestand. Hieronder wordt dit weergegeven:
<StempelLocatie>C:\Stempellocatie <StempelNaam>Stempel C:\Back-ups C:\Database C:\Handleiding C:\Kluis1 C:\Kluis2
Om deze structuur in Excel te krijgen, dient deze eerst te worden vastgelegd in een schema. Dit kan in een XML- of XSD-bestand. De meest eenvoudige methode om een van beide bestanden aan te maken, is om eerst een txt-bestand aan te maken. In dit bestand wordt de gewenste structuur vastgelegd. 30 juni 2014
Tekeningenbeheer Gebouwen
Pagina 7/12
Sla het bestand vervolgens op en verander tot slot de extensie van het bestand van “txt” naar bijvoorbeeld “xml”. Voor dit project is reeds een schema aanwezig. Om het schema toe te kennen selecteert u allereerst in Excel het tabblad “Ontwikkelaars”. Indien dit tabblad niet zichtbaar is, klik op de Microsoft Office-knop
en klik vervolgens op “Opties voor Excel”.
Een venster verschijnt waarin de verschillende opties van Excel gewijzigd kunnen worden. Klik links in het venster op “Populair”. Schakel vervolgens het selectievakje “Tabblad Ontwikkelaars op het lint weergeven” in. Sluit het venster af door op “OK” te klikken.
Klik op de knop “Bron” op het tabblad “Ontwikkelaars”.
30 juni 2014
Tekeningenbeheer Gebouwen
Pagina 8/12
Een nieuw venster verschijnt waarin alle XML verwijzingen worden beheert. Om een nieuwe XML-toewijzing toe te voegen klik “XML-toewijzingen…”.
Een venster verschijnt met hierin alle toegewezen schema’s. Bij het eerste gebruik is dit venster leeg. Klik op “Toevoegen…”.
30 juni 2014
Tekeningenbeheer Gebouwen
Pagina 9/12
Navigeer door de bestanden van uw computer en selecteer het gewenste XML-/XSD-schema. Klik vervolgens op “Openen”. In sommige gevallen verschijnt er een dialoog dat het geselecteerde bestand geen schema bevat (wat wel het geval is bij een XSD-bestand). Er wordt gebruik gemaakt van de XML-brongegevens. Ga hiermee akkoord door op “OK” te klikken.
Het schema is gekoppeld aan het Excel bestand. Selecteer het en klik op “OK”.
30 juni 2014
Tekeningenbeheer Gebouwen
Pagina 10/12
De structuur van het schema wordt uitgelezen en weergegeven in venster “XML-bron”.
Om de koppeling met het schema te voltooien selecteer de gewenste parameter in het venster “XML-bron” en sleep deze naar de cel waarin de waarde van deze parameter zich bevindt. Voor de kolom “Kluislocatie” dient eerst een tabel aangemaakt te worden in Excel.
Om dit te doen maak eerst het tabblad “Invoegen” actief. Klik vervolgens op “Tabel”. Een venster verschijnt waarin u het bereik opgeeft van de aan te maken tabel. Nadat de tabel is aangemaakt, sleep de parameter “Kluislocatie” naar de kop van de kolom. Dit is dus de cel boven de eerste regel die een waarde bevat van de kolom. Wanneer een parameter succesvol is gekoppeld, wordt deze dik weergegeven in het venster “XML-bron”.
30 juni 2014
Tekeningenbeheer Gebouwen
Pagina 11/12
2.3.3
Export
Nadat alle koppelingen juist zijn geconfigureerd, is Excel in staat de gegevens te exporteren naar een XML-bestand. Om een XML-bestand te genereren selecteer het tabblad “Ontwikkelaars”. Klik vervolgens op “Exporteren”.
Geef de locatie en naam op van het nieuwe XML-bestand. Het is ook mogelijk een bestaand bestand te overschrijven. Dit laatste is het geval bij het toepassen van deze applicatie. Klik tot slot op “Exporteren”.
2.4
Relatie applicatie & XML
De manier waarop de code de gegegevens uit het XML verwerkt, vindt plaats middels het vertalen van de gegevens naar een klasse. De klasse, zoals deze gedefinieerd is in de code, is een samenstelling van eigenschappen die qua structuur volledig identiek dient te zijn aan de structuur van het XML. De verdere uitwerking van deze vertaalslag, is terug te vinden in de code. 30 juni 2014
Tekeningenbeheer Gebouwen
Pagina 12/12