Skip to content
EG Sigma Community

EG Sigma Community

  • GuidesExpand
    • Kom godt i gang
    • Grundlæggende Sigma
    • Biblioteker
    • Opsætning
    • Import/Eksport
    • 3D Integration
    • Integrationer/Apps
    • LCA
    • Diverse
  • Support
  • Kurser
  • EG.DK
EG Sigma Community
EG Sigma Community

3D Integration

8
  • Type Coding – sammenknyt Revit-modellens objekter med Sigmas bygningsdele
  • Importer fra CAD model
  • BIM 360: Kom godt i gang
  • BIM 360: Installation og opsætning af integrationen
  • Kom godt i gang med Sigma Revit Integration
  • Connect – overfør data mellem Revit og Sigma
  • Connect Settings – opsætning af eksport fra Revit til Sigma
  • Sigma Revit Integration, installation af

Biblioteker

6
  • Opret et nyt bibliotek
  • Rediger dit bibliotek
  • Kopier fra Molio Prisdatabaser (tidl. V&S Prisdatabaser)
  • Opdater fra bibliotek eller prisliste
  • Molio Prisdatabaser – Introduktion
  • Stikordssøgning i Molio-prisdatabase

Diverse

28
  • Mine Sigma-dokumenter bliver ikke åbnet i Sigma
  • Løs problemet “Access violation at address…”
  • Nyt i Sigma Professional CLAIMS Scalepoint 5
  • Tastaturgenveje i Sigma
  • Tilføj prisindeks
  • Tilføj konstanter
  • Automatisk omfordeling
  • Tilføj note, kommentar eller billeder til kalkulationen
  • Sigma 6.0
  • Kør Sigma på Mac computer
  • Bogmærker
  • Nulstil rapport variable
  • Hvordan køres opskrifter på intelligente bygningsdele?
  • Hvordan arrangeres åbne Sigma dokumenter?
  • Viderefør beregninger til brug i Aconto beregning
  • Vis ressourcefordeling
  • Vis formler i indholdsskemaet
  • Ændre betegnelsen for overskrifter i beregningstræet
  • Tilføj ekstra felter/kolonner
  • Slå moms-beregningen fra
  • Udfør stavekontrol
  • Kopier mellem kolonner
  • Ombryd teksten på siden Indhold
  • Automatisk flytning til næste række
  • Sammenlign Sigma filer
  • Successiv kalkulation
  • Intelligente bygningsdele – opskrift til (SigmaScript)
  • EG Sigma Studie-pakke / EG Sigma Educational Package

Grundlæggende Sigma

17
  • Kopier fra tidligere kalkulation
  • Aktiver Sigma-licens
  • Indtastning af sociale ydelser
  • Genskab et tidligere Sigma dokument
  • Juster salgsprisen
  • Fastsæt automatisk fortjeneste (dækningsbidrag)
  • Strukturer kalkulationen
  • Indtast ressourcer
  • Opret en ny kalkulation
  • Udskriv tilbudsbreve, materialelister, mm.
  • Tjek kostpriserne
  • Brug kviksøgning
  • Salgspris via tillæg/fradrag
  • Tilføj ekstra niveau i rapporten Tilbudsbrev
  • Udskriv de samlede byggeomkostninger mm.
  • Hvordan udskrives en vist side
  • Sigma på 2 skærme

Import/Eksport

4
  • Indlæs prisliste (AO eller Brdr. Dahl)
  • Indlæs prisliste CSV
  • Indlæs prisliste med faste kolonnebredder
  • Import af tilbudsliste fra Excel

Integrationer/Apps

9
  • Eksporter til Microsoft Project
  • Eksporter til Microsoft Word
  • Sigma PlanSwift integration – Installation og aktivering
  • Sigma Excel Tender List Designer
  • Sigma Excel Tilbudsliste Designer
  • Sigma Excel Tilbudsliste Tool
  • EG Sigma Visual Administration Integration
  • EG Sigma MesterPriser
  • EG Sigma MesterPriser – Lønninger

Kom godt i gang

5
  • BIM 360: Kom godt i gang
  • Kom godt i gang med Sigma Revit Integration
  • Kom godt i gang: Arkitekt/Rådgiver
  • Kom godt i gang: Håndværker
  • Kom godt i gang: Entreprenør

LCA

11
  • Sæt kalkulation op til LCA
  • Hent generiske GWP-data
  • Hent EPD-data
  • LCA kolonner
  • Sigma LCA – Ordforklaringer
  • Bygningsdele udeladt af klimaregnskab
  • Scenarier til LCA-analyse
  • Brug af LCA-siden
  • LCA Rapport
  • Hent Levetid
  • Kom godt i gang med EG Sigma LCA Værktøj

Opsætning

15
  • Få vist flere kolonner
  • Tilføj en kategori
  • Slet en kategori
  • Udskiftning og sletning af licensnummer
  • Få Sigma til at huske nye kategorier og enheder
  • Ændring af placering af Sigmas filer
  • Fastsæt automatisk fortjeneste (dækningsbidrag)
  • Se hvilken Sigma version du har
  • Flyt dine Sigma-mapper
  • Find licensnummeret til Sigma
  • Flyt licensen til en anden computer
  • Nøgletal i banneret
  • Tilføj logo til rapporter
  • Ændre sprog i Sigma
  • Nøgletal

Release Notes

6
  • Release Notes
  • Release Notes 6.0
  • Release Notes 6.5
  • Release Notes 7.0
  • Release notes – Sigma Autodesk Integration App
  • Release notes – EG MesterData Maler 2.0
View Categories
  • Home
  • Docs
  • Diverse
  • Intelligente bygningsdele – opskrift til (SigmaScript)

Intelligente bygningsdele – opskrift til (SigmaScript)

19 min read

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 – hvis-så-ellers (kontrolstrukturer)
  • Dialog opskrift – gem og hent data
  • Dialog opskrift – layout
  • Udførelses opskrift

 

Grundbegreber og -elementer

Det er godt at kende og forstå nogle grundbegreber og -elementer, når du skriver SigmaScript-kode.

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

Variabler (variables)

Variabler er navngivne, 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. =, >, <)
–  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 de mest almindelige kontrolstrukturer if-sætninger, som bruges til at tage beslutninger baseret på betingelser.
Andre kontrolstrukturer er loops (f.eks. for-loops og while-loops, der gentager kodeblokke) og case-sætninger (bruges til at håndtere flere mulige betingelser).

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

  #

tilbage til toppen

#

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”.

klik for større billede

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
NOTE Find forklaringer til SigmaScript-funktioner og -kontrolstrukturer 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
NOTE Find forklaringer til SigmaScript-funktioner (Udførelses opskrift) 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”

klik for større billede

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

tilbage til toppen

 

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.

generelt TIP

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

 

Hel-tal

Funktionen modtager (sv.t. at brugeren indtaster) et hel-tal (eks. -1, 0, 1, 2 etc.) i den intelligente bygningsdels dialogboks.

funktion GetInteger(label: string, default value: float)
parametre label: string (krævet): ledetekst til indlæsningen

default value: float (valgfri): forvalgt værdi

eksempel Antal := GetInteger(“Indtast antal”, 1);
screenshots

klik for større billeder – ESC for afslut

 

Decimal-tal

Funktionen modtager (sv.t. at brugeren indtaster) et decimal-tal (komma-tal) i den intelligente bygningsdels dialogboks.

funktion GetFloat(label: string, default value: float)
parametre label (krævet): ledetekst til indlæsningen

default value (valgfri): forvalgt værdi

eksempel Længde := GetFloat(“Indtast længde [m]”, 1.5);
screenshots

klik for større billeder – ESC for afslut

 

Tekst, en linje

Funktionen modtager (sv.t. at brugeren indtaster) en tekst i den intelligente bygningsdels dialogboks. Indtastningsfeltet i dialogboksen er på 1 linje

funktion GetText(label: string, default value: string)
parametre label: string (krævet): ledetekst til indtastningen

default value: string (valgfri): forvalgt tekst

eksempel Navn := GetText(“Indtast bygningsdel”, “bygningsdels navn”);
screenshots

klik for større billeder – ESC for afslut

 

Tekst, flere linjer

Funktionen modtager (sv.t. at brugeren indtaster) en tekst i den intelligente bygningsdels dialogboks. Indtastningsfeltet i dialogboksen er på flere linjer.

funktion GetMemo(label: string, line count: float, default value: string, path to AutoText: string)
parametre label: string (krævet): ledetekst til indtastningen

line count: float (krævet): antal linjer i memo-feltet

default value: string (valgfri): forvalgt tekst

path to AutoText: string (valgfri): sti til fil med auto-tekster

eksempel Navn := GetText(“Indtast bygningsdel”, “bygningsdels navn”);

Beskrivelse := GetMemo(“Beskrivelse”, 5, “Her indtastes beskrivelsen”, “Autotekster\Autotekster_01”);

screenshots

klik for større billeder – ESC for afslut

 

Valg, rullemenu

Funktionen modtager (sv.t. at brugeren vælger) et valg blandt valgmuligheder i en rulle-menu (alias drop down-menu) i den intelligente bygningsdels dialogboks. Principielt kan der være uendeligt mange valgmuligheder.

OBS første valgmulighed har nummer 0, anden valgmulighed har nummer 1 osv.

funktion GetChoice(label: string, default choice: float, “choice 0”, “choice 1”, …, “choice X”)
parametre label: string (krævet): ledetekst til valg

default value: float (valgfri): forvalgt valg

choice 0: string (krævet): første valgmulighed

choice 1: string (krævet): anden valgmulighed

choice X: string (krævet): X+1’ende og sidste valgmulighed

eksempel ValgHøjde := GetChoice(“Vælg højde”, 0, “2,10 m”, “2,20 m”, “2,30 m”, “2,40 m”, “2,50 m”);
screenshots

klik for større billeder – ESC for afslut

 

Valg, knapper

Funktionen modtager (sv.t. at brugeren vælger) et valg blandt viste valgmuligheder, såkaldte “radio-knapper”, i den intelligente bygningsdels dialogboks. Principielt kan der være uendeligt mange valgmuligheder.

OBS første valgmulighed har nummer 0, anden valgmulighed har nummer 1 osv.

funktion GetRadioChoice(label: string, default choice: float, “choice 0”, “choice 1”, …, “choice X”)
parametre label: string (krævet): ledetekst til valg

default choice: float (valgfri): forvalgt valg

choice 0: string (krævet): første valgmulighed

choice 1: string (krævet): anden valgmulighed

choice X: string (krævet): X+1’ende og sidste valgmulighed

eksempel ValgOverflade := GetRadioChoice(“Vælg overflade”, 1, “Ubehandlet”, “Grundet”, “Grundet og malet”);
screenshots

klik for større billeder – ESC for afslut

 

Valg, checkboks

Funktionen modtager (sv.t. at brugeren indtaster) et til eller fravalg i form af markering i en checkboks i den intelligente bygningsdels dialogboks.

OBS fravalg svarer til 0 (false), tilvalg svarer til 1 (true).

funktion GetBoolean(label: string, default choice: float)
parametre label: string (krævet): ledetekst til indtastningen

default value: float (valgfri): forvalgt til- eller fravalg

eksempel ValgStillads := GetBoolean(“Medregn stillads”, 0);
screenshots

klik for større billeder – ESC for afslut

 

Hent data fra kolonne

Funktionen læser/henter data fra en specificeret kolonne.

Funktionen håndterer 2 data typer, tekst (String) eller tal (Float).
Det er således muligt at hente tal fra tal-kolonner, som enten tal tekst, afhængigt af hvad du skal bruge data til.

Data type: String (tekst)
funktion Self.Get[kolonne]AsString()

[kolonne] = kolonnens ID, eks. Number for Nr-kolonnen og Text for Tekst-kolonnen

parametre <No parameters required>
eksempler HentNummer := Self.GetNumberAsString();

HentTekst := Self.GetTextAsString();

HentEnhed := Self.GetUnitsAsString();

HentMængde := Self.GetQuantityAsString();

screenshots

klik for større billeder – ESC for afslut

andre kolonner Self.GetTextAsString();
Self.GetCategoryAsString();
Self.GetUnitAsString();
Self.GetQuantityAsString();
Self.GetQuantityMinAsString();
Self.GetQuantityTypAsString();
Self.GetQuantityMaxAsString();
Self.GetUnitPriceAsFloat();
Self.GetCostPriceAsString();

 

Data type: Float   (decimaltal)
funktion Self.Get[kolonne]AsFloat()

[kolonne] = kolonnens ID, eks. Number for Nr-kolonnen og Text for Tekst-kolonnen

parametre <No parameters required>
eksempler HentMængde := Self.GetQuantityAsFloat();

HentEnhedspris := Self.GetTextAsString();

HentKostpris := Self.GetUnitsAsFloat();

screenshots

klik for større billeder – ESC for afslut

andre kolonner Self.GetQuantityAsFloat();
Self.GetQuantityMinAsFloat();
Self.GetQuantityTypAsFloat();
Self.GetQuantityMaxAsFloat();
Self.GetUnitPriceAsFloat();
Self.GetCostPriceAsFloat();

 

Hent data fra ekstrafelt-kolonne

Funktionen læser/henter data fra en ekstrafelt-kolonne.

Funktionen håndterer både tekst- og tal-data.

     funktion Self.GetCustomFieldValue(id: string);
         parametre id: string (krævet): ekstrafeltets ID, som findes i ekstrafeltets egenskaber (se Ekstra felter i  båndet Data)
     eksempler HentLeverandør := Self.GetCustomFieldValue(“SUPPLIER”);

HentMængde := Self.GetQuantityAsString();

     screen shots

klik for større billeder

 

tilbage til toppen #

tilbage til toppen

#

Dialog opskrift – hvis-så-ellers   (kontrolstrukturer)

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

 

generelt TIP

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

 

Hvis-så-ellers

Kontrolstrukturen foretager en eller flere handliger, hvis en betingelse er opfyldt.

kontrolstruktur if [betingelse] then

[handling 1]

else

[handling 2]

variant if [betingelse] then
begin

[handling 1a]
[handling 1b]
…
[handling 1x]

end
else
begin

[handling 2a]
[handling 2b]
…
[handling 2x]

end;

eksempel 1 if Højre then

Sving := “til højre”;

else

Sving := “til venstre”;

screenshots

klik for større billeder – ESC for afslut

eksempel 2 if (Stillads) then
begin

DageStillads := GetInteger(“Indtast antal dage”, 1);
DagsprisStillads := GetFloat(“Indtast dagspris”, 0.00);

end
else
begin

DageStillads := 0;
DagsprisStillads := 0.00;

end;

screenshots

klik for større billeder – ESC for afslut

 

Hvis-så-ellers kaskade (nested if-then-else)

Kontrolstrukturen foretager en eller flere handliger, hvis en betingelse er opfyldt.

kontrolstruktur if [betingelse 1] then

[handling 1]

else

if [betingelse 2] then

[handling 2]

else

if [betingelse 3] then

[handling 3]

else

if [betingelse X] then

[handling X]

     variant if [betingelse 1] then
begin

[handling 1a]
[handling 1b]
…
[handling 1x]

end
else

if [betingelse 2] then
begin

[handling 2a]
[handling 2b]
…
[handling 2x]

end
else

if [betingelse 3] then
begin

[handling 3a]
[handling 3b]
…
[handling 3x]

end
else

if [betingelse X] then
begin

[handling Xa]
[handling Xb]
…
[handling Xx]

end;

eksempel 1 if (ValgOverflade = 0) then

Overflade := “ubehandlet”;

else

   if (ValgOverflade = 1) then

Overflade := “grundet”;

else

if (ValgOverflade = 2) then

Overflade := “grundet og malet”;

screenshots

klik for større billeder – ESC for afslut

eksempel 2 if (ValgHøjde = 0) then
begin

Højde := 2.10;
Væghøjde := “2100 mm”;

else

if (ValgHøjde = 1) then
begin

Højde := 2.20;
Væghøjde := “2200 mm”;

end
else

if (ValgHøjde = 2) then
begin

Højde := 2.30;
Væghøjde := “2200 mm”;

end
else

if (ValgHøjde = 3) then
begin

Højde := 2.40;
Væghøjde := “2400 mm”;

end
else

if (ValgHøjde = 4) then
begin

Højde := 2.40;
Væghøjde := “2400 mm”;

end
else

if [betingelse 3] then
begin

Højde := 2.50;
Væghøjde := “2500 mm”;

end;

screenshots

klik for større billeder – ESC for afslut

  #

tilbage til toppen​

#

Dialog opskrift – gem og hent data

Hvis data (tekst eller tal) skal gemmes, f.eks. fordi bygningsdelen skal kunne genberegnes, kan data gemmes i rapportvariable eller i konstanter.

I rapportvariabler gemmes data som tekst. Derfor skal tal fra en rapportvariabel konverteres fra tekst til tal, og muligvis også formateres, hvis tallet f.eks. skal vises med et bestemt antal decimaler.

I konstanter gemmes data som tal (og kan derfor ikke bruges til at gemme tekster!)

 

generelt TIP

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 for større billede

 

Gem i rapportvariabel

Funktionen gemmer tekst (eller tal i form af tekst – se variant) i en rapportvariabel

Tekst
funktion Projekt.SetReportVariable(name: string, text: string)
parametre name: string (krævet): fast tekst angivet i anførselstegn (rapportvariablens navn)

text: string (krævet): variabel-navn (eller en fast tekst angivet i anførselstegn)

eksempel Projekt.SetReportVariable(“Bygningsdelsnavn”, Navn);
screenshot


klik for større billeder – ESC for afslut

 

Tal   (som tekst)
variant Projekt.SetReportVariable(name: string, text: string)
parametre name: string (krævet): fast tekst angivet i anførselstegn (rapportvariablens navn)

text: string (krævet): tekst-streng som indeholder både formatering (FormatFloat) og navnet på den variabel, som indholder tallet, der skal gemmes (tekst angivet i anførselstegn)

eksempel Projekt.SetReportVariable(“Længde”, FormatFloat(“#,##0.00”, Længde));
screenshot

klik for større billeder – ESC for afslut

 

Hent fra rapportvariabel

Funktionen henter tekst i en rapportvariabel.
Hvis rapportvariablen indholder et tal i form af en tekst, skal teksten konverteres til et tal, vha. funktionen StrToFloat.

Tekst
funktion Projekt.GetReportVariable(name: string)
parametre name: string (krævet): fast tekst angivet i anførselstegn (rapportvariablens navn)
eksempel 1 Bygningsdel := Projekt.GetReportVariable(“Bygningsdelsnavn”);
eksempel 2 Bygningsdel := GetText(“Indtast navn på bygningsdel”, Project.GetReportVariable(“Bygningsdel”));
screenshot

klik for større billeder – ESC for afslut

 

Tal, konverteret fra en tekst
funktion StrToFloat(text: string)
parametre text: string (krævet): i denne kontekst teksten gemt i rapportvariablen
eksempel 1 Længde := StrToFloat(Projekt.GetReportVariable(“Længde”);
eksempel 2 Højde := GetFloat(“Indtast højde [m]”, StrToFloat(Project.GetReportVariable(“Højde”)));
screenshot

klik for større billeder – ESC for afslut

 

Gem i konstant

Funktionen gemmer data (i form af tal) i en konstant

funktion Projekt.SetConstant(name: string, value: float)
parametre name: string (krævet): fast tekst angivet i anførselstegn (rapportvariablens navn)

value: float (krævet): værdi (eller variabel-navn)

eksempel 1 Projekt.SetConstant(“Antal”, 2);
eksempel 2 Projekt.SetConstant(“Højde”, Højde);
screenshots

klik for større billeder – ESC for afslut

 

Hent fra konstant

Funktionen henter data (i form af tal) fra en konstant

funktion Projekt.GetConstant(name: string)
parametre name: string (krævet): fast tekst angivet i anførselstegn (konstantens navn)
eksempel Projekt.GetConstant(“Bygningsdelsnavn”)
screenshots

klik for større billeder – ESC for afslut

 

Konverter tekst til tal

Funktionen konverterer data fra tekst til tal

funktion StrToFloat(text: string)
parametre text: string (krævet): fast tekst angivet i anførselstegn (eller en hentet rapportvariabel)
eksempel 1 StrToFloat(“100”);
eksempel 2 StrToFloat(Projekt.SetReportVariable(“Længde”);
screenshots

klik for større billeder – ESC for afslut

 

funktion StrToFloat(text: string)
parametre text: string (krævet): i denne kontekst teksten gemt i rapportvariablen
eksempel 1 Længde := StrToFloat(Projekt.GetReportVariable(“Længde”);
eksempel 2 Højde := GetFloat(“Indtast højde [m]”, StrToFloat(Project.GetReportVariable(“Højde”)));
screenshot

klik for større billeder – ESC for afslut

 

Formater tekst som tal

Funktionen formaterer en talværdi

funktion Format(format: string, value: float)
parametre format: string (krævet): formattering i form af en tekst angivet i anførselstegn.
– 0 er en cifferpladsholder. Hvis der er et tilsvarende ciffer i værdien, erstattes 0 med det ciffer. Hvis ikke, efterlades 0 som det er.
– # er også en cifferpladsholder. Hvis der er et tilsvarende ciffer i værdien, erstattes # med det ciffer. Hvis ikke, fjernes det.
– . (punktum) bestemmer placeringen af decimaltegnet (decimalkommaet)
– , (komma) bestemmer brugen af tusindtalsseparator i outputstrengen. Hvis formatstrengen indeholder et eller flere ‘,’ tegn, bruges tusindtalsseparatorer.value: float (krævet): værdi (eller varialbel-navn – eller hentet og konverteret rapport-variabel)
eksempel 1 Format(“#,##0.00”, 10000)
eksempel 2 Format(“0.000”, “Længde”)
eksempel 3 Format(“#,###,##0.00”, StrToFloat(Projekt.GetReportVariable(“Højde”));
screenshots

klik for større billeder – ESC for afslut

  #

tilbage til toppen

​

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.

klik for større billede

 

generelt TIP

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 for større billede

 

Størrelse på intelligent bygningsdels dialogboks

Funktionen styrer højde og bredde på den intelligente bygningsdels dialogboks.

funktion SetWindowSize(height: float, width: float)

NB der er byttet rundt på height og width:
– 1. parameter er bredde
– 2. parameter er højde 

parametre height: float (krævet): “højde” (bredde) i pixels

width: float (krævet): “bredde” (højde) i pixels

eksempel SetWindowSize(1000, 400);
screenshots

klik for større billeder – ESC for afslut

 

Label start

Funktionen styrer hvor label-kolonnen starter, regnet i pixels fra venstre.

funktion SetLabelStart(value:float)
parametre value: float (krævet): afstand i pixels, fra “position” 0
eksempel SetLabelStart(10);
screenshots

klik for større billeder – ESC for afslut

 

Label bredde

Funktionen styrer bredden af label-kolonne, regnet i pixels.

funktion SetLabelWidth(value:float)
parametre value: float (krævet): bredde i pixels, fra Label Start
eksempel SetLabelStart(100);
screenshots

klik for større billeder – ESC for afslut

 

Control bredde

Funktionen styrer bredden af control-kolonne, regnet i pixels fra hvor label-kolonnen slutter.

funktion SetControlWidth(value:float)
parametre value: float (krævet): bredde i pixels, fra Label Start
eksempel SetLabelStart(100);
screenshots

klik for større billeder – ESC for afslut

 

Reset Label bredde

Funktionen sætter bredden af label-kolonne tilbage til standard bredde (175 pixels).

funktion ResetLabelWidth()
parametre <No parameters required>
eksempel ResetLabelStart();
screenshots

klik for større billeder – ESC for afslut

 

Reset Control bredde

Funktionen sætter bredden af control-kolonne tilbage til standard bredde  (200 pixels).

funktion ResetControlWidth()
parametre <No parameters required>
eksempel ResetControlStart();
screenshots

klik for større billeder – ESC for afslut

 

Control justering

Funktionen styrer placering af tekst, tal, input i control-kolonne, om det skal står centreret, venstre- eller højrejusteret.

Højre-justeret bruges typisk, hvis der står tal i control-kolonnen.
Venstre-justeret bruges typisk, hvis der står tekst i control-kolonnen.

funktion SetControAlignment(value: string)
parametre value: string (krævet): “Right”, “Center” eller “Left”
eksempel SetControlAlignment(“Left”);
SetControlAlignment(“Right”);
SetControlAlignment(“Center”);
screenshots

klik for større billeder – ESC for afslut

 

Overskrift

Funktionen styrer bredden af control-kolonne, regnet i pixels fra hvor label-kolonnen slutter.

funktion AddHeader(value:string)
parametre value: string (krævet): overskrift-teksten
eksempel AddHeader(“Stillads”);
screenshots

klik for større billeder – ESC for afslut

 

Side med sidefane

Funktionen styrer bredden af control-kolonne, regnet i pixels fra hvor label-kolonnen slutter.

funktion parametre AddPage(value:string)
parametre value: string (krævet): navn på side
eksempel AddPage(“Indtastning”);
screenshots

klik for større billeder – ESC for afslut

 

Kommentar

Funktionen styrer bredden af control-kolonne, regnet i pixels fra hvor label-kolonnen slutter.

funktion UseComment(value: string)
parametre value: string (krævet): kommentar-tekst
eksempel UseComment(“Ydervæg”);
screenshots

klik for større billeder – ESC for afslut

 

Vis tekst

Der er 2 funktioner til at vise tekst:

  • AddText, indsætter tekst i label-kolonnen,
  • ShowText, benytter både label- og control-kolonnen.

 

funktion AddText(value: string)
parametre value: string (krævet): teksten der skal vises
eksempel AddText(“Væggens areal er ” + Areal + ” kvadratmeter”);
screenshots

klik for større billeder – ESC for afslut

 

funktion ShowText(value: string, value: string)
parametre value: string (krævet): teksten der skal vises
eksempel ShowText(“Væggens areal er “, “” + Areal + ” m2″);
screenshots

klik for større billeder – ESC for afslut

 

Vis billede

Der er 2 funktioner til at vise et billede:

  • AddImage, indsætter billede i control-kolonnen (og beskrivelse i label-kolonnen)
  • UseImage, benytter en kolonne til ventre for label-kolonnen

 

funktion AddImage(image: string, width: float, height: float)
parametre image: string (krævet): teksten der skal vises

width: float (valgfri): bredde i pixels

height: float (valgfri): højde i pixels

eksempel AddImage(“Kontorbygning”, “Office Building”, 200, 100);
screenshots

klik for større billeder – ESC for afslut

 

funktion UseImage(image: string, width: float, height: float)
parametre image: string (krævet): teksten der skal vises

width: float (valgfri): bredde i pixels

height: float (valgfri): højde i pixels

eksempel UseImage(“Kontorbygning”, 300, 200);
screenshots

klik for større billeder – ESC for afslut

  #

tilbage til toppen

 

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.

 

generelt TIP

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 for større billede

 

skriv i Tekst-feltet

Funktionen skriver i Tekst-feltet for den valgte komponent.
Hvis den intelligente bygningsdel har flere niveauer, kan funktionen bruges uafhængigt på hoved- og underkomponenter.

funktion Self.SetText(value: string)
parametre value: string (krævet): variabel-navn (eller en fast tekst angivet i anførselstegn)
variant Self.SetText(value: float)
parametre value: float (krævet): variabel-navn (eller en fast værdi)
eksempel 1 – variabelnavn Self.SetNumber(Bygningsdel);
eksempel 2 – fast tekst Self.SetNumber(“Navn”);
eksempel 3 – fast værdi Self.SetNumber(10);
screenshots

klik for større billeder – ESC for afslut

 

skriv i Nummer-feltet

Funktionen skriver i Nummer-feltet for den valgte komponent.
Hvis den intelligente bygningsdel har flere niveauer, kan funktionen bruges uafhængigt på hoved- og underkomponenter.

funktion Self.SetNumber(value: string)
parametre value: string (krævet): variabel-navn (eller en fast tekst angivet i anførselstegn)
variant Self.SetNumber(value: float)
parametre value: float (krævet): variabel-navn (eller en fast værdi)
eksempel 1 – variabelnavn Self.SetNumber(varenummer);
eksempel 2 – fast tekst Self.SetNumber(“3610000039”);
eksempel 3 – fast værdi Self.SetNumber(10);
screenshots

klik for større billeder – ESC for afslut

 

skriv i Kategori-feltet

Funktionen skriver i Kategori-feltet for den valgte komponent.
Hvis den intelligente bygningsdel har flere niveauer, kan funktionen bruges uafhængigt på hoved- og underkomponenter.

funktion Self.SetCategori(value: string)
parametre value: string (krævet): variabel-navn (eller en fast tekst angivet i anførselstegn)
variant Self.SetCategori(value: float)
parametre value: float (krævet): variabel-navn (eller en fast værdi)
eksempel 1 – variabelnavn Self.SetCategori(Kategori);
eksempel 2 – fast tekst Self.SetCategori(“Materialer”);
eksempel 3 – fast værdi Self.SetCategori(10);
screenshots

klik for større billeder – ESC for afslut

 

skriv i Enhed-feltet

Funktionen skriver i Enhed-feltet for den valgte komponent.
Hvis den intelligente bygningsdel har flere niveauer, kan funktionen bruges uafhængigt på hoved- og underkomponenter.

funktion Self.SetUnits(value: string)
parametre value: string (krævet): variabel-navn (eller en fast tekst angivet i anførselstegn)
variant Self.SetUnits(value: float)
parametre value: float (krævet): variabel-navn (eller en fast værdi)
eksempel 1 – variabelnavn Self.SetUnits(Enhed);
eksempel 2 – fast tekst Self.SetUnits(“liter”);
eksempel 3 – fast værdi Self.SetUnits(10);
screenshots

klik for større billeder – ESC for afslut

 

skriv i Mængde-feltet

Funktionen skriver i Mængde-feltet for den valgte komponent.
Hvis den intelligente bygningsdel har flere niveauer, kan funktionen bruges uafhængigt på hoved- og underkomponenter.

funktion Self.SetQuantity(value: float)
parametre value: float (krævet): variabel-navn (eller en fast værdi)
eksempel 1 – variabelnavn Self.SetQuantity(Areal);
eksempel 2 – fast tekst Self.SetQuantity(25);
screenshots

klik for større billeder – ESC for afslut

 

skriv i Enhedspris-feltet

Funktionen skriver i Mængde-feltet for den valgte komponent.
Hvis den intelligente bygningsdel har flere niveauer, kan funktionen bruges uafhængigt på hoved- og underkomponenter.

funktion Self.SetUnitPrice(value: float)
parametre value: float (krævet): variabel-navn (eller en fast værdi)
eksempel 1 – variabelnavn Self.SetUnitPrice(Enhedspris);
eksempel 2 – fast tekst Self.SetUnitPrice(25);
screenshots

klik for større billeder – ESC for afslut

 

skriv i Prisregulering-feltet

Funktionen skriver i Mængde-feltet for den valgte komponent.
Hvis den intelligente bygningsdel har flere niveauer, kan funktionen bruges uafhængigt på hoved- og underkomponenter.

funktion Self.SetRegulation(value: float)
parametre value: float (krævet): variabel-navn (eller en fast værdi)
eksempel 1 – variabelnavn Self.SetRegulation(Prisregulering);
eksempel 2 – fast tekst Self.SetCostPrice(0.8);
screenshots

klik for større billeder – ESC for afslut

 

skriv i ektrafelt

Funktionen skriver i et ekstrafelt for den valgte komponent.
Hvis den intelligente bygningsdel har flere niveauer, kan funktionen bruges uafhængigt på hoved- og underkomponenter.

funktion Self.SetCustomFieldValue(id: string, text: string)
parametre value: string (krævet): variabel-navn (eller en fast tekst angivet i anførselstegn)
eksempel Self.SetCustomFieldValue(“SUPPLIER”, Leverandør);
screenshots

klik for større billeder – ESC for afslut

 

funktion Self.SetCustomFieldValue(id: string, value: float)
parametre value: float (krævet): variabel-navn (eller en fast værdi)
eksempel Self.SetCustomFieldValue(“Vgtprenhed”, Vægt);
screenshots

klik for større billeder – ESC for afslut

#

tilbage til toppen

#

 

 

Updated on July 5, 2024

What are your Feelings

  • Happy
  • Normal
  • Sad

Share This Article :

  • Facebook
  • X
  • LinkedIn
  • Pinterest
Successiv kalkulationEG Sigma Studie-pakke / EG Sigma Educational Package
Table of Contents
  • Grundbegreber og -elementer Det er godt at kende og forstå nogle grundbegreber og -elementer, når du skriver SigmaScript-kode. 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 Variabler (variables) Variabler er navngivne, 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. =, >,
  • Tilføj / rediger opskrift (SigmaScript) på bygningsdel
  • 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. generelt TIP 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   Hel-tal Funktionen modtager (sv.t. at brugeren indtaster) et hel-tal (eks. -1, 0, 1, 2 etc.) i den intelligente bygningsdels dialogboks. funktion GetInteger(label: string, default value: float) parametre label: string (krævet): ledetekst til indlæsningen default value: float (valgfri): forvalgt værdi eksempel Antal := GetInteger("Indtast antal", 1); screenshots klik for større billeder - ESC for afslut   Decimal-tal Funktionen modtager (sv.t. at brugeren indtaster) et decimal-tal (komma-tal) i den intelligente bygningsdels dialogboks. funktion GetFloat(label: string, default value: float) parametre label (krævet): ledetekst til indlæsningen default value (valgfri): forvalgt værdi eksempel Længde := GetFloat("Indtast længde [m]", 1.5); screenshots klik for større billeder - ESC for afslut   Tekst, en linje Funktionen modtager (sv.t. at brugeren indtaster) en tekst i den intelligente bygningsdels dialogboks. Indtastningsfeltet i dialogboksen er på 1 linje funktion GetText(label: string, default value: string) parametre label: string (krævet): ledetekst til indtastningen default value: string (valgfri): forvalgt tekst eksempel Navn := GetText("Indtast bygningsdel", "bygningsdels navn"); screenshots klik for større billeder - ESC for afslut   Tekst, flere linjer Funktionen modtager (sv.t. at brugeren indtaster) en tekst i den intelligente bygningsdels dialogboks. Indtastningsfeltet i dialogboksen er på flere linjer. funktion GetMemo(label: string, line count: float, default value: string, path to AutoText: string) parametre label: string (krævet): ledetekst til indtastningen line count: float (krævet): antal linjer i memo-feltet default value: string (valgfri): forvalgt tekst path to AutoText: string (valgfri): sti til fil med auto-tekster eksempel Navn := GetText("Indtast bygningsdel", "bygningsdels navn"); Beskrivelse := GetMemo("Beskrivelse", 5, "Her indtastes beskrivelsen", "Autotekster\Autotekster_01"); screenshots klik for større billeder - ESC for afslut   Valg, rullemenu Funktionen modtager (sv.t. at brugeren vælger) et valg blandt valgmuligheder i en rulle-menu (alias drop down-menu) i den intelligente bygningsdels dialogboks. Principielt kan der være uendeligt mange valgmuligheder. OBS første valgmulighed har nummer 0, anden valgmulighed har nummer 1 osv. funktion GetChoice(label: string, default choice: float, "choice 0", "choice 1", ..., "choice X") parametre label: string (krævet): ledetekst til valg default value: float (valgfri): forvalgt valg choice 0: string (krævet): første valgmulighed choice 1: string (krævet): anden valgmulighed choice X: string (krævet): X+1'ende og sidste valgmulighed eksempel ValgHøjde := GetChoice("Vælg højde", 0, "2,10 m", "2,20 m", "2,30 m", "2,40 m", "2,50 m"); screenshots klik for større billeder - ESC for afslut   Valg, knapper Funktionen modtager (sv.t. at brugeren vælger) et valg blandt viste valgmuligheder, såkaldte "radio-knapper", i den intelligente bygningsdels dialogboks. Principielt kan der være uendeligt mange valgmuligheder. OBS første valgmulighed har nummer 0, anden valgmulighed har nummer 1 osv. funktion GetRadioChoice(label: string, default choice: float, "choice 0", "choice 1", ..., "choice X") parametre label: string (krævet): ledetekst til valg default choice: float (valgfri): forvalgt valg choice 0: string (krævet): første valgmulighed choice 1: string (krævet): anden valgmulighed choice X: string (krævet): X+1'ende og sidste valgmulighed eksempel ValgOverflade := GetRadioChoice("Vælg overflade", 1, "Ubehandlet", "Grundet", "Grundet og malet"); screenshots klik for større billeder - ESC for afslut   Valg, checkboks Funktionen modtager (sv.t. at brugeren indtaster) et til eller fravalg i form af markering i en checkboks i den intelligente bygningsdels dialogboks. OBS fravalg svarer til 0 (false), tilvalg svarer til 1 (true). funktion GetBoolean(label: string, default choice: float) parametre label: string (krævet): ledetekst til indtastningen default value: float (valgfri): forvalgt til- eller fravalg eksempel ValgStillads := GetBoolean("Medregn stillads", 0); screenshots klik for større billeder - ESC for afslut   Hent data fra kolonne Funktionen læser/henter data fra en specificeret kolonne. Funktionen håndterer 2 data typer, tekst (String) eller tal (Float). Det er således muligt at hente tal fra tal-kolonner, som enten tal tekst, afhængigt af hvad du skal bruge data til. Data type: String (tekst) funktion Self.Get[kolonne]AsString() [kolonne] = kolonnens ID, eks. Number for Nr-kolonnen og Text for Tekst-kolonnen parametre eksempler HentNummer := Self.GetNumberAsString(); HentTekst := Self.GetTextAsString(); HentEnhed := Self.GetUnitsAsString(); HentMængde := Self.GetQuantityAsString(); screenshots klik for større billeder - ESC for afslut andre kolonner Self.GetTextAsString(); Self.GetCategoryAsString(); Self.GetUnitAsString(); Self.GetQuantityAsString(); Self.GetQuantityMinAsString(); Self.GetQuantityTypAsString(); Self.GetQuantityMaxAsString(); Self.GetUnitPriceAsFloat(); Self.GetCostPriceAsString();   Data type: Float   (decimaltal) funktion Self.Get[kolonne]AsFloat() [kolonne] = kolonnens ID, eks. Number for Nr-kolonnen og Text for Tekst-kolonnen parametre eksempler HentMængde := Self.GetQuantityAsFloat(); HentEnhedspris := Self.GetTextAsString(); HentKostpris := Self.GetUnitsAsFloat(); screenshots klik for større billeder - ESC for afslut andre kolonner Self.GetQuantityAsFloat(); Self.GetQuantityMinAsFloat(); Self.GetQuantityTypAsFloat(); Self.GetQuantityMaxAsFloat(); Self.GetUnitPriceAsFloat(); Self.GetCostPriceAsFloat();   Hent data fra ekstrafelt-kolonne Funktionen læser/henter data fra en ekstrafelt-kolonne. Funktionen håndterer både tekst- og tal-data.      funktion Self.GetCustomFieldValue(id: string);          parametre id: string (krævet): ekstrafeltets ID, som findes i ekstrafeltets egenskaber (se Ekstra felter i  båndet Data)      eksempler HentLeverandør := Self.GetCustomFieldValue("SUPPLIER"); HentMængde := Self.GetQuantityAsString();      screen shots klik for større billeder   tilbage til toppen
  • Dialog opskrift - hvis-så-ellers   (kontrolstrukturer) 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   generelt TIP 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   Hvis-så-ellers Kontrolstrukturen foretager en eller flere handliger, hvis en betingelse er opfyldt. kontrolstruktur if [betingelse] then [handling 1] else [handling 2] variant if [betingelse] then begin [handling 1a] [handling 1b] ... [handling 1x] end else begin [handling 2a] [handling 2b] ... [handling 2x] end; eksempel 1 if Højre then Sving := "til højre"; else Sving := "til venstre"; screenshots klik for større billeder - ESC for afslut eksempel 2 if (Stillads) then begin DageStillads := GetInteger("Indtast antal dage", 1); DagsprisStillads := GetFloat("Indtast dagspris", 0.00); end else begin DageStillads := 0; DagsprisStillads := 0.00; end; screenshots klik for større billeder - ESC for afslut   Hvis-så-ellers kaskade (nested if-then-else) Kontrolstrukturen foretager en eller flere handliger, hvis en betingelse er opfyldt. kontrolstruktur if [betingelse 1] then [handling 1] else if [betingelse 2] then [handling 2] else if [betingelse 3] then [handling 3] else if [betingelse X] then [handling X]      variant if [betingelse 1] then begin [handling 1a] [handling 1b] ... [handling 1x] end else if [betingelse 2] then begin [handling 2a] [handling 2b] ... [handling 2x] end else if [betingelse 3] then begin [handling 3a] [handling 3b] ... [handling 3x] end else if [betingelse X] then begin [handling Xa] [handling Xb] ... [handling Xx] end; eksempel 1 if (ValgOverflade = 0) then Overflade := "ubehandlet"; else    if (ValgOverflade = 1) then Overflade := "grundet"; else if (ValgOverflade = 2) then Overflade := "grundet og malet"; screenshots klik for større billeder - ESC for afslut eksempel 2 if (ValgHøjde = 0) then begin Højde := 2.10; Væghøjde := "2100 mm"; else if (ValgHøjde = 1) then begin Højde := 2.20; Væghøjde := "2200 mm"; end else if (ValgHøjde = 2) then begin Højde := 2.30; Væghøjde := "2200 mm"; end else if (ValgHøjde = 3) then begin Højde := 2.40; Væghøjde := "2400 mm"; end else if (ValgHøjde = 4) then begin Højde := 2.40; Væghøjde := "2400 mm"; end else if [betingelse 3] then begin Højde := 2.50; Væghøjde := "2500 mm"; end; screenshots klik for større billeder - ESC for afslut  
  • Dialog opskrift - gem og hent data Hvis data (tekst eller tal) skal gemmes, f.eks. fordi bygningsdelen skal kunne genberegnes, kan data gemmes i rapportvariable eller i konstanter. I rapportvariabler gemmes data som tekst. Derfor skal tal fra en rapportvariabel konverteres fra tekst til tal, og muligvis også formateres, hvis tallet f.eks. skal vises med et bestemt antal decimaler. I konstanter gemmes data som tal (og kan derfor ikke bruges til at gemme tekster!)   generelt TIP 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 for større billede   Gem i rapportvariabel Funktionen gemmer tekst (eller tal i form af tekst - se variant) i en rapportvariabel Tekst funktion Projekt.SetReportVariable(name: string, text: string) parametre name: string (krævet): fast tekst angivet i anførselstegn (rapportvariablens navn) text: string (krævet): variabel-navn (eller en fast tekst angivet i anførselstegn) eksempel Projekt.SetReportVariable("Bygningsdelsnavn", Navn); screenshot klik for større billeder - ESC for afslut   Tal   (som tekst) variant Projekt.SetReportVariable(name: string, text: string) parametre name: string (krævet): fast tekst angivet i anførselstegn (rapportvariablens navn) text: string (krævet): tekst-streng som indeholder både formatering (FormatFloat) og navnet på den variabel, som indholder tallet, der skal gemmes (tekst angivet i anførselstegn) eksempel Projekt.SetReportVariable("Længde", FormatFloat("#,##0.00", Længde)); screenshot klik for større billeder - ESC for afslut   Hent fra rapportvariabel Funktionen henter tekst i en rapportvariabel. Hvis rapportvariablen indholder et tal i form af en tekst, skal teksten konverteres til et tal, vha. funktionen StrToFloat. Tekst funktion Projekt.GetReportVariable(name: string) parametre name: string (krævet): fast tekst angivet i anførselstegn (rapportvariablens navn) eksempel 1 Bygningsdel := Projekt.GetReportVariable("Bygningsdelsnavn"); eksempel 2 Bygningsdel := GetText("Indtast navn på bygningsdel", Project.GetReportVariable("Bygningsdel")); screenshot klik for større billeder - ESC for afslut   Tal, konverteret fra en tekst funktion StrToFloat(text: string) parametre text: string (krævet): i denne kontekst teksten gemt i rapportvariablen eksempel 1 Længde := StrToFloat(Projekt.GetReportVariable("Længde"); eksempel 2 Højde := GetFloat("Indtast højde [m]", StrToFloat(Project.GetReportVariable("Højde"))); screenshot klik for større billeder - ESC for afslut   Gem i konstant Funktionen gemmer data (i form af tal) i en konstant funktion Projekt.SetConstant(name: string, value: float) parametre name: string (krævet): fast tekst angivet i anførselstegn (rapportvariablens navn) value: float (krævet): værdi (eller variabel-navn) eksempel 1 Projekt.SetConstant("Antal", 2); eksempel 2 Projekt.SetConstant("Højde", Højde); screenshots klik for større billeder - ESC for afslut   Hent fra konstant Funktionen henter data (i form af tal) fra en konstant funktion Projekt.GetConstant(name: string) parametre name: string (krævet): fast tekst angivet i anførselstegn (konstantens navn) eksempel Projekt.GetConstant("Bygningsdelsnavn") screenshots klik for større billeder - ESC for afslut   Konverter tekst til tal Funktionen konverterer data fra tekst til tal funktion StrToFloat(text: string) parametre text: string (krævet): fast tekst angivet i anførselstegn (eller en hentet rapportvariabel) eksempel 1 StrToFloat("100"); eksempel 2 StrToFloat(Projekt.SetReportVariable("Længde"); screenshots klik for større billeder - ESC for afslut   funktion StrToFloat(text: string) parametre text: string (krævet): i denne kontekst teksten gemt i rapportvariablen eksempel 1 Længde := StrToFloat(Projekt.GetReportVariable("Længde"); eksempel 2 Højde := GetFloat("Indtast højde [m]", StrToFloat(Project.GetReportVariable("Højde"))); screenshot klik for større billeder - ESC for afslut   Formater tekst som tal Funktionen formaterer en talværdi funktion Format(format: string, value: float) parametre format: string (krævet): formattering i form af en tekst angivet i anførselstegn. - 0 er en cifferpladsholder. Hvis der er et tilsvarende ciffer i værdien, erstattes 0 med det ciffer. Hvis ikke, efterlades 0 som det er. - # er også en cifferpladsholder. Hvis der er et tilsvarende ciffer i værdien, erstattes # med det ciffer. Hvis ikke, fjernes det. - . (punktum) bestemmer placeringen af decimaltegnet (decimalkommaet) - , (komma) bestemmer brugen af tusindtalsseparator i outputstrengen. Hvis formatstrengen indeholder et eller flere ',' tegn, bruges tusindtalsseparatorer.value: float (krævet): værdi (eller varialbel-navn - eller hentet og konverteret rapport-variabel) eksempel 1 Format("#,##0.00", 10000) eksempel 2 Format("0.000", "Længde") eksempel 3 Format("#,###,##0.00", StrToFloat(Projekt.GetReportVariable("Højde")); screenshots klik for større billeder - ESC for afslut  
  • 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. klik for større billede   generelt TIP 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 for større billede   Størrelse på intelligent bygningsdels dialogboks Funktionen styrer højde og bredde på den intelligente bygningsdels dialogboks. funktion SetWindowSize(height: float, width: float) NB der er byttet rundt på height og width: - 1. parameter er bredde - 2. parameter er højde  parametre height: float (krævet): "højde" (bredde) i pixels width: float (krævet): "bredde" (højde) i pixels eksempel SetWindowSize(1000, 400); screenshots klik for større billeder - ESC for afslut   Label start Funktionen styrer hvor label-kolonnen starter, regnet i pixels fra venstre. funktion SetLabelStart(value:float) parametre value: float (krævet): afstand i pixels, fra "position" 0 eksempel SetLabelStart(10); screenshots klik for større billeder - ESC for afslut   Label bredde Funktionen styrer bredden af label-kolonne, regnet i pixels. funktion SetLabelWidth(value:float) parametre value: float (krævet): bredde i pixels, fra Label Start eksempel SetLabelStart(100); screenshots klik for større billeder - ESC for afslut   Control bredde Funktionen styrer bredden af control-kolonne, regnet i pixels fra hvor label-kolonnen slutter. funktion SetControlWidth(value:float) parametre value: float (krævet): bredde i pixels, fra Label Start eksempel SetLabelStart(100); screenshots klik for større billeder - ESC for afslut   Reset Label bredde Funktionen sætter bredden af label-kolonne tilbage til standard bredde (175 pixels). funktion ResetLabelWidth() parametre eksempel ResetLabelStart(); screenshots klik for større billeder - ESC for afslut   Reset Control bredde Funktionen sætter bredden af control-kolonne tilbage til standard bredde  (200 pixels). funktion ResetControlWidth() parametre eksempel ResetControlStart(); screenshots klik for større billeder - ESC for afslut   Control justering Funktionen styrer placering af tekst, tal, input i control-kolonne, om det skal står centreret, venstre- eller højrejusteret. Højre-justeret bruges typisk, hvis der står tal i control-kolonnen. Venstre-justeret bruges typisk, hvis der står tekst i control-kolonnen. funktion SetControAlignment(value: string) parametre value: string (krævet): "Right", "Center" eller "Left" eksempel SetControlAlignment("Left"); SetControlAlignment("Right"); SetControlAlignment("Center"); screenshots klik for større billeder - ESC for afslut   Overskrift Funktionen styrer bredden af control-kolonne, regnet i pixels fra hvor label-kolonnen slutter. funktion AddHeader(value:string) parametre value: string (krævet): overskrift-teksten eksempel AddHeader("Stillads"); screenshots klik for større billeder - ESC for afslut   Side med sidefane Funktionen styrer bredden af control-kolonne, regnet i pixels fra hvor label-kolonnen slutter. funktion parametre AddPage(value:string) parametre value: string (krævet): navn på side eksempel AddPage("Indtastning"); screenshots klik for større billeder - ESC for afslut   Kommentar Funktionen styrer bredden af control-kolonne, regnet i pixels fra hvor label-kolonnen slutter. funktion UseComment(value: string) parametre value: string (krævet): kommentar-tekst eksempel UseComment("Ydervæg"); screenshots klik for større billeder - ESC for afslut   Vis tekst Der er 2 funktioner til at vise tekst: AddText, indsætter tekst i label-kolonnen, ShowText, benytter både label- og control-kolonnen.   funktion AddText(value: string) parametre value: string (krævet): teksten der skal vises eksempel AddText(“Væggens areal er ” + Areal + ” kvadratmeter”); screenshots klik for større billeder - ESC for afslut   funktion ShowText(value: string, value: string) parametre value: string (krævet): teksten der skal vises eksempel ShowText(“Væggens areal er “, “” + Areal + ” m2″); screenshots klik for større billeder - ESC for afslut   Vis billede Der er 2 funktioner til at vise et billede: AddImage, indsætter billede i control-kolonnen (og beskrivelse i label-kolonnen) UseImage, benytter en kolonne til ventre for label-kolonnen   funktion AddImage(image: string, width: float, height: float) parametre image: string (krævet): teksten der skal vises width: float (valgfri): bredde i pixels height: float (valgfri): højde i pixels eksempel AddImage("Kontorbygning", "Office Building", 200, 100); screenshots klik for større billeder - ESC for afslut   funktion UseImage(image: string, width: float, height: float) parametre image: string (krævet): teksten der skal vises width: float (valgfri): bredde i pixels height: float (valgfri): højde i pixels eksempel UseImage("Kontorbygning", 300, 200); screenshots klik for større billeder - ESC for afslut  
  • 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.   generelt TIP 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 for større billede   skriv i Tekst-feltet Funktionen skriver i Tekst-feltet for den valgte komponent. Hvis den intelligente bygningsdel har flere niveauer, kan funktionen bruges uafhængigt på hoved- og underkomponenter. funktion Self.SetText(value: string) parametre value: string (krævet): variabel-navn (eller en fast tekst angivet i anførselstegn) variant Self.SetText(value: float) parametre value: float (krævet): variabel-navn (eller en fast værdi) eksempel 1 - variabelnavn Self.SetNumber(Bygningsdel); eksempel 2 - fast tekst Self.SetNumber("Navn"); eksempel 3 - fast værdi Self.SetNumber(10); screenshots klik for større billeder - ESC for afslut   skriv i Nummer-feltet Funktionen skriver i Nummer-feltet for den valgte komponent. Hvis den intelligente bygningsdel har flere niveauer, kan funktionen bruges uafhængigt på hoved- og underkomponenter. funktion Self.SetNumber(value: string) parametre value: string (krævet): variabel-navn (eller en fast tekst angivet i anførselstegn) variant Self.SetNumber(value: float) parametre value: float (krævet): variabel-navn (eller en fast værdi) eksempel 1 - variabelnavn Self.SetNumber(varenummer); eksempel 2 - fast tekst Self.SetNumber("3610000039"); eksempel 3 - fast værdi Self.SetNumber(10); screenshots klik for større billeder - ESC for afslut   skriv i Kategori-feltet Funktionen skriver i Kategori-feltet for den valgte komponent. Hvis den intelligente bygningsdel har flere niveauer, kan funktionen bruges uafhængigt på hoved- og underkomponenter. funktion Self.SetCategori(value: string) parametre value: string (krævet): variabel-navn (eller en fast tekst angivet i anførselstegn) variant Self.SetCategori(value: float) parametre value: float (krævet): variabel-navn (eller en fast værdi) eksempel 1 - variabelnavn Self.SetCategori(Kategori); eksempel 2 - fast tekst Self.SetCategori("Materialer"); eksempel 3 - fast værdi Self.SetCategori(10); screenshots klik for større billeder - ESC for afslut   skriv i Enhed-feltet Funktionen skriver i Enhed-feltet for den valgte komponent. Hvis den intelligente bygningsdel har flere niveauer, kan funktionen bruges uafhængigt på hoved- og underkomponenter. funktion Self.SetUnits(value: string) parametre value: string (krævet): variabel-navn (eller en fast tekst angivet i anførselstegn) variant Self.SetUnits(value: float) parametre value: float (krævet): variabel-navn (eller en fast værdi) eksempel 1 - variabelnavn Self.SetUnits(Enhed); eksempel 2 - fast tekst Self.SetUnits("liter"); eksempel 3 - fast værdi Self.SetUnits(10); screenshots klik for større billeder - ESC for afslut   skriv i Mængde-feltet Funktionen skriver i Mængde-feltet for den valgte komponent. Hvis den intelligente bygningsdel har flere niveauer, kan funktionen bruges uafhængigt på hoved- og underkomponenter. funktion Self.SetQuantity(value: float) parametre value: float (krævet): variabel-navn (eller en fast værdi) eksempel 1 - variabelnavn Self.SetQuantity(Areal); eksempel 2 - fast tekst Self.SetQuantity(25); screenshots klik for større billeder - ESC for afslut   skriv i Enhedspris-feltet Funktionen skriver i Mængde-feltet for den valgte komponent. Hvis den intelligente bygningsdel har flere niveauer, kan funktionen bruges uafhængigt på hoved- og underkomponenter. funktion Self.SetUnitPrice(value: float) parametre value: float (krævet): variabel-navn (eller en fast værdi) eksempel 1 - variabelnavn Self.SetUnitPrice(Enhedspris); eksempel 2 - fast tekst Self.SetUnitPrice(25); screenshots klik for større billeder - ESC for afslut   skriv i Prisregulering-feltet Funktionen skriver i Mængde-feltet for den valgte komponent. Hvis den intelligente bygningsdel har flere niveauer, kan funktionen bruges uafhængigt på hoved- og underkomponenter. funktion Self.SetRegulation(value: float) parametre value: float (krævet): variabel-navn (eller en fast værdi) eksempel 1 - variabelnavn Self.SetRegulation(Prisregulering); eksempel 2 - fast tekst Self.SetCostPrice(0.8); screenshots klik for større billeder - ESC for afslut   skriv i ektrafelt Funktionen skriver i et ekstrafelt for den valgte komponent. Hvis den intelligente bygningsdel har flere niveauer, kan funktionen bruges uafhængigt på hoved- og underkomponenter. funktion Self.SetCustomFieldValue(id: string, text: string) parametre value: string (krævet): variabel-navn (eller en fast tekst angivet i anførselstegn) eksempel Self.SetCustomFieldValue("SUPPLIER", Leverandør); screenshots klik for større billeder - ESC for afslut   funktion Self.SetCustomFieldValue(id: string, value: float) parametre value: float (krævet): variabel-navn (eller en fast værdi) eksempel Self.SetCustomFieldValue("Vgtprenhed", Vægt); screenshots klik for større billeder - ESC for afslut

© 2026 EG Sigma Community

  • Guides
    • Kom godt i gang
    • Grundlæggende Sigma
    • Biblioteker
    • Opsætning
    • Import/Eksport
    • 3D Integration
    • Integrationer/Apps
    • LCA
    • Diverse
  • Support
  • Kurser
  • EG.DK