Pokud začneme pracovat v BIM aplikacích, jako je například Autodesk Revit, pak se dříve či později zákonitě setkáme i s požadavkem uložení projektu do formátu starší verze. A s tou nepříjemnou skutečností, že vytvořený model není možné uložit do formátů nižších verzí. Tato i podobné BIM a CAD aplikace zkrátka používají souborové formáty, které jsou kompatibilní jen směrem vzhůru – tedy nelze ukládat projekty do starší verze. Není to zdaleka jen omezení Revitu nebo Inventoru či jiných aplikací Autodesku. Jde o omezení principiální, ovlivňující celý obor a jsou z něj jen funkčně omezené výjimky, jako například u velmi rozšířeného AutoCADu. Pro uživatele to nemusí být zprvu pochopitelné, ale nakonec jim stejně nezbývá nic jiného, než si na toto chování zvyknout. Neustále jsem však slýchal dotazy, proč tomu tak vlastně je? Copak by bylo tak těžké umožnit ukládání do nižších verzí a tím předejít mnohým komplikacím? A věřte mi, že tyto dotazy a přání se ve velkém hrnuly také směrem k samotnému Autodesku. Řešení není bohužel tak jednoduché, jak by se na první pohled mohlo zdát a nemožnost downgradu datových souborů má své logické opodstatnění.
Sami zástupci Autodesku zmiňují, že byli v jednu chvíli postaveni před složité rozhodnutí, jestli tomuto tlaku neustoupit a nepokusit se o nějaké technické řešení, které by zpětnou kompatibilitu umožnilo. Ale bohužel se ukázalo, že by šlo o velmi obtížnou věc, která by mohla vést ke stagnaci samotného vývoje celého programu a proto od ní nakonec upustili. Pokud bychom si ale přeci představili řešení, které umožní zpětnou kompatibilitu souborů, pak by toho šlo dle programátorů Autodesku docílit dvěma způsoby – zmrazit formát souboru nebo přidat převodníky, které transformují nová data na stará data, aby znovu vytvořily starý formát souboru.
První řešení, tedy zmrazení formátu soboru, by logicky omezilo vývoj samotného Revitu, neboť většina funkcí aplikace Revit vyžaduje změnu formátu (i když se Autodesk v mnoha případech snaží pracovat na změnách, které nevyžadují změnu formátu souboru, jako je tomu u hotfixů a tzv. "tečkových" updatů jednotlivých verzí, např. 2023.1). Při programování nové verze Revitu a jeho nových nástrojů nebo vylepšení se průměrně změní kód formátu více než 3000krát. V průměru tedy dojde k více než 10 změnám formátu za vývojový den. To ale také nezohledňuje skutečnost, že jedna změna může mít obrovský dopad na další nástroje a ovlivnit další nastavení. Pokud by se tedy například čekalo 3 roky, než se zapracují nové změny a vylepšení, vedlo by to k velké kritice uživatelů z hlediska funkčnosti a konkurenceschopnosti samotného softwaru.
V případě druhého řešení, tedy reexportu souboru do formátu nižší verze, je situace složitější. Zástupkyně Autodesku, Sasha Crotty, dříve tento problém popisovala tak, že bychom si mohli představit krásnou krabičku, která je tak akorát velká, aby se do ní vešlo přesně 36 kostiček s písmeny abecedy. Další rok dostaneme sadu ještě krásnějších kostiček, které jsou ale o 5 % větší. Budeme si chtít tedy ponechat nové kostky, ale uložit je do původní krabičky, jenže bez ohledu na to, jak se budeme snažit, ty se tam prostě nevejdou. Formáty souborů fungují podobně. I malá změna v definici může mít obrovský kaskádový vliv na vzhled a chování souboru. V Revitu jsou prvky vytvářeny pomocí geometrie, která je odvozena (tedy popsána parametry a až následně definicí těchto parametrů je programem vytvořena hmota), takže nemusí být nutně uložena v souboru. V jednoduchém příkladu tvorby stěn si lze ukázat, jak to funguje v praxi. Řekněme, že Revit verze X umí vytvářet pouze lineární stěny a Revit verze X+1 dokáže již vytvořit obloukové stěny. Jak si tedy starší verze Revitu bude interpretovat obloukovou stěnu? Vzhledem k tomu, že kód aplikace Revit X nemá ponětí, jak použít další data charakterizující zakřivení stěny (jelikož definici těchto parametrů nezná), naše oblouková stěna se v aplikaci Revit X zobrazí jako lineární stěna! Někdo by mohl ale namítnout, jestli by nešlo přeci jen přenést do starší verze celkovou geometrii objektu. Možná ano, ale to by znamenalo, že veškeré inteligentní chování, které od Revitu očekáváme, bude pryč. Oblouková stěna by se tedy zobrazila jako oblouk, ale nebylo by možné ji změnit a Revit by nevěděl, jak to udělat, aby se chovala jako stěna (např. začistit spoje stěn atd.). Byla by to pouze hmotná geometrie, která nechápe, že se jedná o zeď. Náhradní export do IFC by v takovém případě poskytl pravděpodobně daleko lepší výsledek.
Vše výše popsané znamená, že pokud bychom ukládali soubory zpětně bez zmrazení formátu souboru, nebyli bychom schopni zaručit konzistenci nastavení zobrazení nebo obsahu a mělo by to za následek ztrátu inteligentního chování prvků. A v takovém případě navíc nejde pouze o definici hmoty, ale také například o nové definice pravidel, nastavení pohledů nebo filtrů, kategorií a dalších věcí, které zkrátka nejsou ve starších verzích dostupné a nelze je zástupně definovat. To by mělo za následek zcela jistě chyby ve výstupech. Nemožnost zpětné kompatibility do nižších verzí je tedy dána samotnou architekturou kódu programu a snahou Autodesku program neustále vylepšovat a poskytovat tak svým zákazníkům nejnovější nástroje a vylepšení. Z tohoto pohledu se to zdá být logické, neboť sami zákazníci na stránkách Revit Ideas neustále volají po nových funkcích, které by jim za jejich peníze zjednodušily práci na projektech.
No a zpátky k úvodní otázce - jak přenést BIM projekt do starší verze Revitu? Pokud spolupracující týmy nemohou použít shodnou verzi Revitu, je jedinou cestou přenosu BIM dat využití neutrálního souborového formátu, tedy IFC.
Komentáře
Okomentovat