Tabellen-Objekt
CadnaA-Tabellenobjekte aus dem namespace cna.tables. Hierbei ist tabobj ein Platzhalter für den Bezeichner der Tabelle hier).
for obj in cna.tables.tabobj:all() do ..Iteration über alle Objekte (d.h. Zeilen) der Tabelle.for obj in cna.tables.tabobj:all{...} doIteration über alle Objekte (d.h. Zeilen) der Tabelle, die die Bedingungen der Parameter erfüllen:id="identi"nur Elemente mit bestimmten ID. Der Parameter ID cna ist ein Muster, d.h.id="!01!*"kann verwendet werden, um einer bestimmten ObjectTree-Definition zu entsprechen.active_only=truenur aktive Elemente
local cnaobj = cna.tables.tabobj:first_by_id (id)liefert das erste Element mit dem angegebenen IDlocal newobj = cna.tables.tabobj:append()erzeugt ein neues Objekt und fügt es an das Ende der Tabelle anlocal anz_zeilen= #tabobjAnzahl Tabellenzeilen (Objekte)X:break_lines(Y)ruft die Funktion „Breche Linien“ auf, wobei X das Objekt ist, woran gebrochen werden soll und Y das Objekt, das gebrochen wird (nicht mit/für Punktobjekten). Beispiel: an Häusern soll gebrochen werden:
for x cna.tables.Haus:all() do
x:break_lines(...)
cnaobj.clone()dupliziert ein Objekt. Sofern erfolgreich, wird das geklonte Objekt zurückgegeben, sonst nil.- reguläre Ausdrücke für die Objektauswahl: Bei der Iteration über CadnaA Objekte wie Häuser etc. kann ein regulärer Ausdruck für die ID-Parameter verwendet werden. Zum Beispiel ist es möglich, die ObjectTree-Benennung zu verwenden, um nur bestimmte Zweige des ObjectTree‘s oder Objekte mit einem bestimmten ID-Muster zu durchlaufen. Das Modul für reguläre Ausdrücke ist identisch mit dem für CadnaA-Dialogen verwendeten:
cna.print("BEZ\tID\t\tActive?")
local i
for i in cna.tables.Haus:all{id="!0*!*1"} do
cna.print(string.format("'%s'\t'%s'\taktiv: %d", i.BEZ, i.ID, i.MARK))
end
local i = cna.tables.Haus:first_by_id("!*!a1")
cna.print(string.format("'%s'\t'%s'\taktiv: %d", i.BEZ, i.ID, i.MARK))
- Beim Objekt “Hausbeurteilung” können Fassaden ausgeschlossen werden. Hierzu erhält man mit
facadeseine Referenz auf die Fassaden, mit dessen Hilfe man dann mit dem[ ]Operator die Fassaden ein- oder ausschließen kann, wobei 1 für ausgeschlossen und 0 für eingeschlossen steht. Voraussetzung ist eine gültige Hausbeurteilung innerhalb eines Hauses mit echt positiver Höhe. Die maximale Anzahl Fassaden pro Haus beträgt 256. Beispiel:
for k in cna.tables.bld_eval:all() do
fac = k.facades
if fac then –- check if valid
for i=1, #fac, 1 do
fac[i] = 1 -- exclude like this
fac[i] = 0 -- include like this
end
end
end