Kapcsolatok és kölcsönhatások számítógéppel készített építészeti tervek elemei között, a hagyományos CAAD adatszerkezet bővítésével Kovács András
1. ELŐZMÉNYEK................................................................................................................................................................... 2 1.1. A SZÁMÍTÓGÉPPEL SEGÍTETT ÉPÍTÉSZETI TERVEZÉS FEJLŐDÉSE .......................................................................................... 2 1.2. KÉNYSZERELVŰ RENDSZEREK ........................................................................................................................................... 2 1.3. A HAGYOMÁNYOS CAAD ADATSZERKEZET KITERJESZTÉSE............................................................................................... 3 2. A GEOMETRIAI ADATBÁZISOK ELEMEI KÖZTI KAPCSLATOK ÉS KÖLCSÖNHATÁSOK ......................... 3 2.1. HAGYOMÁNYOS CAAD ADATSZERKEZETEK ..................................................................................................................... 3 2.2. KÉNYSZEREK .................................................................................................................................................................... 3 2.3. KAPCSOLATOK HAGYOMÁNYOS CAAD TERVELEMEK KÖZÖTT .......................................................................................... 4 3. CAAD ELEMEK JELLEMZŐINEK ÖSSZEKAPCSOLÁSA (PROPERTY LINK MODEL).................................... 4 3.1. HIVATKOZÁSOK CAAD ELEMEK JELLEMZŐIRE.................................................................................................................. 4 3.2. SZÁRMAZTATOTT JELLEMZŐK ........................................................................................................................................... 5 3.2.1. Alternatív adatszerkezetek ........................................................................................................................................ 6 3.2.2. Függőségi viszonyok................................................................................................................................................. 6 3.2.3. Értékadás.................................................................................................................................................................. 6 3.2.4. Csak olvasható jellemzők.......................................................................................................................................... 6 3.2.5. Tárgy-koordinátarendszer (OCS) ............................................................................................................................. 7 3.3. VÁLTOZÁSOK ALKALMAZÁSA ........................................................................................................................................... 7 3.3.1. Nem kölcsönösen függő jellemzők ............................................................................................................................ 7 3.3.2. Visszatérő hivatkozások............................................................................................................................................ 8 3.3.3. Előztetes bejárás....................................................................................................................................................... 8 3.3.4. A módosítási ciklust követő eljárások ....................................................................................................................... 9 3.3.5. Ideiglenes állapotok kezelése.................................................................................................................................... 9 3.4. KÉTIRÁNYÚ KAPCSOLAT NUMERIKUS ADATBÁZISOKKAL ................................................................................................... 9 4. ALKALMAZÁSI LEHETŐSÉGEK .................................................................................................................................. 9 5. IRODALOM....................................................................................................................................................................... 10
1
A dolgozat a CAAD elemek közti kapcsolatokat és kölcsönhatásokat vizsgálja, a számítógéppel segített építészeti tervezés, és ezen belül a kényszerelvű rendszerek fejlődését áttekintve. Bemutat egy olyan rendszert, amely a hagyományos CAAD adatszerkezet kibővítésével biztosítja az építészeti tervelemek kapcsolatának kezelését. A modellben bevezetésre kerülnek a származtatott jellemzők, amelyek az objektumok magasszintű leírását teszik lehetővé. A származtatott jellemzők hivatkozásokkal kapcsolhatók egymáshoz.
A fejlődési folyamat minden lépésében a szoftver a tervről egyre több információval rendelkezik. Adatok újabb fajtájával bővíthetjük a szoftver látóterét és ezáltal a vele elvégeztethető feladatok körét, ha a tervet alkotó elemek közötti összefüggések tárolására és kezelésére is felkészítjük. A ma használt szoftverek a geometriai információk kapcsolásának szempontjából két csoportra oszthatók. Az első csoportba tartozik az építész programok nagy többsége: néhány speciális esetet kivéve nem támogatják ezt a lehetőséget. Az ilyen programokban az információk összekapcsolása túlnyomórészt relációs adatbázisok formájában valósul meg (vonaltípusok, kitöltések, anyagjellemzők, könyvtári elemek, blokkok, relatív magasságok, falnyílások), de néhány speciális esetben találkozhatunk egyenrangú adatmezők valódi kapcsolásával is (méretezések, asszociatív kitöltések (AutoCAD), cellák relatív elhelyezése (MicroStation)), illetve frissítő algoritmus segítségével kapcsolt információkkal (helyiségkontúrok (ArchiCAD)). A másik csoportot azok a programok alkotják, amelyek a probléma általános megoldására törekszenek. Ezek közül kiemelhetők az eljáráselvű1 és a kényszerelvű CAD szoftverek, közös jellemzőjük, hogy szoftver egész felépítése ennek a kérdéskörnek van alárendelve.
A modell lehetőségeit a felhasználó közvetlenül nem éri el, csak a beépített eszközök, kiegészítők vagy geometriai leíró nyelveken keresztül: pl. egy speciális építési rendszer támogatására hivatkozásM-en alapuló kiegészítőket vagy elemkönyvtárakat lehet kidolgozni.
1. ELŐZMÉNYEK 1.1. A számítógéppel segített építészeti tervezés fejlődése A kézi rajztechnika a számítógéppel segített tervezés megjelenésekor a gyakorlatban előforduló szerkesztési problémák túlnyomó részére már kínált valamilyen megoldást. Ezzel az eszközkészlettel a CAD programok még sokáig nem versenyezhettek, mégis több területen szolgáltak már a kezdetekkor jelentős előnyökkel (az ábrázolás pontossága; módosíthatóság, adatcsere). A technikai fejlődéssel párhuzamosan, az új lehetőségek hatására elindult az építészeti tervezés munkamódszereinek fejlődése is.
1.2. Kényszerelvű rendszerek Kényszerelvű CAD rendszereket a tudományos életben és a piacon egyaránt találunk: speciálisan építészeti alkalmazás a Revit, a MicroStation a Dimension Driven Design kiegészítővel általános kényszerelvű CAD. Geometriai kényszerelvű CAD rendszer a Cabri Géometre és a SketchPad. Kísérleti alkalmazásokra példa: Interactive 2D ConstraintBased Geometric Construction System2
A hagyományos rajz elemei önmagukban csak saját geometriai és rajztechnikai adataikat tartalmazzák, ezekhez az információkhoz adódnak a terv értelmezésekor azok, amelyek rajzot építészeti tervvé teszik. Az első CAD szoftverek továbbra is az építészre bízták ezeknek a plusz információk kezelését, legfeljebb a szerkesztőeljárások automatizálásában nyújtottak némi többlettámogatást, az építészeti tervezés munkamódszere lényegben nem változott. A harmadik dimenzió bevezetése jelenti az első komoly és szándékos elszakadást a kézi ábrázolástól. A háromdimenziós virtuális modell és több összetartozó kétdimenziós rajz között az az alapvető különbség, hogy előbbi esetben a szoftver birtokában vannak azok az információk, amelyekkel a különböző nézetekben megjelenő vonalakat egymáshoz rendelheti, míg az utóbbi esetben ezekkel csak a tervező rendelkezik. Így aki térbeli modellel dolgozik, a programra bízhat olyan műveleteket, amelyhez a fenti információk szükségesek, ellenkező esetben azokat manuálisan kell elvégeznie. Azzal, hogy a számítógéppel készített rajz nem rajzi jellegű adatokkal egészült ki, újabb információk kerültek a CAAD program ellenőrzése alá, ezáltal azok újabb rutinszerű feladatok átvállalására lettek képesek.
A kényszerelvű rendszerek más mérnöki szakterületeken (pl. gépészet) már általánosan elfogadottak, az építészeti tervezés területén azonban eddig még nem nyertek teret. Ennek legfőbb oka, hogy egy ilyen rendszer akkor hatékony, ha a tervezés jól meghatározott és állandó szabályrendszer szerint történik, a közös szabályrendszer a közös nevező a terv lehetséges variációi között. Az építészeti tervezés (főleg esztétikai és koncepcionális vonatkozásában) nem ilyen: a szabályok gyakorlatilag megfoghatatlanok
1
Az eljáráselvű rendszerek, grafikus leíró programnyelvek rajztechnikája alapvetően más, mint az eddig tárgyalt programoké ill. a hagyományos technikáé: alkalmas kisebb problémák parametrikus megoldására, de összetettebb feladat esetén nem hatékony, ezért nem is találkozhatunk komplett építészeti alkalmazásával, inkább hagyományos adatmodellen alapuló programok kiegészítőjeként, részfeladatok megoldására használják (GDL, AutoLisp). 2
2
Medjdoub, 1999.
és rendkívül szerteágazók. A terv lehetséges variációi között gyakran pont az alkalmazott szabályrendszer a leglényegesebb különbség: a kényszerelvű rendszerek szempontjából nincs közös a modell ilyen változataiban.
minden problémát az új rendszerben megoldani. A részleges kompatibilitás és az adatcsere a többi CAD szoftverrel így könnyebben elérhető, a rendszer versenyképessé tételéhez a fejlesztőknek nem kell több évtizedes lemaradást pótolniuk.
A kényszerelvű modell hatékony alkalmazásának feltétele, hogy a modell felépítésekor az egyes elemek közti viszonyrendszert a tervezés során figyelembeveendő valós szempontok szerint alakítsuk ki. Az építész a tervezés folyamatában minden ilyen ok-okozati összefüggésnek nincs feltétlen tudatában, a jól képzett tervező problémamegoldó képességeinek egy jelentős része a gyakorlottságon alapuló kognitív szinten működik és heurisztikus jellegű3. Az egyszerre tudatosan figyelembe vehető döntési szempontok száma összefüggést mutat a rövid távú memória kapacitásával is (7±2 kognitív séma). Így a tervező csak jelentős plusz mentális erőfeszítéssel vagy egyáltalán nem képes komplex döntéseinek okait szabályok formájában megfogalmazni.
A standard CAAD adatszerkezet kiegészítése úgy került kialakításra, hogy 100%-ban kompatibilis legyen az építőipar területén egyre nagyobb tért hódító IFC szabvánnyal4.
Mivel az építészeti tervezés minden egyes lépése rendkívül szerteágazó szempontrendszer alapján kerül végrehajtásra, a kényszerelvű modell ilyen módon való felépítése nem látszik célszerűnek, a befektetett munka megtérülése csak periférikus területeken (pl. típustervek) várható.
A ma használt hagyományos adatszerkezetek nem biztosítanak általános megoldást a geometriai adatok összekapcsolására, hivatkozások alkalmazására és a változások követésére csak néhány speciális esetben van lehetőség: az asszociatív méretezések és kitöltések pl. követik a geometriájukat meghatározó CAAD elemek elmozdulását. Hasonlóképpen az ArchiCAD helyiségkontúrjai a helyiséget körülvevő falakhoz kapcsolhatók, PlotMakerben elhelyezett rajzok pedig egy ArchiCAD terv egy-egy szintjéhez, ezekben az esetekben változások érvényesítéséhez szükséges egy – a felhasználó által kezdeményezett – frissítő algoritmus is.
2. A GEOMETRIAI ADATBÁZISOK ELEMEI KÖZTI KAPCSLATOK ÉS KÖLCSÖNHATÁSOK 2.1. Hagyományos CAAD adatszerkezetek
A kényszerelvű rendszernek a terv bővítésekor ill. módosításakor a megismert összefüggések alapján tervezési problémákat kell megoldania. Az építészeti tervezés során definiálhatatlan problématér és az ellenőrzési kritériumok hiánya miatt a rendszer ennek a kihívásnak nem tud megfelelni, az általános építészeti tervezés területén a kényszerelvű rendszerek nem hatékonyak. Létjogosultságuk lehet viszont olyan részterületeken, ahol a tervezés meghatározott szabályrendszer szerint zajlik, és megfelelő ellenőrzési kritériumok állnak rendelkezésre.
2.2. Kényszerek Az általános terminológia szerint a kényszerelvű rendszerek kényszere CAAD elemek létrehozandó vagy fenntartandó geometriai viszonyát jelenti, a szoftver feladata ezen viszonyok által meghatározott célállapot elérése ill. fenntartása. A kényszermegoldó algoritmusok az adott kényszereknek megfelelő állapotot, mint egy sokismeretlenes geometriai egyenletrendszert számítják ki, általában iteratív algoritmusok segítségével.
1.3. A hagyományos CAAD adatszerkezet kiterjesztése A most bemutatásra kerülő rendszer a hagyományos CAAD adatstruktúra kiterjesztése, a hagyományos CAAD szoftverek sokoldalúságát és megbízhatóságát ötvözi a kényszerelvű rendszerek „intelligenciájával".
Határozott (well-constrained5) esetekben pont annyi kényszert alkalmazunk, hogy a geometriai problémának egy (vagy több, de mindenképp véges számú) megoldása legyen, ez a megközelítés
A hagyományos CAAD adatstruktúrához való illesztésnek számos előnye van. Elérhető a hagyományos munkamódszerekkel való teljes kompatibilitás: mivel a kényszerelvű rendszerek csak a számítógéppel segített tervezés bizonyos részterületein hatékonyabbak, a felhasználónak csak akkor kell használnia a rendszer adta lehetőségeket, amikor azokra valóban szükség van, nem kényszerül
3
4
A később bemutatásra kerülő Property Linkek leírhatók az IfcRelationShip osztállyal. Az egyes derived properties-re való hivatkozások a fenti osztályt kibővítő Property Tableben elhelyezhetők.
5
Rasmussen, 1983.
3
Medjdoub 1999.
geometriai egyenletrendszerek, szerkesztési feladatok megoldására alkalmas. Határozatlan (under constrained) esetekben a kényszerek az elemek bizonyos szabadsági fokának megtartása mellett a módosítások megfelelő végrehajtásáért felelősek. Egy CAAD terv feldolgozása során egy kényszerelvű rendszer nagyrészt határozatlan modellekkel dolgozik.
bármely hagyományos adatszerkezetre épülő CAAD rendszerbe integrálható6. A kényszerelvű rendszerek direkt alkalmazásának problémáit az általános építészeti tervezés területén az első fejezetben már tárgyaltuk. A felhasználói felület kidolgozásakor ugyanezekbe a problémákba ütközünk: a jellemzőkre való hivatkozások manuális bevitele és kezelése a modellbe bevitt plusz információkat, többlet munkabefektetést igényel. A modell alacsonyszintű geometriai adatbázis-kezelő rendszerként került kidolgozásra: a felhasználó a rendszer lehetőségeit közvetlenül nem éri el, csak a beépített eszközökön vagy kiegészítőkön keresztül, a geometriai leíró nyelvek (pl. Graphisoft GDL) is kiegészíthetők a CAAD elemek közti kapcsolatok kezelésére alkalmas funkciókkal.
A kényszerelvű rendszerekben a kényszerek érvényesítését a kényszer-megoldó eljárások (constraint solver) biztosítják, ezek működéséhez kell igazítani a szoftver adatszerkezetét. A kényszer-megoldó eljárások nagy elemszám és komplex kapcsolatrendszer mellett nem hatékonyak, a célállapot meghatározása sok időt és erőforrást igényel, az ideiglenes állapotok és hibák kezelését sem tudják megfelelő szinten biztosítani.
3.1. Hivatkozások CAAD elemek jellemzőire
2.3. Kapcsolatok hagyományos CAAD tervelemek között
A CAAD elemek jellemzői hivatkozások segítségével kapcsolhatók egymáshoz. A hivatkozások irányítottak: minden hivatkozásnak van legalább egy bázis- és egy céljellemzője. A hivatkozást megvalósító objektum a fentieken kívül a módosításokhoz szükséges egyéb adatokat is tárolhat.
A dolgozatban bemutatásra kerülő modell a hagyományos CAAD rendszerekben már egyes speciális esetekben meglevő mechanizmus általános megoldását adja. A modell a hagyományos CAAD adatszerkezeten alapul. A terv egyes részei között meghatározott viszonyok fenntartására hivatkozások szolgálnak, amelyek CAAD elemek egyes jellemzőit kötik össze. A jellemzőket összekötő hivatkozások az egyszerű értékmásolástól a komplex geometriai transzformációkig sokféleképpen működhetnek. A hivatkozásoknak a kényszerelvű rendszerek kényszereihez hasonló szerepe van, felépítésük és működésük azonban eltér azokétól. A hivatkozások a CAAD terv önállóan működő elemei, amelyeknek feladata a CAAD objektumok egyes jellemzői közötti kapcsolattartás. A jellemzőkre való hivatkozások a táblázatkezelő szoftverek hivatkozásaihoz hasonlóan működnek: a CAD terv ill. a táblázat elemeiből származó adatokat felhasználva határozzák meg a terv ill. a táblázat más elemeinek bizonyos tulajdonságait. Ebben a rendszerben nincs szükség külön kényszer-megoldó eljárásokra: a hivatkozások érvényesítését a megváltoztatott rajzi elemek kezdeményezik, az összefüggések érvényesítését maguk a hivatkozások végzik el. Az érvényesítési folyamat egy fastruktúra bejárásával történik.
6
A rendszer lehetõségeinek bemutatására szolgáló példaprogram a www.arch.bme.hu/publikaciok címen érhtő el. A program kizárólag demonstrációs céllal készült, a felhasználói felület kialakítása csak a rendszer működésének a bemutatását szolgálja.
3. CAAD ELEMEK JELLEMZŐINEK ÖSSZEKAPCSOLÁSA (PROPERTY LINK MODEL) A bemutatásra kerülő rendszer lehetővé teszik CAAD objektumok jellemzőinek összekapcsolását és
4
Object
3.2. Származtatott jellemzők
Object base
Property
Property
A hagyományos CAAD adatszerkezet a következőképpen írható le: a terv elemekből áll, amelyek geometriai és egyéb típusú adatmezőket tartalmaznak.
Property
Property
Az
Property
Property
Object
Property
Property target
Property
rendszerben
bevezetésre
kerülnek
a
magasszintű leírását teszik lehetővé. Egy származtatott jellemző az elem egy tulajdonságát jeleníti meg, amelyet egy vagy több adatmező határoz meg. Minden egyes adatmezőhöz tartozik egy származtatott jellemző, ezeken kívül komplex, több adatmező által meghatározott származtatott jellemzőket is használhatunk.
Object
Property
új
származtatott jellemzők, amelyek a CAAD elemek
Property Property
A szoftver felépítése szempontjából a hivatkozások olyan OOP objektumok, amelyek adatmezővel nem, csak tagfüggvényekkel rendelkezőnek, ezek segítségével az adott jellemző értéke a CAAD elem megfelelő adatmezői alapján számítható ill. módosítható. A származtatott jellemzők fajtáinak növekedése nem növeli a CAD terv tárolására felhasznált memóriát, a programkód növekedésén kívül semmilyen teljesítményv. sebességcsökkenést nem okoz.
Egy hivatkozás lehet direkt vagy indirekt, a bázis jellemző értékének ill. megváltozásának megfelelően módosíthatja a céljellemző értékét. Direkt hivatkozás használata esetén a céljellemző új értéke kizárólag a bázis jellemzők értékétől függ, az indirekt hivatkozások a céljellemzők meghatározásakor a jellemzők régi értékeit is figyelembe veszik7.
Ebben a rendszerben a hivatkozások származtatott jellemzőkre vonatkozhatnak, a felhasználó által kezdeményezett módosítások is ezeken keresztül alkalmazhatók. Néhány egyszerű hivatkozástípus és származtatott jellemző bevezetésével a rendszer rendkívül flexibilissé válik, CAAD elemek sokféle kapcsolata hozható létre. Egy CAAD objektumhoz definiált jellemzők rendszere független az elem fizikai adattárolásának módjától, a konkrét adatmezőktől8. Ez egyrészt biztosítja a modell szoftverfüggetlenségét, másrészt egy szabványosított jellemzőrendszer segítségével
7
A példaprogramban implementált hivatkozások: a Value
b'
Copy–val bármely két azonos típusú jellemzőt, egy bázis és
egy céljellemzőt lehet összekapcsolni. Alkalmazásakor a bázisjellemző értékét a céljellemzőbe másolja. A Line Connect hivatkozás két egyenes szakasz végpontjainak összekapcsolására szolgál, az egyeneseik megtartásával, a Polygon Clip egy egyenes szakasz végpontjait egy adott poligon kerületére helyezi. A Summarize bázisjellemzői numerikus adatok lehetnek: a hivatkozás ezeket összeadja, a céljellemző értéke az összeggel lesz egyenlő.
t'
Egész, valós: c' = c - b + b'
•
Pont: c' = c - b + b'
•
Irány (3x3 mátrix): C' = B-1 B' C
•
Koordinátarendszer (egy irány és egy ponc): C' = B-1 B' C c' = B-1 B' (c - b) + b'
B
b t B
A példaprogram egyetlen indirekt hivatkozása (Simple link) egy bázis-transzformációt hajt végre. Az adott típustól függőean a számítások a következők: (c – cél; b – bázis; X’ – az X új értéke): •
B'
B'
B' b
T
B b'
t
T' t'
8
Az egyes származtatott jellemzők értékét meghatározó és módosító függvényeket kell a szoftver által alkalmazott adatmezők rendszeréhez igazítani.
5
kompatibilissé rendszereket.
tehetünk
különböző
CAD
„A” jellemzőt akkor kell „B”-től függő jellemzőként definiálni, ha „B” változtatásakor azt várjuk el, hogy az „A”-hoz kötött linkek is érvényesüljenek9.
3.2.1. Alternatív adatszerkezetek
Két jellemző függőségi viszonya nem feltétlenül kölcsönös. A rajzi elem egészére vonatkozó jellemzők10 nem függnek semelyik másik jellemzőtől sem, de függ ezektől a rajzi elem minden azonos jellegű jellemzője. Ha egy jellemző kötött, a tőle kölcsönösen függő jellemzőket már nem lehet újabb kényszerekhez kötni. Ha azonban „A” kötött jellemzőtől függ „B”, de „B”-től nem függ „A”, mindkét kényszer egyértelműen érvényesíthető, ezért ilyen esetben „B” is köthető.
A származtatott jellemzők bevezetését többek között az a probléma indokolta, hogy ha egyszerűen a fizikai adatmezőket kapcsolunk össze, az olyan esetek megoldását teszi lehetetlenné, amelyek geometriailag egyáltalán nem problematikusak.
3.2.3. Értékadás
Structure #1
Structure #2
Point A Point B
Straight
A származtatott jellemzőknek a következőképpen lehet új értéket adni. Először a CAAD elem adatmezőinek segítségével kiszámítjuk az adott jellemző értékét, valamint eltároljuk azokat az adatokat, amelyek segítségével az adott jellemzőből a megfelelő adatmezők értéke számítható. Az adott jellemző módosított értékének és a számított kiegészítő adatok segítségével meghatározzuk a megfelelő adatmező új értékét.11
unity vector with direction AB distance OE
End of line by point A
3.2.4. Csak olvasható jellemzők
distance EA
Csak olvasható jellemzőt olyankor lehet alkalmazni, ha az adott jellemzőhöz kívánunk kapcsolni másokat, de az adott jellemző direkt módosítását a rajzi elem nem tudná egyértelműen követni.
End of line by point B distance EB
Egy egyenes szakasz végpontjait két adatmező írja le (síkban 2-2 koordináta: 2-2 adat). Először a szakasz két végpontját két különböző rajzi elemhez kapcsoljuk: egy-egy kapcsolat egy-egy végpontra van hatással, ez a probléma megoldható az adatmezők összekapcsolásával. Másodszor alkalmazzuk a következő megkötéseket: a szakasz legyen párhuzamos egy adott egyenessel (távolságuk legyen egy adott érték), két végpontját pedig egyenesének két másik egyenessel való metszéspontja határozza meg. A párhuzamosság érvényesítésekor szükség van mindkét végpont, mindkét adatmező befolyásolására, tehát a két végpontot másik elemekhez már nem köthetjük.
Kimutatás jellegű jellemzőket rendelhetünk rajzi elemekhez (pl. kerület, terület), ezeket geometriai formában vagy numerikus adatként is felhasználhatjuk. Bizonyos geometriai jellemzők (pl. síkidom súlypontja) elvileg mindig számíthatók, de ezek változtatása szintén nem ad egyértelmű eredményt a rajzi elem többi jellemzőjére nézve.
9
A példaprogramban szereplő egyenes szakasz jellemzőinek függőségi viszonyai: - OCS: Origo, Direction - Origo, Direction: OCS - ID, Color, Layer: nothing - PointA: OCS, Origo, Direction, Slope, LineEndA - PointB: OCS, Origo, Direction, Slope, LineEndB - Slope: OCS, Origo, Direction, PointA, PointB - LineEndA, LineEndB: OCS, Origo, Direction, PointA, PointB, Slope - Length: OCS, Origo, Direction, PointA, PointB, Slope, LineEndA, LineEndB
Megoldható lenne a probléma, ha az egyenes szakasz adatait a program „az egyenes egyenlete (2 adat) és a rajta elhelyezkedő két végpont (1-1 adat)” formában tárolná: az egyenest és a végpontokat különböző kapcsolatokkal lehetne kötni. Ekkor azonban a két végpont független kezelését nem lehetne elérni. A származtatott jellemzők alapvetően ennek a problémának a feloldását szolgálják: külön kell kezelni a geometriai adatok tárolását és a kapcsolódási viszonyokat.
10 11
Lásd a Tárgy-koordinátarendszer c. fejezetet
Pl. ha egy egyenes szakaszt szeretnénk párhuzamosan eltolni, a szakaszt tartalmazó egyenest reprezentáló jellemzőt kell módosítani. Módosítás előtt ell kell tárolni a szakasz végpontjainak helyzetét az egyenesen. Ezeknek az adatokból és az egyenest reprezentáló jellemző új értékéből számíthatók a CAAD rendszer által használt adatmezők: a szakasz végpontjainak koordinátái.
3.2.2. Függőségi viszonyok Egy-egy származtatott jellemző meghatározásához a CAAD elem több adatmezőjére is szükség lehet. Ha több jellemző is hivatkozik egy adatmezőre, ezeket a jellemzőket nem lehet függetlenül kezelni. A CAAD elemek jellemzőinek kidolgozásakor a jellemzők függőségi viszonyait pontosan meg kell határozni.
6
3.2.5. Tárgy-koordinátarendszer (OCS)
alapján, ekkor az egyértelmű meghatározáshoz a dimenziószámnál eggyel nagyobb számú pont szükséges12.
A OCS egy rajzi elemhez kapcsolt vonatkoztatási rendszer. Ha pl. egy CAAD elem helyzetét szeretnénk módosítani vagy egy másik elemhez kötni, az OCS jellemzőjét kell kapcsolni. Az OCS jellemző változtatása a rajzi elemre, mint egységes egészre elvégzett egybevágósági transzformációt eredményez. Egy elem minden egyes pontjának ill. az OCS jellemzőnek az eltolása nem ekvivalens: mivel minden geometriai jellemző függ az OCS-től, de az nem függ egyik ilyen jellemzőtől sem, ha az OCS egy bázisa egy hivatkozásnak, a hivatkozás nem érvényesül, ha a pontokat egyesével toljuk el.
Ha az OCS a felhasználó számára is definiált ponthoz kötött, vagy egy külön erre a célra szolgáló adatmezőben van eltárolva, az OCS felbontható, hivatkozások alkalmazhatók pl. csak az elem irányultságára (az OCS koordinátatengelyeinek irányára).
3.3. Változások alkalmazása Ha a rendszer jelzi, hogy egy jellemző módosítását kezdeményező üzenet érkezett, és ez a jellemző bázisa egy hivatkozásnak, akkor megkezdődik az adott hivatkozás érvényesítése, aminek célja, hogy a céljellemzők a hivatkozás által meghatározott módon kövessék a bázis jellemző értékének módosulását. Az érvényesítés lépései a következők:
Mivel a származtatott jellemzők értéke minden módosítás előtt újra kiszámításra kerül, belátható, hogy az objektum OCS-ére végrehajtott egybevágósági transzformáció eredménye nem függ a jellemzők kezdeti értelmezésétől (az adatmezőkből való kiszámítás módjától). Ha pl. egy poligon sarokpontjai egyenrangúak, a OCS 0 pontját rögzíthetjük az egyértelmű feldolgozás érdekében pl. az egyes sorszámú sarokponthoz, ez az információ csak a program számára lesz elérhető, a felhasználó számára láthatatlan marad. Ha a poligont egy meghatározott pont körül elforgatjuk, a program a következő algoritmus szerint dolgozik: 1 – meghatározza az OCS jellemző értékét az előzetes megállapodás alapján (jelen esetben 0 = P1 stb.), 2 – az OCS által meghatározott koordinátarendszerben kiszámítja a poligont alkotó pontok helyzetét, 3 – végrehajtja a transzformációt az OCS jellemzőre, 4 – a 2. pontban kiszámított relatív adatok segítségével felépíti az elforgatott poligont az új koordinátarendszerben.
1.
Ha a hivatkozás indirekt, először eltárolja a bázis jellemzőinek eredeti értékéből képzett, számára szükséges adatokat.
2.
Ezután visszaadja a vezérlést a megváltoztatandó származtatott jellemzőnek, ami megfelelően módosul.
3.
Végül a hivatkozás meghatározza a céljellemzők új értékét, és kezdeményezi a céljellemzők módosítását. A céljellemzők értékének meghatározásánál az indirekt hivatkozások az eltárolt adatokat is figyelembe veszik, a direkt hivatkozások a műveletet csak a megváltozott jellemző új értékének segítségével végzik el.
Az érvényesítési eljárás kezdeményezése szempontjából minden olyan jellemző is módosítottnak minősül, amely függ az eredetileg megváltoztatott jellemzőtől, így az ezekhez kötött hivatkozások is érvényesülnek.
1. 2.
3.3.1. Nem kölcsönösen függő jellemzők Egy poligon jellemzői lehetnek az A pont és az OCS (tárgy-koordinátarendszer), ekkor OCS jellemzőtől függ A, de A-tól nem függ OCS, így mindkét jellemző lehet egy-egy hivatkozás céljellmzője. Az Ahoz rendelt hivatkozás érvényesítése során csak A módosul, OCS változatlan marad. Az OCS jellemzőhöz kapcsolt hivatkozás érvényesítésekor
3.
4.
12 A példaprogramban egyes elemek OCS-t reprezentáló jellemzői alulhatározottak: a síkbeli egyenes szakasz és a belőle származtatott elemek a két végpont alapján határozzák meg a saját teret, az XY síkra merőleges tükrözésre ezek az elemek nem reagálnak megfelelően. A probléma csak újabb adatmezők hozzáadásával oldható meg, ehhez azonban a befogadó CAD szoftver adatszerkezetét kell módosítani.
Látható, hogy a kapott poligon független az „előzetes megállapodástól”, tehát az OCS-t egyéb technológiai szempontok szerint szabadon értelmezhetjük, nincs feltétlen szükség az OCS jellemző megadására külön adatmezőt fenntartani. Az OCS megadására használhatjuk az elemek tetszőlegesen kiválasztott vagy a felhasználó számára is definiált adatait, esetleg külön erre a célra fenntartott adatmezőket is. A OCS-t meghatározhatjuk pl. a rajzi elem jellemző pontjai
7
azonban a fenti algoritmus szerint az OCS-hez rendelt hivatkozás szerint módosulna A és OCS jellemző is, és így az A-hoz rendelt hivatkozás hatástalan maradna, holott a modelltől elvárt viselkedés az, hogy A a hozzá rendelt hivatkozásnak megfelelően módosuljon.
1.
1. M
Property
Property Link
2.
2. A
Link
M
Link
M
Property
A
Property Link
3. M
Link
M
Property
Property Link
3.3.3. Előztetes bejárás A nem kölcsönösen függő virtuális jellemzők megfelelő viselkedése érdekében a fenti hivatkozás érvényesítő algoritmust az alábbiakkal kell kiegészíteni: •
A bázis jellemzők eltárolását a fenti A jellemzőhöz kapcsolt hivatkozás-re is el kell végezni.
•
Az OCS jellemző értékének megváltoztatása után A-nak új értéket kell adni a hozzá kötött hivatkozás alapján is. A fenti műveletek során megváltozott jellemzőkhöz kötött hivatkozásokat csak ezek után lehet érvényesíteni
Több bázissal rendelkező hivatkozásoknál előfordul, hogy mindkét bázis módosul egyetlen módosítási cikluson belül. A visszatérő hivatkozások megakadályozására hivatott eljárás ilyen esetben az első érvényesítésnél módosítottként megjelöli a céljellemzőt, így újabb hivatkozásérvényesítéskor a céljellemzőt már nem lehet megváltoztatni. Az ilyen hibalehetőségek kiküszöbölésének céljából minden módosítási ciklus előtt lezajlik a teljes ciklus előzetes bejárása. Az előzetes bejárás során a jellemzők ugyanúgy érvényesítési kérelmet küldenek a kapcsolt hivatkozásoknak, azok pedig módosítási kérelmet a céljellemzőknek, mint a módosítási ciklus tényleges végrehajtásakor, de a céljellemzők értékének tényleges módosítása elmarad. Ehelyett minden érintett hivatkozás eltárolja, hogy a ciklus során hányszor kapott érvényesítési kérelmet.
3.3.2. Visszatérő hivatkozások Ha a hivatkozások sorozata önmagába visszatérő zárt hurkot alkot, a rekurzív módosító algoritmus végtelen ciklusba kerül. Miután ilyen esetet nemcsak a hivatkozások hibás kapcsolása során, hanem létező geometriai viszonyok leképezéseként is létrejöhet, a rendszer hatékonyságát rontaná, ha a visszatérő hivatkozásoknak már a létrehozását sem engedélyeznénk.
Az előzetes bejárás után elkezdődik a módosítási ciklus végrehajtása. A hivatkozásoknak – az érvényesítési kérelmek számának ismeretében – így lehetőségük nyílik megvárni a ciklus rájuk vonatkozó utolsó érvényesítési kérelmét és csak ekkor módosítani a céljellemzőket. Az indirekt hivatkozások a bázis jellemzők eltárolását az első érvényesítési kérelem hatására végzik el.
Az egyik legegyszerűbb ilyen eset, amikor két jellemző kölcsönösen egymásra hivatkozik. Ebben a helyzetben a rendszertől elvárt viselkedés az, hogy mindkét jellemző kövesse a másik változását.
Property
A rendszer a következő megoldást kínálja a problémára: egy-egy módosítási ciklusban a már megváltoztatott jellemzőket a módosító algoritmus megjelöli, ha egy ilyen jellemző később egy hivatkozás kötött jellemzőjeként újra előfordul, akkor az a hivatkozás nem érvényesül.
1.
Property
1. mapping
2.
Link 2.
Property 1.
Property 2.
Link 2.
modification
8
M
Property
Property
3.3.4. A módosítási ciklust követő eljárások
3.4. Kétirányú kapcsolat numerikus adatbázisokkal
A módosítási ciklus tényleges végrehajtásakor az elemek és hivatkozások kapcsolatrendszere pontosan meg kell egyezzen az előzetes bejárás során feltérképezett szerkezettel. Emiatt a ciklus alatt csak olyan módosítások engedélyezettek, amelyek ezt a kapcsolatrendszert nem változtatják meg.
A hivatkozások segítségével közvetlen kapcsolatot tarthatunk fenn a geometriai modell és külső numerikus adatbázisok között, nemcsak adatokat nyerhetünk ki pl. kimutatások készítéséhez, hanem külső renszerekbők származó adatokat használhatunk fel közvetlenül. Szükség van egy interfész, az adatbázist reprezentáló CAAD objektum bevezetésére, ennek az objektumnak a származtatott jellemzői jelenítik meg az adatbázis rekordjait. Ezen jellemzőkhöz kapcsolt hivatkozások segítségével bármely CAAD objektum viselkedését befolyásolhatjuk.
A módosítási ciklus befejezése után nyílik lehetőség elemek és hivatkozások létrehozására, törlésére, esetleg új módosítási ciklus elindítására is; a ciklus végrehajtása során csak az elvégzendő változtatások kerülnek feljegyzésre.13 3.3.5. Ideiglenes állapotok kezelése A hivatkozásérvényesítés algoritmusában a hibaellenőrzés általában a származtatott jellemző módosításakor hajtódik végre. Ha a jellemző módosítása hibás geometriai helyzetet eredményezne, a jellemző nem változik meg, és azok a hivatkozások sem módosítják kötött jellemzőiket, amelyeknek ez a jellemző volt a bázisa. Ha egy hiba folytán az adott hivatkozás nem érvényesül, a bázis és kötött jellemzők kapcsolata megmarad. Így ha a bázis jellemző módosítása során ismét értelmezett állapot áll elő, akkor a hivatkozás újra módosítja az érintett jellemzőket.
4. ALKALMAZÁSI
Ha egy jellemző módosításakor hibás geometriai helyzet keletkezik, lehetőség van az adott elem érvénytelenítésére. Egy rajzi elemnek érvénytelenítő üzenetet küldhet hivatkozás és másik rajzi elem is, attól függően, hogy a hiba hol keletkezett14. Az érvénytelen elemeket a CAD rendszer elkülönítve kezeli. Az érvénytelen státus mindaddig fennáll, amíg újra értelmezhető geometriai helyzet nem keletkezik, és az üzenetet a küldő elem vissza nem vonja.
LEHETŐSÉGEK Minél több információt tartalmaz egy virtuális modell, annál több munkába kerül a létrehozása. A fejlesztés potenciális célterületein a nagy munkabefektetéssel és szaktudással előállított információgazdag modellt elég sokan kell használják ahhoz, hogy a befektetés megtérüljön. Egy ilyen terület a komplett építési rendszerek világa, ahol egy-egy rendszerben az épületszerkezetek összeépítése jól meghatározott geometriai szabályrendszer alapján történik. Egy komplett építési rendszer alkalmazásához az elektronikus gyártmánykatalógusok nem nyújtanak többet egymástól független elemek adatbázisánál. Ahhoz, hogy egy építési rendszer alkalmazásában egy CAAD program komoly segítséget tudjon nyújtani, integrálni kell az egyes termékek adatait és a rendszernek szintén szerves részét alkotó szerkesztési eljárásokat. A modell lehetőségeit kihasználva hatékony kiegészítők ill. elemkönyvtárak készíthetők egyes építési rendszerekhez.
13
Ha pl. a példaprogram sokszorozó elemét megnyújtva új kapcsolódási pont jön létre, a sokszorozó elem valamelyik kötött elem másolásával létrehoz egy új elemet, és ezt az új kapcsolódási ponthoz köti. A művelet során új hivatkozás-ek és elemek jönnek létre, a változtatások tehát nem végezhetők el a módosítási ciklus alatt, a sokszorozó elem ilyenkor csak jelzi, hogy a ciklus után végrehajtandó feladata maradt. Miután a módosítási ciklus véget ért, az elem visszakapja a vezérlést, létrehozza a hivatkozásokat és az elemeket, majd - ha az új elem valamelyik jellemzője céljellemzője egy direkt hivatkozásnak - új módosítási ciklust kezdeményez, amelyben érvényesíti a hivatkozást.
Az építési rendszert támogató CAAD kiegészítő vagy elemkönyvtár ajánlott szerkezete hierarchikus. A nagy egységektől a részletek felé haladva több részletezettségi szintet különböztetünk meg, ez megfelel az építészeti tervfeldogozás folyamatának. Az építési rendszer egy-egy eleme geometriai, technológiai, szerkezeti stb. adatai mellett tartalmazza azokat a szerkesztőeljárásokat, amelyek segítségével a következő részletezettségi szint elemei előállíthatók, elhelyezhetők. Az elemek
14
Érvénytelenítő üzenetet küldhet a Sokszorozó elem (Multiply Object) a kapcsolódási pontjához kötött elemnek, ha a kapcsolódási pontok számának csökkenése miatt az elemet nem tudja elhelyezni. Érvénytelenítő üzenetet küld a Polygon Clip hivatkozás is, ha a hozzá kötött egyenes szakasz nem metszi a bázisként adott poligont.
9
hivatkozásokkel kapcsolódnak a náluk magasabb szinten levő elemekhez, tehát a végső szerkezeti kialakítás elérése érdekében bármely szinten beavatkozhatunk. A rendszer bármely részletezettségű szintnek megfelelő terveket tud produkálni. A fenti mechanizmust kiegészíti egy térbeli helyfoglalást jelző adatbázis, amely a terv elemeinek térbeli elhelyezkedését tárolja, így az elemekbe integrált szerkesztőeljárások figyelembe vehetnek áthatásokat, metszéseket vagy egy adott elem elhelyezésére rendelkezésre álló helyet.
5. IRODALOM 1.
Oksala , T.: Logical Models for Rulebased CAAD – 1988 – CAAD futures ‘87 [Conference Proceedings / ISBN 0-44442916-6] Eindhoven (The Netherlands), 20-22 May 1987, pp. 107-116
2.
Gougoudilis, Vasileios: Hyperwalls or an Application of a Non-deterministic Rule-based System in Interactive Architectural Modelling – 1995 – Sixth International Conference on ComputerAided Architectural Design Futures [ISBN 9971-62-423-0] Singapore, 24-26 September 1995, pp. 173-179
3.
Seebohm, Thomas and Wallace, William: Rule - Based Representation Of Design In Architectural Practice – 1997 – Design and Representation [ACADIA ‘97 Conference Proceedings / ISBN 1-880250-06-3] Cincinatti, Ohio (USA) 3-5 October 1997, pp. 251-264
4.
Medjdoub, Benachir: Interactive 2D Constraint-Based Geometric Construction System – 1999 – Proceedings of the Eighth International Conference on ComputerAided Architectural Design Futures [ISBN 0-79238536-5] Atlanta, 7-8 June 1999, pp. 197212
5.
Tobin, Kenneth L. : Constraint-Based Three-Dimensional Modeling as a Design Tool – 1991 – Reality and Virtual Reality [ACADIA Conference Proceedings / ISBN 1-880250-00-4] Los Angeles (California - USA) October 1991, pp. 193209
6.
Rassmussen, J. 1983, Skills, Rules, and Knowledge; Signals, Signs, and Symbols, and Other Distinctions in Human Performance Models. IEEE Transactions on Systems, Man, and Cybernetics, Vol. Smc13, No. 3, May/June.
10