En opskrift til en intelligent bygningsdel programmeres i SigmaScript, et kodesprog baseret på Pascal, som er let at lære og forstå, og har været brugt siden 1969.
Med SigmaScript er det muligt at læse og behandle data i kalkulationen, samt at opsætte en brugerflade for en bygningsdel, så brugeren (beregneren) let kan interagere med bygningsdelen.
Sigma Enterprise
begynder | ØVET | avanceret
Denne guide gennemgår
- Grundbegreber og -elementer
- Tilføj / rediger opskrift (SigmaScript) på bygningsdel
- Dialog opskrift – input
- Dialog opskrift – if-then-else
- Dialog opskrift – layout
- Udførelses opskrift
I funktionsbeskrivelserne kan du klikke på ikonerne:
viser hvordan funktionens brugerflade ser ud
viser hvordan SigmaScript-kodningen af funktionen ser ud |
Grundbegreber og -elementer
Det er godt at kende og forstå nogle grundbegreber og -elementer, når du skriver SigmaScript-kode:
- Variabler (variables): Variabler er navngive reserverede hukommelsespladser, hvor programmet kan gemme og manipulere data. En variabel kan indeholde forskellige typer af data, f.eks. tal, tekst eller sand/falsk-værdier. Man kan tænke på en variabel som en beholder, der kan indeholde og ændre værdier, efter behov.
- Funktioner (functions): Funktioner i SigmaScript er blokke af kode, der udfører en bestemt opgave. Man kan tænke på dem som små underprogrammer, der kan kaldes fra hovedprogrammet. Funktioner kan modtage input, udføre beregninger og returnere et resultat. De hjælper med at organisere og strukturere koden i mindre og mere overskuelige dele.
- Operatorer (operators): Operatorer i SigmaScript er symboler eller nøgleord, der bruges til at udføre beregninger eller evaluere udtryk. Der er forskellige typer af operatorer: aritmetiske operatorer (f.eks. +, -, *, /), sammenligningsoperatorer (f.eks. =, >, <) og logiske operatorer (f.eks. AND, OR, NOT). Operatorerne hjælper med at manipulere værdier og tage beslutninger baseret på forskellige betingelser.
- Typer (types): I SigmaScript er der forskellige typer af data, som variabler kan indeholde. Nogle af de mest almindelige typer er integer (heltal), float (decimaltal), string (tekststreng), boolean (sand/falsk). Typer hjælper med at definere, hvilken slags data variabler kan indeholde, og sikrer, at de bruges korrekt.
- Kontrolstrukturer (control structures): Kontrolstrukturer i SigmaScript er konstruktioner, der styrer, hvordan koden udføres og kontrollerer flowet af programmet. I Sigma Script er den mest anvendte kontrolstruktuktur if-sætninger, bruges til at tage beslutninger/fortage handlinger baseret på betingelser. Nogle af de mest almindelige kontrolstrukturer er if-sætninger (bruges til at tage beslutninger baseret på betingelser), loops (f.eks. for-loops og while-loops, der gentager kodeblokke) og case-sætninger (bruges til at håndtere flere mulige betingelser). Kontrolstrukturer hjælper med at styre og styre programudførelsen.
- Syntaks (syntax): Syntaks i SigmaScript henviser til reglerne for, hvordan kode skal struktureres og skrives i sproget. Det inkluderer brug af korrekte nøgleord, symboler og sætningsopbygning. Overholdelse af den korrekte syntaks er afgørende for, at koden kan forstås og udføres korrekt af computeren. Hvis der er fejl i syntaksen, vil programmet ikke kunne køre, og der vil blive genereret fejlmeddelelser. Så at have en korrekt syntax er vigtigt for at have et fungerende program.
Eksempel
Linje | SigmaScript | Variabler | Funktioner | Operatorer | Typer | Kontrol- struktur |
---|---|---|---|---|---|---|
1 | A := 10; | A | := ; | Integer | ||
2 | B := A * 2; | B | := * ; | Integer | ||
3 | if (B > 15) then | > | if, then | |||
4 | C := B + 10; | c | := + ; | |||
5 | else | else | ||||
6 | C := B – 10; | – ; | ||||
7 | AddText(“C er lig med” + C); | AddText | ; | String |
Tilføj / rediger opskrift (SigmaScript) på bygningsdel
Overordnet består tilføjelse / redigering af SigmaScript på en bygningsdel af følgende 5 trin
1. | Find og vælg (i Beregningstræet) den bygningsdel du vil tilføje opskrift (SigmaScript) på |
2. | Gå til Data-båndet og vælg Rediger opskrift (i gruppen “SigmaScript”) |
Du får får vist dialogboksen “SigmaScript editor” med fanerne “Initialiserings opskrift”, “Dialog opskrift”, “Udførelses opskrift” og “Avancerede egenskaber”. |
|
NOTE “Initialiserings opskrift” bruges sjældent, men kan f.eks. bruges til at initialisere variabler (eksempelvis indlæsning af data fra felter for bygningsdelen) inden databehandlingen på “Dialog opskrift”-fanen. |
|
3. | Vælg fanen Dialog opskrift, indtast SigmaScript for data-input og data-behandling og vælg Gem og valider |
Find forklaringer til SigmaScript-funktioner og -kontrolstrukture længere nede | |
NOTE Hvis bygningsdelen består af flere niveauer, kan du indtaste SigmaScript på hvert niveau |
|
4. | Vælg fanen Udførelses opskrift, indtast SigmaScript for data-output og vælg Gem og valider |
Find forklaringer til SigmaScript-funktioner (Self.Set…) længere nede | |
NOTE Hvis bygningsdelen består af flere niveauer, skal du ofte bruge Udførelses opskrift på flere underkomponenter. Du skal vælge Gem opskrift eller Gem og valider og derefter vælge underkomponent i Beregningstræet. |
|
5. | Vælg fanen Avancerede egenskaber og marker afkrydsningfelterne Indeholder opskrift der kan afvikles og Kør automatisk opskrift når komponenten vælges i afsnittet “SigmaScript egenskaber for komponenten” |
NOTE Afhængigt af, hvordan opskriften skal køre kan du markere flere/andre af afkrydsningsfelterne under “SigmaScript egenskaber for komponenten” |
|
NOTE Du kan redigere opskriften ved igen at vælge bygningsdelen i Beregningstræet og derefter gå til Data-båndet og vælge Rediger opskrift |
Dialog opskrift – Input
En stor del af det at opbygge en intelligent bygningsdel består i, at brugeren skal indtaste data til parametrering af bygningsdelen.
TIP | Du kan finde SigmaScript-funktioner via tastaturgenvejen Ctrl+Space – og du kan begrænse antallet af mulige funktioner ved at taste noget af funktionen.
Eksempel: hvis du taster “getch” og derefter trykker Ctrl+Space, får du vist funktioner der indeholder de bogstaver, f.eks. funktionen GetChoice klik for større billede |
Klik på ikonerne | ||
---|---|---|
viser hvordan funktionens brugerflade ser ud
viser hvordan SigmaScript-kodningen af funktionen ser ud |
Hel-tal |
||
---|---|---|
funktion | GetInteger(label: string, default value: float) | |
eksempel | Antal := GetInteger(“Indtast antal”, 1); |
Decimal-tal |
||
---|---|---|
funktion | GetFloat(label: string, default value: float) | |
eksempel | Længde := GetFloat(“Indtast længde [m]”, 1.5); |
Tekst, en linje |
||
---|---|---|
funktion | GetText(label: string, default value: string) | |
eksempel | Navn := GetText(“Indtast bygningsdel”, “bygningsdels navn”); |
Valg, checkboks |
||
---|---|---|
funktion | GetBoolean(label: string, default choice: float) | |
eksempel | ValgStillads := GetBoolean(“Medregn stillads”, 0); |
Hent tekst / værdi fra standard-kolonne |
||
---|---|---|
funktion 1 | Self.Get[kolonne]AsFloat() | |
eksempel | Self.GetNumberAsFloat(); | |
funktion 2 | Self.Get[kolonne]AsString() | |
eksempel | Self.GetNumberAsString(); |
Hent tekst / værdi fra ekstrafelt-kolonne |
||
---|---|---|
funktion | Self.GetCustomFieldValue(“[Felt ID]”) | |
eksempel | Self.GetCustomFieldValue(“SUPPLIER”); |
Dialog opskrift – if-then-else
Ud fra input kan der træffes valg / foretages handlinger. Dette styres ved brug af kontrolstrukturer:
hvis betingelse er opfyldt så
udfør handling 1
ellers
udfør handling 2
TIP | Du kan finde SigmaScript-funktioner via tastaturgenvejen Ctrl+Space – og du kan begrænse antallet af mulige funktioner ved at taste noget af funktionen.
Eksempel: hvis du taster “getch” og derefter trykker Ctrl+Space, får du vist funktioner der indeholder de bogstaver, f.eks. funktionen GetChoice klik for større billede |
Klik på ikonerne | ||
---|---|---|
viser hvordan funktionens brugerflade ser ud
viser hvordan SigmaScript-kodningen af funktionen ser ud |
Dialog opskrift – layout
En dialogboks med et godt layout gør den intelligente bygningsdel nemmere at forstå og bruge.
En linje i den intelligente bygningsdels dialogboks deles op i “Label” og “Control”.
- “Label” er den venstre del og bruges til ledetekst, eksempelvis “Indtast længde [m]” fra eksemplet på et decimal-tal.
- “Control” er den højre del og bruges til indtastningsfelterne.
TIP | Du kan finde SigmaScript-funktioner via tastaturgenvejen Ctrl+Space – og du kan begrænse antallet af mulige funktioner ved at taste noget af funktionen.
Eksempel: getch, efterfulgt af Ctrl+Space |
Klik på ikonerne | ||
---|---|---|
viser hvordan funktionens brugerflade ser ud
viser hvordan SigmaScript-kodningen af funktionen ser ud |
Størrelse på intelligent bygningsdels dialogboks |
||
---|---|---|
funktion | SetWindowSize(height: float, width: float) | |
eksempel | SetWindowSize(1000, 800); |
Label bredde |
||
---|---|---|
funktion | SetLabelWidth(value: float) | |
eksempel | SetLabelWidth(55); |
Control bredde |
||
---|---|---|
funktion | SetControlWidth(value: float) | |
eksempel | SetControlWidth(100); |
Label start |
||
---|---|---|
funktion | SetLabelStart(value: float) | |
eksempel | SetLabelStart(20); |
Control justering |
||
---|---|---|
funktion | SetControlAlignment(value: string) | |
eksempel | SetControlAlignment(“Right“); SetControlAlignment(“Center“); SetControlAlignment(“Left“); |
Overskrift |
||
---|---|---|
funktion | AddHeader(value: string) | |
eksempel | AddHeader(“Stillads”); |
Side og sidefane |
||
---|---|---|
funktion | AddPage(value: string) | |
eksempel | AddPage(“Indtastning”); |
Kommentar |
||
---|---|---|
funktion | UseComment(value: string) | |
eksempel | UseComment(“Ydervæg”); |
Udførelses opskrift
Alle bygningsdelens felter (kolonner) kan styres ved hjælp af Self-funktioner og navnet på den variabel, som indholder værdien / teksten.
TIP | Du kan finde SigmaScript-funktioner via tastaturgenvejen Ctrl+Space – og du kan begrænse antallet af mulige funktioner ved at taste noget af funktionen.
Eksempel: hvis du taster “getch” og derefter trykker Ctrl+Space, får du vist funktioner der indeholder de bogstaver, f.eks. funktionen GetChoice klik for større billede |
Klik på ikonerne | ||
---|---|---|
viser hvordan funktionens brugerflade ser ud
viser hvordan SigmaScript-kodningen af funktionen ser ud |
Tekst |
||
---|---|---|
funktion | Self.SetText(text: string) | |
eksempel | Self.SetText(Navn); |
Nummer |
||
---|---|---|
funktion | Self.SetNumber(text: string) | |
eksempel | Self.SetNumber(varenummer); |
Kategori |
||
---|---|---|
funktion | Self.SetCategory(text: string) | |
eksempel | Self.SetCategory(“Materialer”); |
Enhed |
||
---|---|---|
funktion | Self.SetUnits(text: string) | |
eksempel | Self.SetUnits(Enhed); |
Mængde |
||
---|---|---|
funktion | Self.SetQuantity(value: float) | |
eksempel | Self.SetQuantity(Længde); |
Enhedspris |
||
---|---|---|
funktion | Self.SetUnitPrice(value: float) | |
eksempel | Self.SetUnitPrice(Enhedspris); |
Kostpris |
||
---|---|---|
funktion | Self.SetCostPrice(value: float) | |
eksempel | Self.SetCostPrice(Kostpris); |
Prisregulering |
||
---|---|---|
funktion | Self.SetRegulation(value: float) | |
eksempel | Self.SetRegulation(Prisregulering); |