Układanie pętli i hierarchii

Przy zachowaniu odpowiednich warunków ramowych, istnieje możliwość umieszczania jednej pętli w drugiej. Przykładowo można wykorzystać składanie pętli w rodzaju:

@DlaWszystkich.Kondygnacje

  @DlaWszystkich.Pomieszczenia

     @Pomieszczenie.PowierzchniaPodlogi itp.

     ..........

  @KoniecDlaWszystkich.Pomieszczenia

@KoniecDlaWszystkich.Kondygnacje

w sensowny sposób, aby wyliczyć wszystkie pomieszczenia wg kondygnacji.

Można przy tym po rozpoczęciu pętli kondygnacji wprowadzić pewne dane. Będą one wyeksportowane w dokumencie Info_bud odpowiednio przed listę wszystkich pomieszczeń.

Podczas składania pętli należy zachować następującą hierarchię:

Przykładowo, więc ponad pętlą wszystkich pomieszczeń można zdefiniować pętlę wszystkich kondygnacji. Odwrotna sytuacja także jest możliwa. Aby uruchomić określone pętle, nie jest konieczne zdefiniowanie wszystkich nadrzędnych pętli. I tak można wyeksportować wszystkie strony ściany budynku, bez uruchamiania pętli dla kondygnacji i pomieszczeń.

Istnieje podobna możliwość wyeksportowania wszystkich drzwi kondygnacji lub też całego projektu. Odpowiednia konstrukcja dla kondygnacji wyglądałaby następująco:

@DlaWszystkich.Kondygnacje

  @DlaWszystkich.Drzwi

    @Drzwi.Wysokosc

    .....

  @KoniecDlaWszystkich.Drzwi

@KoniecDlaWszystkich.Kondygnacje

Dla wszystkich drzwi całego projektu pętla byłaby następująca:

@DlaWszystkich.Drzwi

  @Drzwi.Wysokosc

..

@KoniecDlaWszystkich.Drzwi

Szczególnego znaczenia nabierają pętle zamknięć i mieszkań. W przeciwieństwie do innych poziomów ich pozycja nie jest stała. Jak widać na wcześniejszym rysunku można zaczynać pętle od budynków, kondygnacji lub pomieszczeń. Wewnątrz pętli ponad zamknięciami nie można jednak otwierać żadnych dalszych pętli. To samo obowiązuje dla mieszkań.

Są zatem możliwe następujące przykłady:

Przykład 1:

@DlaWszystkich.Zamkniecia

  @DlaWszystkich.Kondygnacje

    Pomieszczenia kondygnacji „@Kondygnacja.Nazwa]” o typie zamknięcia @Zamkniecie.TypZamkniecia]:

    @DlaWszystkich.Pomieszczenia

      @Pomieszczenie.Nazwa

    @KoniecDlaWszystkich.Pomieszczenia

  @KoniecDlaWszystkich.Kondygnacje

@KoniecDlaWszystkich.Zamkniecia

Przykład 2:

@DlaWszystkich.Kondygnacje

  @DlaWszystkich.Zamkniecia

    Pomieszczenia o typie zamknięcia @Zamkniecie.TypZamkniecia], znajdujące się na kondygnacji „@Kondygnacja.Nazwa]”:

    @DlaWszystkich.Pomieszczenia

      @Pomieszczenie.Nazwa

    @KoniecDlaWszystkich.Pomieszczenia

  @KoniecDlaWszystkich.Zamkniecia

@KoniecDlaWszystkich.Kondygnacje

Aby przybliżyć nieco oba przykłady, wyobraźmy sobie, że dotyczą one dwukondygnacyjnego budynku, na parterze którego znajdują się dwa pomieszczenia „Pokój dzienny” i „Sypialnia”, każdy o typie zamknięcia A. Na kondygnacji poddasza znajdowałyby się pomieszczenia „Taras” (typ zamknięcia B) oraz pomieszczenie „Pokój dziecinny” o zamknięciu A.

Dla przykładu 1 stworzony dokument po wyeksportowaniu wyglądałby tak:

Pomieszczenia kondygnacji „Parter” o typie zamknięcia a):

Pokój dzienny

Sypialnia

Pomieszczenia kondygnacji „Poddasze” o typie zamknięcia a):

Pokój dziecinny

Pomieszczenia kondygnacji „Parter” o typie zamknięcia b):

Pomieszczenia kondygnacji „Poddasze” o typie zamknięcia b):

Taras

Przykład 2 wywołałby następujący skutek:

Pomieszczenia o typie zamknięcia a, znajdujące się na kondygnacji „Parter”:

Pokój dzienny

Sypialnia

Pomieszczenia o typie zamknięcia a, znajdujące się na kondygnacji „Poddasze”:

Pokój dziecinny

Pomieszczenia o typie zamknięcia b, znajdujące się na kondygnacji „Poddasze”:

Taras

Wskazówka: Aby uniknąć w przykładzie 1 powyżej eksportu linijki Pomieszczenia kondygnacji „Parter” o typie zamknięcia b): (na parterze nie ma pomieszczeń o typie zamknięcia b)), sensowne byłoby włożenie tego rodzaju zwrotu do pętli @DlaPierwszego.xxx, @KoniecDlaPierwszego.xxx, ponieważ pętla taka uruchamiana jest tylko wtedy, gdy istnieje co najmniej jeden element odpowiedniego typu.

Z linijki

Pomieszczenia kondygnacji „@Kondygnacja.Nazwa]” o typie zamknięcia @Zamkniecie.TypZamkniecia]:

Z przykładu 1 powstałaby

    @DlaPierwszego.Pomieszczenie

Pomieszczenia kondygnacji „@Kondygnacja.Nazwa]” o typie zamknięcia @Zamkniecie.TypZamkniecia]:

@KoniecDlaPierwszego

Jak już wspominano, dla zamknięcia można podawać dodatkowo podwyróżniki. Z ich pomocą możliwe jest wyeksportowanie docelowo pomieszczeń o typie powierzchni użytkowej GPU1. Wzorce do obliczeń zgodnie z normą, dołączone do ArCon+ zawierają często takiego rodzaju chwyty. Można (a wręcz należy) używać tych przykładów podczas tworzenia nowych, własnych wzorców.