Files
Rozpisky/ROZHRANI.md
T
marekandClaude Opus 5 a6377ab583 Baseline: současný stav projektu Rozpisky
První commit — WPF aplikace pro generování výkresových rohových razítek
(.NET 10, SkiaSharp, ACadSharp, ClosedXML) včetně xUnit testů, DXF šablony,
log a dokumentace. Build výstupy (bin/, obj/, .vs/) jsou ignorovány.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-07 09:45:49 +02:00

21 KiB
Raw Blame History

Rozpisky rozhraní aplikace, datový model a budoucí funkcionality

Tento dokument popisuje standalone aplikaci Rozpisky z pohledu uživatele a dat: jaké má obrazovky, co se v nich vyplňuje, jaké akce nabízí a jak je vnitřně uspořádaný datový model. Navazuje na ROZPISKY.md, který popisuje vykreslovací/exportní jádro (kreslicí rozhraní IProfileRenderer, čtečka DXF šablony DxfTemplate, exporty PNG/PDF/DXF).

Aplikace je standalone náhrada za původní excelový nástroj „Rozpisky 1.0.8". Z něj vychází veškerá logika rozhraní i datový model. Tento dokument je proto současně i přepisem původního excelu do podoby specifikace pro samostatnou aplikaci.

Styl WPF se zde neřeší popisujeme rozhraní funkčně (obrazovky, pole, akce, tok dat). Vizuální styl bude dodán samostatně.


1. Účel a vztah k ROZPISKY.md

Dokument Co popisuje
ROZPISKY.md Jádro jak se kreslí a exportuje (DXF → obrazovka / PNG / PDF / DXF).
ROZHRANI.md (tento) Aplikace uživatelské rozhraní, datový model (projekt + seznam příloh), akce a roadmapa.
SZ_SM011_P10_Manual_v6.md Závazný manuál SŽ (v06, 26. 1. 2026) struktura dokumentace, kódové označení (kap. 3) a popisové pole / pravidla vyplnění (kap. 4). Autoritativní zdroj pro význam polí a kódu.

Princip: Uživatel jednou vyplní údaje projektu (společné všem výkresům) a postupně plní seznam příloh (jeden řádek = jeden výkres = jedna rozpiska). Aplikace každý řádek spojí s údaji projektu, naplní pole DXF šablony a umí jej zobrazit (náhled) a vyexportovat/vytisknout.

Standalone-first: aplikace nevyžaduje AutoCAD. Vstup je DXF šablona + data, výstup PNG / PDF / DXF (engine z ROZPISKY.md). Integrace s AutoCADem (interop do .dwg, rozvržení, CTB, tisk plotterem) je vedena jen jako budoucí rozšíření viz sekce 8.


2. Slovník pojmů

Pojem Význam
Rozpiska Rohové razítko výkresu tabulka s údaji o projektu, příloze, autorech a revizích.
Příloha Jeden výkres / list dokumentace. V seznamu = jeden řádek.
Seznam příloh Tabulka všech příloh projektu (původní list SEZNAM).
Rozvržení (layout) Pojmenované rozvržení výkresu (v AutoCADu paper-space layout). Jméno se generuje z identifikace přílohy.
Orientační schéma Malé schéma v rozpisce naznačující polohu listu v rámci stavby (buňky K1K47).
Placeholder loga Vyhrazené místo v šabloně pro logo (objednatele/zhotovitele). Leží na netisknutelné hladině.
Číselník Předvyplněný seznam hodnot (organizace, firmy, jména, profese, …) pro výběr v polích.
Projektové pole Hodnota společná celému projektu (z údajů projektu).
Řádkové pole Hodnota specifická pro jednu přílohu (ze seznamu příloh).

3. Datový model

Model 1:1 odpovídá listům původního excelu. Entity:

3.1 Projekt (původní list ÚDAJE)

Údaje společné všem rozpiskám projektu. Část polí se automaticky dohledává z číselníků (v excelu přes VLOOKUP).

Pole Popis Zdroj
stavba Název stavby / akce ruční
HIP Hlavní inženýr projektu ruční
investor Objednatel zakázky číselník Organizace
investorAdresa Adresa objednatele auto z č. Organizace
slozkaSZ Složka SŽ (zástupce objednatele) ruční / číselník
slozkaSZAdresa Adresa složky SŽ auto z č. Organizace
skod S-kód (číslo smlouvy dle SoD) ruční
cisloZakazky Číslo zakázky ruční
stupenDokumentace Stupeň dokumentace (např. DOS) číselník Verze dokumentace
smluvniDatumZpracovani Smluvní datum zpracování ruční (datum)
zhotovitelSOD Zhotovitel díla dle SoD číselník Firmy
adresaSOD Adresa zhotovitele auto z č. Firmy
telSOD Telefon zhotovitele auto z č. Firmy
emailSOD E-mail zhotovitele auto z č. Firmy

3.2 Příloha (řádek v seznamu, původní list SEZNAM)

Sloupce AAD; jeden řádek = jedna rozpiska. Souhrn:

Sl. Obsah Sl. Obsah
A Označení části O Kontroloval (R1)
B Označení dílčí části / řady PU R2R4 + kdo revidoval
C Název objektu / dílčí části V Zhotovitel části
D Číslo objektu / komplexu W Měřítko
E Číslo přílohy typ X Formát × A4
F Číslo přílohy dílčí Y Kraj
G Číslo přílohy pořadí Z Katastrální území
H Název přílohy AA TUDU
I Název dílčí části přílohy AB Jméno rozvržení (generováno)
J Zkratka přílohy AC LTSCALE
K Vypracoval AD CTB (styl tisku)
L Odpovědný projektant
M Specialista
N Revize 1 (R1)

Jméno rozvržení (AB) je poloautomatické, řízené zaškrtávacím polem Příloha objektu (první sloupec seznamu, výchozí = zaškrtnuto):

  • zaškrtnuto → jméno se generuje dle manuálu SŽ kap. 2.7.7.9 (číslo objektu bez teček, mezer a pomlček; složky podobjekt / typ / dílčí / pořadí přílohy oddělené _): SO131.45.01 + D1 + 1 + 001 = SO1314501_D1_1_001; u podobjektu SO1314501_01_D1_1_001; u skupiny SK11311_D1_1_001. Needituje se;
  • odškrtnuto → uživatel zadá jméno ručně (při přepnutí se předvyplní vygenerovanou hodnotou).

Slouží jako jméno layoutu / základ názvu exportovaného souboru. Řádky se shodným jménem rozvržení (kolize názvu exportu) se v seznamu zvýrazní.

Samostatné zaškrtávací pole Rozpiska (výchozí = zaškrtnuto) řídí, zda název PDF při exportu dostane příponu _rozpiska (např. SO1314501_D1_1_001_rozpiska.pdf). Je nezávislé na polích Příloha objektu a Desky objektu i rozpiska na spisové desky objektu může příponu dostat, pokud je pole zaškrtnuté.

3.3 Revize (původní list REVIZE)

Tabulka revizí: REVIZE (kód/číslo verze, např. 000), DATUM, POPIS, KONTROLOVAL. Na revize se odkazují řádkové revizní sloupce přílohy (R1R4) a revizní pole v rozpisce.

Revize jsou interní data projektu patří vždy ke konkrétní zakázce, ukládají se spolu s projektem (ne do externí číselníkové databáze, viz 3.4). Pravidla vyplnění revizí popisuje manuál SŽ, kap. 4.3.4 (viz 3.7).

3.4 Číselníky

Číselník Sloupce Použití
Organizace název, adresa objednatel + složka SŽ (auto adresy)
Firmy / zhotovitelé firma, adresa, telefon, e-mail zhotovitel díla i objektu (auto kontakty)
Jména jméno vypracoval / odpovědný / specialista / kontroloval
Profese profese profesní zařazení
Verze dokumentace verze stupeň dokumentace
Části označení, název části části/objekty v seznamu

Číselníky jsou sdílená data napříč projekty a žijí v samostatné databázi vedle .exe. V původním Excelu šlo o samostatné listy s daty (označení dokumentace, data firem apod.). Ve standalone aplikaci se z nich stane externí databázový soubor uložený vedle spustitelného souboru (např. cisleniky.db / .json ve složce aplikace), aby ho šlo průběžně doplňovat a sdílet mezi projekty bez zásahu do aplikace. (Na rozdíl od revizí, které jsou interní k zakázce viz 3.3.)

3.5 Konfigurace

Položka Popis
CestaExportu Kořenová cesta pro export (např. C:\temp).
SlozkaExportu Podsložka exportu.
MERITKOAUTOMATICKY Automatické měřítko.
LTSCALE Měřítko typů čar (per výkres).
CTB Styl tisku (per výkres).
Nastavení tiskárny Pro tiskové akce.

Tato konfigurace nejsou pole rozpisky řídí export/tisk a generování rozvržení.

3.6 Mapování pole aplikace ↔ DXF ATTDEF tag

Šablona Rozpiska.dxf obsahuje 101 polí (ATTDEF). Tag pole = klíč do values při vyplnění (viz DxfTemplate.Replay(g, values) v ROZPISKY.md). Mapování na zdroj dat:

Projektová pole (z údajů projektu):

DXF tag Zdroj
NAZEV_AKCE stavba
SO_HIP HIP
OBJEDNATEL_NAZEV investor
OBJEDNATEL_ADRESA investorAdresa
OBJEDNATEL_ZASTUPCE_NAZEV slozkaSZ
OBJEDNATEL_ZASTUPCE_ADRESA slozkaSZAdresa
S_KOD skod
ZAK_CISLO cisloZakazky
STUP_DOK stupenDokumentace
DATUM smluvniDatumZpracovani
ZHOTOVITEL_DILA_NAZEV zhotovitelSOD
ZHOTOVITEL_DILA_ADRESA adresaSOD
ZHOTOVITEL_DILA_TELEFON telSOD
ZHOTOVITEL_DILA_EMAIL emailSOD

Řádková pole (z přílohy / seznamu). Význam upřesněn dle grafické podoby popisového pole (manuál SŽ, kap. 4.2.1 a 4.3.7):

DXF tag Význam / zdroj
CAST Označení části dokumentace (např. D) SEZNAM A
CAST_NAZEV Název části / profesní skupina (např. „Dokumentace objektů")
OBJEKT_NAZEV Název objektu / dílčí části SEZNAM C
RADA řada objektu (např. SO131) SEZNAM B
USEK úsek složka označení objektu (kap. 2.5 / 3.2.4)
RAZENI řazení složka označení objektu (kap. 2.5 / 3.2.4)
PODOBJEKT podobjekt (např. 01) kap. 3.2.5
DILCI_CAST dílčí část / řada přílohy (např. D130)
TYP typ přílohy (např. D.1) SEZNAM E
CISLO_PRILOHY číslo přílohy (3 cifry, např. 003) SEZNAM G
PRILOHA Název přílohy SEZNAM H
PRILOHA_CAST Název dílčí části přílohy SEZNAM I
SO_VYPRACOVAL_PRILOHA Zpracovatel přílohy SEZNAM K
SO_ZODP_PROJEKTANT Odpovědný projektant SEZNAM L
SO_SPECIALISTA Specialista SEZNAM M
MERITKO Měřítko SEZNAM W
FORMATY Formáty (× A4) SEZNAM X
KRAJ Kraj SEZNAM Y
KATASTRALNI_UZEMI Katastrální území SEZNAM Z
TUDU TUDU SEZNAM AA
ZHOTOVITEL_OBJEKTU_NAZEV Zhotovitel části / objektu SEZNAM V
ZHOTOVITEL_OBJEKTU_ADRESA/TELEFON/EMAIL auto z č. Firmy podle V

Čtveřice RADA / USEK / RAZENI / PODOBJEKT tvoří dohromady označení objektu (např. SO131 .15 .12 .01); přesné rozčlenění čísla objektu řeší manuál kap. 2.5 a 3.2.4.

Revizní pole (z přílohy R1R4 + list REVIZE):

4 revizní řádky (sloupce Revize / Datum / Popis / Kontroloval, manuál kap. 4.3.4), plněné z interní tabulky revizí (3.3):

DXF tag Zdroj
REVIZE1CISLO..4CISLO číslo / kód verze revize (např. 000)
REVIZE1DAT..4DAT datum revize
REVIZE1..REVIZE4 popis revize
SO_KONTROLOVAL1..4 kdo kontroloval

Strojově čitelný kód: K1K47 = 47 pozic kódového označení přílohy (manuál kap. 3.1.5), zobrazených znak po znaku v popisovém poli. Negenerují se ručně aplikace je sestaví z ostatních polí (S-kód, stupeň dokumentace, část, objekt, podobjekt, typ, příloha, revize) viz 3.7.

Orientační schéma: samostatné grafické pole (pole 2, manuál kap. 4.3.2) schéma stavby s barevným zvýrazněním polohy objektu; není to ATTDEF, ale obrazová oblast.

Loga: Rozpiska_logo1Rozpiska_logo5 nejsou ATTDEF, ale geometrické placeholdery na netisknutelných hladinách (viz sekce 6).

Pozn. k mapování: Význam polí byl upřesněn dle manuálu SŽ (kap. 3 a 4) původní excelová makra (VBA) se v .xlsx nedochovala, ale grafická podoba a pravidla vyplnění popisového pole jsou v manuálu závazné. Skupiny hladin Rozpiska_pole_18 odpovídají různým stylům (velikost/zarovnání) textu polí viz sekce 7.

3.7 Kódové označení přílohy (47 pozic, pole K1K47)

Strojově čitelný kód (manuál SŽ kap. 3) má pevných 47 pozic rozdělených do 6 skupin; v rozpisce se zobrazuje znak po znaku v polích K1K47. Aplikace ho generuje z ostatních polí, ručně se neopravuje. Neobsazená alfanumerická pozice = X, oddělovač = _.

Skupina Pozice Význam Zdroj polí
1 111 Identifikace stavby (S-kód / označení investora) S_KOD
2 1316 Stupeň dokumentace (4 znaky, např. DPSX) STUP_DOK
3 1821 Část / číselná řada (D + řada) CAST, RADA
4 2334 Objekt + podobjekt (SO/PS + číslo + podobjekt) RADA,USEK,RAZENI,PODOBJEKT
5 3643 Typ přílohy + číslo přílohy (D1_YYY) TYP, CISLO_PRILOHY
6 4547 Verze / revize (P/0/V + pořadí) REVIZEnCISLO

Příklad (manuál kap. 4.2.1): S123456789X _ DPSX _ D130 _ SO131_15_12 _ 01 _ D1 _ 2 _ 003 _ 000 (v rozpisce bez mezer, každý znak v jedné buňce K1K47).

Detailní pravidla pozic jsou v manuálu kap. 3.2.13.2.8; generátor kódu je proto vlastní funkční blok aplikace (vstup = strukturovaná pole přílohy, výstup = 47 znaků).


4. Uživatelské rozhraní

Popsáno funkčně (bez vizuálního stylu).

4.1 Hlavní okno

Sekce odpovídající původním listům excelu + panel akcí:

  • Údaje projektu formulář (viz 4.2).
  • Seznam příloh mřížka (viz 4.3). Hlavní pracovní plocha.
  • Revize tabulka revizí projektu.
  • Číselníky správa hodnot (organizace, firmy, jména, profese, verze, části).
  • Nastavení cesty exportu, šablona, tisk/konfigurace.

4.2 Formulář „Údaje projektu"

Pole dle sekce 3.1. Výběr objednatele / zhotovitele z číselníku automaticky doplní adresu a kontakty (náhrada excelového VLOOKUP).

4.3 Mřížka „Seznam příloh"

  • Tabulka (DataGrid), kde jeden řádek = jedna rozpiska; sloupce dle sekce 3.2.
  • Vybraná pole nabízejí výběr z číselníků (jména, firmy, kraj, části…).
  • Editace dat probíhá přímo v mřížce.
  • Sloupec Jméno rozvržení je poloautomatický viz sekce 3.2 (řízeno polem Příloha objektu); duplicitní jména se zvýrazní.

4.4 Náhled rozpisky

  • Náhled se otevírá dvojklikem na řádek seznamu → otevře se samostatné okno s náhledem dané rozpisky.
  • Náhled vykresluje engine z ROZPISKY.md (IProfileRenderer / SkiaProfileRenderer) živě, ve výkresových milimetrech.
  • Okno umožní přepnout: vyplněné hodnoty (Replay(g, values)) ↔ předpis / názvy polí (Replay(g)).
  • Z okna náhledu lze danou rozpisku rovnou vyexportovat / vytisknout.

5. Funkcionality / akce

Přehled vychází z ribbonu původního excelu; sloupec „Standalone chování" popisuje ekvivalent v samostatné aplikaci.

Akce (původně) Standalone chování Stav
Uprav rozpisku Editace dat řádku v mřížce; náhled dvojklikem na řádek (samostatné okno, 4.4). Tlačítko „uprav" odpadá. plán
Uprav rozpisky Hromadné přegenerování / kontrola všech rozpisek (např. po změně údajů projektu). plán
Vytiskni rozpisku Export / tisk jedné rozpisky (PDF/PNG) přes Exporters (PdfA4, PngA4). plán
Vytiskni rozpisky Dávkový export/tisk všech rozpisek do CestaExportu\SlozkaExportu, název dle „Jména rozvržení". plán
Aktualizuj rozvržení Standalone ekvivalent: vygenerování/aktualizace výstupů (DXF/PDF) per rozvržení. (AutoCAD varianta → roadmapa.) plán
Vytiskni rozvržení Tisk rozvržení (přes vlastní engine / PrintDialog). (AutoCAD varianta → roadmapa.) plán
Tisk seznamu Tisk přehledu seznamu příloh. plán
Export seznamu (Otevřená verze) Export seznamu příloh do otevřeného .xlsx. plán
Navigace (Předchozí/Další) Navigace mezi sekcemi / řádky. volitelné
O programu Informace o aplikaci a verzi. plán

6. Loga a orientační schéma

  • Šablona má 5 placeholderů na loga (Rozpiska_logo1Rozpiska_logo5).
  • Placeholdery leží na netisknutelných hladinách (!!NOPRINT): jejich geometrie se nevykresluje, ale aplikace o nich musí vědět (z dat šablony), aby do nich uměla posadit logo viz RectForLayer / g.Image(...) v ROZPISKY.md.
  • Logo se přiřazuje podle role: loga institucí financujících stavbu (pole 1, manuál kap. 4.3.1 nepovinné), objednatel/investor, zhotovitel díla, zhotovitel části/objektu (manuál kap. 4.3.5/4.3.6). Načítá se ze souboru (File.ReadAllBytes("logo.png")).
  • Orientační schéma je samostatné grafické pole (pole 2, manuál kap. 4.3.2) schéma stavby s červeným zvýrazněním polohy dotčeného objektu (u liniových staveb klad listů). Nepovinné u malých staveb. Není to pole K1K47 (to je strojový kód, viz § 3.7).
  • Pole pro otisk razítek / razítko oprávněné osoby (pole 3, kap. 4.3.3) zůstává v elektronické verzi obvykle prázdné.

7. Metadata polí (zalamování, styl, víceřádkovost)

Pole rozpisky nejsou jen „text na souřadnici". Aby výstup odpovídal šabloně, je třeba u každého pole znát (viz požadavek v ROZPISKY.md):

  • velikost textu (výška) daná stylem/atributem,
  • styl atributu,
  • víceřádkovost zda byl atribut víceřádkový,
  • šířku pole pro zalamování dlouhého textu (adresy, dlouhé názvy),
  • zarovnání (H/V).

Skupiny hladin Rozpiska_pole_18 zřejmě odpovídají různým stylům polí. Tato metadata se mají číst ze šablony (z ATTDEF) a nést spolu s hodnotou.

Dopad do jádra: současná signatura IProfileRenderer.Text(...) v ROZPISKY.md nenese šířku ani příznak víceřádkovosti. Navrhuje se ji rozšířit o šířku pole + zalamování (resp. nést metadata pole z DxfTemplate), aby šlo dlouhé hodnoty správně zalomit. Tím se zároveň řeší rozpor mezi požadavkem na víceřádková pole a stávajícím omezením „jen jednořádkový TEXT".


8. Roadmapa budoucích funkcionalit

Orientační fázování (priorita shora dolů):

Fáze 1 MVP (standalone):

  • Načtení DXF šablony a zjištění polí/placeholderů.
  • Datový model: projekt + seznam příloh (v paměti).
  • Mřížka seznamu, formulář údajů projektu.
  • Náhled rozpisky dvojklikem na řádek.
  • Export jedné rozpisky do PNG/PDF.

Fáze 2 data a produktivita:

  • Číselníky + automatické doplnění adres/kontaktů (VLOOKUP).
  • Revize.
  • Uložení/načtení projektu (formát viz otevřené otázky).
  • Import z původního .xlsx (přemostění starých dat).
  • Dávkový export všech rozpisek.

Fáze 3 výstupy:

  • Tisk (PrintDialog) jednotlivě i dávkově.
  • Tisk / export seznamu příloh (i „Otevřená verze" do .xlsx).
  • Loga ze souborů, orientační schéma.

Fáze 4 kvalita výstupu:

  • Víceřádková pole a zalamování (viz sekce 7).
  • Podpora více DXF šablon.
  • Nastavení (cesty, měřítko, CTB, tiskárna).

Budoucí blok AutoCAD integrace (interop):

  • Vyplnění a tisk rozpisek přímo ve výkresech .dwg.
  • Práce s rozvrženími (layouty), CTB styly, LTSCALE, tisk plotterem.
  • Výstup zpět do .dwg.
  • (Mimo standalone jádro aktivuje se jen při dostupném AutoCADu.)

9. Otevřené otázky

  • Formát uložení rozdělené úložiště:
    • Projekt (údaje + seznam příloh + revize) = interní data jedné zakázky → formát k rozhodnutí (JSON / SQLite / vlastní).
    • Číselníky (organizace, firmy, jména, profese, verze, části) = externí databáze vedle .exe, sdílená a doplňovatelná napříč projekty (3.4) → formát k rozhodnutí.
  • Generátor 47-pozičního kódu doimplementovat dle manuálu kap. 3.2.13.2.8 vč. okrajových případů (sdružené objekty SK/PK, kap. 3.3; pracovní vs. definitivní verze).
  • Orientační schéma jak se obrázek schématu získá/přiřadí k příloze (vstup uživatele vs. generování).
  • WPF styl dodá uživatel samostatně; zde neřešen.
  • Import z původního .xlsx mapování listů ÚDAJE/SEZNAM/REVIZE + číselníků do modelu.
  • Více DXF šablon jedna pevná vs. volitelné šablony (základní pole / pole celé stavby / vložená příloha, manuál kap. 4.2.14.2.3).
  • Lokalizace zatím čeština.