diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b75a3fb019962bcfa23cf7a4530fd7fc8ed8d3d1..f6464c7aa8d3c33d6e069ed433f3fc0c310e4070 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,10 +1,8 @@ stages: - build - - triage - - run build: - image: debian:stable + image: debian:oldstable stage: build script: - apt-get update && apt-get -y install graphviz openjdk-11-jre-headless wget @@ -14,51 +12,4 @@ build: - mv modellierung/diagrams/ public/ artifacts: paths: - - public - -build-image:build: - stage: build - tags: - - docker - image: - name: gcr.io/kaniko-project/executor:debug - entrypoint: [""] - script: - - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json - - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE:latest - only: - - master - - docker-dzwald - -dry-run:triage: - image: ruby:2.5 - stage: triage - script: - - gem install activesupport -v 6.1.4.4 - - gem install gitlab-triage - - gitlab-triage --help - - gitlab-triage --dry-run --token $API_TOKEN --source projects --source-id $CI_PROJECT_PATH --host-url https://git-ce.rwth-aachen.de/ - when: manual - except: - - schedules - -policy:run: - image: ruby:2.5 - stage: run - script: - - gem install activesupport -v 6.1.4.4 - - gem install gitlab-triage - - gitlab-triage --token $API_TOKEN --source projects --source-id $CI_PROJECT_PATH --host-url https://git-ce.rwth-aachen.de - when: manual - except: - - schedules - -schedule:policyrun: - image: ruby:2.5 - stage: run - script: - - gem install activesupport -v 6.1.4.4 - - gem install gitlab-triage - - gitlab-triage --token $API_TOKEN --source projects --source-id $CI_PROJECT_PATH --host-url https://git-ce.rwth-aachen.de - only: - - schedules + - public \ No newline at end of file diff --git a/.triage-policies.yml b/.triage-policies.yml deleted file mode 100644 index 354cb67d5505b7a5736167dda6720cf6d682fe39..0000000000000000000000000000000000000000 --- a/.triage-policies.yml +++ /dev/null @@ -1,58 +0,0 @@ -resource_rules: - issues: - rules: - - name: find all issues of milestone AP 0 and set label wp 0 - conditions: - milestone: AP 0 - Projektmanagement und Dissemination - actions: - labels: - - WP 0 - - name: find all issues of milestone AP 1 and set label wp 1 - conditions: - milestone: AP 1 - Definition der Anwendungsszenarien - actions: - labels: - - WP 1 - - name: find all issues of milestone AP 2 and set label wp 2 - conditions: - milestone: AP 2 - Integration von BaSys 4 und WH4.0 - actions: - labels: - - WP 2 - - name: find all issues of milestone AP 3 and set label wp 3 - conditions: - milestone: AP 3 - Entwicklung eines DZ Wald - actions: - labels: - - WP 3 - - name: find all issues of milestone AP 4 and set label wp 4 - conditions: - milestone: AP 4 - Integration eines Waldmanagementsystems - actions: - labels: - - WP 4 - - name: find all issues of milestone AP 5 and set label wp 5 - conditions: - milestone: AP 5 - Integration einer Holzhandelsplattform - actions: - labels: - - WP 5 - - name: find all issues of milestone AP 6 and set label wp 6 - conditions: - milestone: AP 6 - Entwicklung einer Demo-Applikation für die Abnehmerseite - actions: - labels: - - WP 6 - - name: find all issues of milestone AP 7 and set label wp 7 - conditions: - milestone: AP 7 - Integration Holzaufnahme-App - actions: - labels: - - WP 7 - - name: find all issues of milestone AP 8 and set label wp 8 - conditions: - milestone: AP 8 - Integration, Demonstration und Dokumentation der Ergebnisse - actions: - labels: - - WP 8 - diff --git a/demos/demo2/demo2_dzwald.py b/demos/demo2/demo2_dzwald.py index 3fdece4d938d8a3c9de501f57aeb1d2af55bdca3..b7744433ea8ad4eae5d48f3d4d2399635f121cb4 100644 --- a/demos/demo2/demo2_dzwald.py +++ b/demos/demo2/demo2_dzwald.py @@ -1,5 +1,6 @@ import os, sys, inspect -from typing import List, Set +import re +from typing import List import basyx from basyx.aas import model @@ -49,14 +50,15 @@ def create_sortiment(): sortimentstyp=enums.Sortimentstyp.Stammholz, sorte=enums.Sorte.lang, holzart=enums.Holzart.Fichte, - gueteklasse=enums.Gueteklasse.Qualitaet_A, + gueteklasseVon=enums.Gueteklasse.Qualitaet_A, + gueteklasseBis=enums.Gueteklasse.Qualitaet_B, laenge_von=3.0, laenge_bis=6.0, mindestzopf=1.0, max_durchmesser=10.0, laengenzugabe=10.0, mengenschaetzung=10.0, - kaeufer=models.Kontakt(kontaktrolle=enums.Kontaktrolle.Kaeufer), + kaeufer=create_example_contact(kontaktrolle=enums.Kontaktrolle.Kaeufer), ergebnis=[model.ModelReference.from_referable(create_holzliste())] ) return sortiment @@ -67,11 +69,11 @@ def create_arbeitsauftrag(): auftrag_id=model.Identifier("https://www.company.com/submodels/arbeitsauftrag"), hiebsnummer="abc123", kurzbeschreibung="beschreibung", - ansprechpartner=models.Kontakt( + ansprechpartner=create_example_contact( kontaktrolle=enums.Kontaktrolle.Waldbesitzer), - unternehmer_holzrueckung=models.Kontakt( + unternehmer_holzrueckung=create_example_contact( kontaktrolle=enums.Kontaktrolle.UnternehmerHolzrueckung), - unternehmer_holzernte=models.Kontakt( + unternehmer_holzernte=create_example_contact( kontaktrolle=enums.Kontaktrolle.UnternehmerHolzernte), zu_faellende_baeume=models.ModelReference.from_referable( create_zu_faellende_baeume()), @@ -116,7 +118,7 @@ def create_lieferant_contact(): anrede="Herr", vorname="Waldemar", nachname="Schwarz", - adresse="Turmstr. 15, Aachen 52072", + adresse="Turmstr. 15, Aachen 52064", telefonnummern=["0241-123456", "0176-123456"], emailadressen=["schwarz@waldemar.de"], umsatzbesteuerung=enums.Umsatzbesteuerung.regelbesteuert, @@ -131,12 +133,14 @@ def create_preismatrix(): models.Preismatrixeintrag(preis=50.5, mittendurchmesser_von=45.0, mittendurchmesser_bis=55.0, - gueteklasse=enums.Gueteklasse.Normale_Qualitaet + gueteklasse_von=enums.Gueteklasse.Normale_Qualitaet, + gueteklasse_bis=enums.Gueteklasse.Normale_Qualitaet ), models.Preismatrixeintrag(preis=50.5, mittendurchmesser_von=55.0, mittendurchmesser_bis=65.0, - gueteklasse=enums.Gueteklasse.Qualitaet_A + gueteklasse_von=enums.Gueteklasse.Qualitaet_A, + gueteklasse_bis=enums.Gueteklasse.Qualitaet_A ), ] return preismatrix @@ -170,8 +174,8 @@ def create_holzliste(): hieb=enums.Hieb.Durchforstung, ernte=(datetime.date(2023, 12, 1), datetime.date(2023, 12, 31)), lieferant=create_lieferant_contact(), - kaeufer=models.Kontakt(kontaktrolle=enums.Kontaktrolle.Kaeufer), - fuhrmann=models.Kontakt(kontaktrolle=enums.Kontaktrolle.Fuhrmann), + kaeufer=create_example_contact(kontaktrolle=enums.Kontaktrolle.Kaeufer), + fuhrmann=create_example_contact(kontaktrolle=enums.Kontaktrolle.Fuhrmann), notiz="Dieses Holz ist sehr gut" ) @@ -272,7 +276,6 @@ def create_zu_faellende_baeume(): zufaellendebaeume = models.ZuFaellendeBaeume( id="https://www.company.com/submodels/zu_faellende_baeume", - name="Baueme zu faellen", beschreibung="Baueme sollen demnaechst gefaellt werden", umring=umring, position=create_standort(), @@ -330,7 +333,7 @@ def create_bestandesdaten(): bestandesdaten = models.Bestandesdaten( id=model.Identifier("https://www.company.com/submodels/bestandesdaten"), umring=create_umring(), - waldbesitzer=models.Kontakt(kontaktrolle=enums.Kontaktrolle.Waldbesitzer), + waldbesitzer=create_example_contact(kontaktrolle=enums.Kontaktrolle.Waldbesitzer), baumarten=[enums.Holzart.Fichte] ) @@ -373,6 +376,44 @@ def create_aas(): zu_faellende_baeume, events ] + + def remove_iteration_ending(val: str): + # remove iteration ending like {00} + val = re.sub(r'\{\d+\}$', '', val) + # remove one or more digits at the end + val = re.sub(r'_?\d+$', '', val) + return val + + def set_semantic_id(referable: model.SubmodelElement): + # example = "https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Beschreibung" + + if isinstance(referable, model.Submodel): + base = "https://admin-shell.io/kwh40/forestml40" + postfix = f"{referable.id_short}/0/1" + else: + base = referable.parent.semantic_id.key[0].value + postfix = remove_iteration_ending(referable.id_short) + + referable.semantic_id = model.GlobalReference( + (basyx.aas.model.Key(model.KeyTypes.GLOBAL_REFERENCE, + f"{base}/{postfix}"),) + ) + + def set_semantic_id_for_each_in(obj): + set_semantic_id(obj) + try: + iter(obj) + except TypeError as e: + print(e) + return + se_objects = list(obj) + for se in se_objects: + set_semantic_id_for_each_in(se) + + + for submodel in submodels: + set_semantic_id_for_each_in(submodel) + aas_dz_wald = models.DZWald( dzwald_id="https://www.company.com/dz_wald/1", asset=basyx.aas.model.AssetInformation(), @@ -396,7 +437,7 @@ def write_aas(): objstore = basyx.aas.model.DictObjectStore(submodels) objstore.add(aas) - with open("dz_wald_example.json", "w") as file: + with open("dz_wald_example.json", "w", encoding='utf-8') as file: json_serialization.write_aas_json_file(file, objstore) diff --git a/demos/demo2/demo2_dzwald_example.json b/demos/demo2/demo2_dzwald_example.json index 2b69d38c6b6e212786ac231841ed57c47d815fea..0cd131acc87fcd5b175c13c5a512d2693831ac43 100644 --- a/demos/demo2/demo2_dzwald_example.json +++ b/demos/demo2/demo2_dzwald_example.json @@ -13,7 +13,7 @@ "keys": [ { "type": "Submodel", - "value": "https://www.company.com/holzliste/1" + "value": "https://www.company.com/submodels/zu_faellende_baeume" } ] }, @@ -22,7 +22,7 @@ "keys": [ { "type": "Submodel", - "value": "https://www.company.com/submodels/bestandesdaten" + "value": "https://www.company.com/submodels/arbeitsauftrag" } ] }, @@ -31,7 +31,7 @@ "keys": [ { "type": "Submodel", - "value": "https://www.company.com/submodels/verkaufslos" + "value": "https://www.company.com/submodels/holzpreisbereiche" } ] }, @@ -40,7 +40,7 @@ "keys": [ { "type": "Submodel", - "value": "https://www.company.com/submodels/arbeitsauftrag" + "value": "https://www.company.com/submodels/bestandesdaten" } ] }, @@ -58,7 +58,7 @@ "keys": [ { "type": "Submodel", - "value": "https://www.company.com/submodels/zu_faellende_baeume" + "value": "https://www.company.com/submodels/verkaufslos" } ] }, @@ -67,7 +67,7 @@ "keys": [ { "type": "Submodel", - "value": "https://www.company.com/submodels/holzpreisbereiche" + "value": "https://www.company.com/submodels/beobachtung" } ] }, @@ -76,7 +76,7 @@ "keys": [ { "type": "Submodel", - "value": "https://www.company.com/submodels/beobachtung" + "value": "https://www.company.com/submodels/waldweg" } ] } @@ -88,129 +88,535 @@ "idShort": "Arbeitsauftrag", "modelType": "Submodel", "id": "https://www.company.com/submodels/arbeitsauftrag", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1" + } + ] + }, "submodelElements": [ { "idShort": "Hiebsnummer", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Hiebsnummer" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "abc123", "valueType": "xs:string" }, { "idShort": "Kurzbeschreibung", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Kurzbeschreibung" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "beschreibung", "valueType": "xs:string" }, { "idShort": "Sicherheitshinweise", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sicherheitshinweise" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "valueType": "xs:string" }, { "idShort": "Naturschutzhinweise", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Naturschutzhinweise" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "valueType": "xs:string" }, { "idShort": "Karte", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Karte" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "valueType": "xs:string" }, { "idShort": "Auftragsstatus", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Auftragsstatus" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "valueType": "xs:string" }, { "idShort": "Sortimente", "modelType": "SubmodelElementList", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "orderRelevant": true, "typeValueListElement": "SubmodelElementCollection", "value": [ { "idShort": "Sortiment1", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "Nummer", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Nummer" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "1", "valueType": "xs:integer" }, { "idShort": "Sortimentstyp", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Sortimentstyp" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "st", "valueType": "xs:string" }, { "idShort": "Sorte", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Sorte" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "lg", "valueType": "xs:string" }, { "idShort": "Holzart", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Holzart" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "fi", "valueType": "xs:string" }, { - "idShort": "Gueteklasse", + "idShort": "GueteklasseVon", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/GueteklasseVon" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "a", "valueType": "xs:string" }, + { + "idShort": "GueteklasseBis", + "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/GueteklasseBis" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "b", + "valueType": "xs:string" + }, { "idShort": "LaengeVon", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/LaengeVon" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "3.0", "valueType": "xs:double" }, { "idShort": "LaengeBis", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/LaengeBis" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "6.0", "valueType": "xs:double" }, { "idShort": "Mindestzopf", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Mindestzopf" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "1.0", "valueType": "xs:double" }, { "idShort": "MaxDurchmesser", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/MaxDurchmesser" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "10.0", "valueType": "xs:double" }, { "idShort": "Laengenzugabe", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Laengenzugabe" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "10.0", "valueType": "xs:double" }, { "idShort": "Mengenschaetzung", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Mengenschaetzung" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "10.0", "valueType": "xs:double" }, { "idShort": "Bemerkung", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Bemerkung" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "valueType": "xs:string" }, { "idShort": "Ergebnis", "modelType": "SubmodelElementList", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Ergebnis" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "orderRelevant": true, "typeValueListElement": "ReferenceElement", "value": [ { - "idShort": "Ergebnis1", + "idShort": "HolzlisteReference1", "modelType": "ReferenceElement", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Ergebnis/HolzlisteReference" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": { "type": "ModelReference", "keys": [ @@ -231,133 +637,300 @@ "keys": [ { "type": "GlobalReference", - "value": "basys4forestry.de/Kontakt" + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { - "idShort": "Kontaktrolle", + "idShort": "Firmenname", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO204#003" + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Firmenname" } ] }, - "value": "Kaeufer", + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Kaeufer GmbH", "valueType": "xs:string" }, { - "idShort": "Firmenname", + "idShort": "Anrede", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAW001#001" + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Anrede" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Herr", "valueType": "xs:string" }, { - "idShort": "Anrede", + "idShort": "Vorname", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO208#003" + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Vorname" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Max", "valueType": "xs:string" }, { - "idShort": "Vorname", + "idShort": "Nachname", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO206#002" + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Nachname" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Mustermann", "valueType": "xs:string" }, { - "idShort": "Nachname", + "idShort": "Adresse", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO205#002" + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Adresse" } ] }, - "valueType": "xs:string" - }, - { - "idShort": "Adresse", - "modelType": "Property", + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Turmstr. 15, Aachen 52064", "valueType": "xs:string" }, { "idShort": "Umsatzbesteuerung", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Umsatzbesteuerung" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "rb", "valueType": "xs:string" }, { "idShort": "IBAN", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/IBAN" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "DE1234567890", "valueType": "xs:string" }, { "idShort": "Steuernummer", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Steuernummer" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "99999999999", "valueType": "xs:string" }, { "idShort": "Telefonnummern", "modelType": "SubmodelElementList", - "orderRelevant": true, - "typeValueListElement": "Property", - "semanticIdListElement": { + "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO136#002" + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Telefonnummern" } ] }, - "valueTypeListElement": "xs:string" + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "orderRelevant": true, + "typeValueListElement": "Property", + "valueTypeListElement": "xs:string", + "value": [ + { + "idShort": "Telefon1", + "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Telefonnummern/Telefon" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "0241-123456", + "valueType": "xs:string" + } + ] }, { "idShort": "Emailadressen", "modelType": "SubmodelElementList", - "orderRelevant": true, - "typeValueListElement": "Property", - "semanticIdListElement": { + "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO198#002" + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Emailadressen" } ] }, - "valueTypeListElement": "xs:string" + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "orderRelevant": true, + "typeValueListElement": "Property", + "valueTypeListElement": "xs:string", + "value": [ + { + "idShort": "Email1", + "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Emailadressen/Email" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Kaeufer@example.com", + "valueType": "xs:string" + } + ] } ] } @@ -368,393 +941,938 @@ { "idShort": "Ansprechpartner", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { - "idShort": "Kontaktrolle", + "idShort": "Firmenname", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO204#003" + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Firmenname" } ] }, - "value": "Waldbesitzer", + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Waldbesitzer GmbH", "valueType": "xs:string" }, { - "idShort": "Firmenname", + "idShort": "Anrede", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAW001#001" + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Anrede" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Herr", "valueType": "xs:string" }, { - "idShort": "Anrede", + "idShort": "Vorname", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO208#003" + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Vorname" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Max", "valueType": "xs:string" }, { - "idShort": "Vorname", + "idShort": "Nachname", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO206#002" + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Nachname" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Mustermann", "valueType": "xs:string" }, { - "idShort": "Nachname", + "idShort": "Adresse", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO205#002" + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Adresse" } ] }, - "valueType": "xs:string" - }, - { - "idShort": "Adresse", - "modelType": "Property", + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Turmstr. 15, Aachen 52064", "valueType": "xs:string" }, { "idShort": "Umsatzbesteuerung", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Umsatzbesteuerung" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "rb", "valueType": "xs:string" }, { "idShort": "IBAN", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/IBAN" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "DE1234567890", "valueType": "xs:string" }, { "idShort": "Steuernummer", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Steuernummer" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "99999999999", "valueType": "xs:string" }, { "idShort": "Telefonnummern", "modelType": "SubmodelElementList", - "orderRelevant": true, - "typeValueListElement": "Property", - "semanticIdListElement": { + "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO136#002" + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Telefonnummern" } ] }, - "valueTypeListElement": "xs:string" + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "orderRelevant": true, + "typeValueListElement": "Property", + "valueTypeListElement": "xs:string", + "value": [ + { + "idShort": "Telefon1", + "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Telefonnummern/Telefon" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "0241-123456", + "valueType": "xs:string" + } + ] }, { "idShort": "Emailadressen", "modelType": "SubmodelElementList", - "orderRelevant": true, - "typeValueListElement": "Property", - "semanticIdListElement": { + "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO198#002" + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Emailadressen" } ] }, - "valueTypeListElement": "xs:string" + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "orderRelevant": true, + "typeValueListElement": "Property", + "valueTypeListElement": "xs:string", + "value": [ + { + "idShort": "Email1", + "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Emailadressen/Email" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Waldbesitzer@example.com", + "valueType": "xs:string" + } + ] } ] }, { "idShort": "UnternehmerHolzrueckung", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { - "idShort": "Kontaktrolle", + "idShort": "Firmenname", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO204#003" + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Firmenname" } ] }, - "value": "UnternehmerHolzrueckung", + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "UnternehmerHolzrueckung GmbH", "valueType": "xs:string" }, { - "idShort": "Firmenname", + "idShort": "Anrede", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAW001#001" + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Anrede" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Herr", "valueType": "xs:string" }, { - "idShort": "Anrede", + "idShort": "Vorname", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO208#003" + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Vorname" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Max", "valueType": "xs:string" }, { - "idShort": "Vorname", + "idShort": "Nachname", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO206#002" + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Nachname" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Mustermann", "valueType": "xs:string" }, { - "idShort": "Nachname", + "idShort": "Adresse", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO205#002" + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Adresse" } ] }, - "valueType": "xs:string" - }, - { - "idShort": "Adresse", - "modelType": "Property", + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Turmstr. 15, Aachen 52064", "valueType": "xs:string" }, { "idShort": "Umsatzbesteuerung", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Umsatzbesteuerung" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "rb", "valueType": "xs:string" }, { "idShort": "IBAN", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/IBAN" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "DE1234567890", "valueType": "xs:string" }, { "idShort": "Steuernummer", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Steuernummer" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "99999999999", "valueType": "xs:string" }, { "idShort": "Telefonnummern", "modelType": "SubmodelElementList", - "orderRelevant": true, - "typeValueListElement": "Property", - "semanticIdListElement": { + "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO136#002" + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Telefonnummern" } ] }, - "valueTypeListElement": "xs:string" + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "orderRelevant": true, + "typeValueListElement": "Property", + "valueTypeListElement": "xs:string", + "value": [ + { + "idShort": "Telefon1", + "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Telefonnummern/Telefon" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "0241-123456", + "valueType": "xs:string" + } + ] }, { "idShort": "Emailadressen", "modelType": "SubmodelElementList", - "orderRelevant": true, - "typeValueListElement": "Property", - "semanticIdListElement": { + "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO198#002" + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Emailadressen" } ] }, - "valueTypeListElement": "xs:string" + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "orderRelevant": true, + "typeValueListElement": "Property", + "valueTypeListElement": "xs:string", + "value": [ + { + "idShort": "Email1", + "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Emailadressen/Email" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "UnternehmerHolzrueckung@example.com", + "valueType": "xs:string" + } + ] } ] }, { "idShort": "UnternehmerHolzernte", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { - "idShort": "Kontaktrolle", + "idShort": "Firmenname", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO204#003" + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Firmenname" } ] }, - "value": "UnternehmerHolzernte", + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "UnternehmerHolzernte GmbH", "valueType": "xs:string" }, { - "idShort": "Firmenname", + "idShort": "Anrede", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAW001#001" + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Anrede" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Herr", "valueType": "xs:string" }, { - "idShort": "Anrede", + "idShort": "Vorname", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO208#003" + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Vorname" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Max", "valueType": "xs:string" }, { - "idShort": "Vorname", + "idShort": "Nachname", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO206#002" + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Nachname" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Mustermann", "valueType": "xs:string" }, { - "idShort": "Nachname", + "idShort": "Adresse", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO205#002" + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Adresse" } ] }, - "valueType": "xs:string" - }, - { - "idShort": "Adresse", - "modelType": "Property", + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Turmstr. 15, Aachen 52064", "valueType": "xs:string" }, { "idShort": "Umsatzbesteuerung", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Umsatzbesteuerung" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "rb", "valueType": "xs:string" }, { "idShort": "IBAN", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/IBAN" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "DE1234567890", "valueType": "xs:string" }, { "idShort": "Steuernummer", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Steuernummer" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "99999999999", "valueType": "xs:string" }, { "idShort": "Telefonnummern", "modelType": "SubmodelElementList", - "orderRelevant": true, - "typeValueListElement": "Property", - "semanticIdListElement": { + "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO136#002" + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Telefonnummern" } ] }, - "valueTypeListElement": "xs:string" + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "orderRelevant": true, + "typeValueListElement": "Property", + "valueTypeListElement": "xs:string", + "value": [ + { + "idShort": "Telefon1", + "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Telefonnummern/Telefon" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "0241-123456", + "valueType": "xs:string" + } + ] }, { "idShort": "Emailadressen", "modelType": "SubmodelElementList", - "orderRelevant": true, - "typeValueListElement": "Property", - "semanticIdListElement": { + "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO198#002" + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Emailadressen" } ] }, - "valueTypeListElement": "xs:string" + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "orderRelevant": true, + "typeValueListElement": "Property", + "valueTypeListElement": "xs:string", + "value": [ + { + "idShort": "Email1", + "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Emailadressen/Email" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "UnternehmerHolzernte@example.com", + "valueType": "xs:string" + } + ] } ] }, { "idShort": "ZuFaellendeBaeume", "modelType": "ReferenceElement", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/ZuFaellendeBaeume" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": { "type": "ModelReference", "keys": [ @@ -771,122 +1889,480 @@ "idShort": "Beobachtung", "modelType": "Submodel", "id": "https://www.company.com/submodels/beobachtung", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1" + } + ] + }, "submodelElements": [ { "idShort": "Name", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Name" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "name", "valueType": "xs:string" }, { "idShort": "Beschreibung", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Beschreibung" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "beschreibung", "valueType": "xs:string" }, { "idShort": "Umring", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring" + } + ] + }, "value": [ { "idShort": "Name", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Name" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "name", "valueType": "xs:string" }, { "idShort": "Beschreibung", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Beschreibung" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "beschreibung", "valueType": "xs:string" }, { "idShort": "Koordinaten", "modelType": "SubmodelElementList", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "orderRelevant": true, "typeValueListElement": "SubmodelElementCollection", "value": [ { "idShort": "Koordinate1", "modelType": "SubmodelElementCollection", - "value": [ - { - "idShort": "x", - "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinate" + } + ] + }, + "qualifiers": [ + { + "value": "OneToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": [ + { + "idShort": "x", + "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinate/x" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "8.916091918945312", "valueType": "xs:double" }, { "idShort": "y", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinate/y" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "49.86861816524657", "valueType": "xs:double" }, { "idShort": "alt", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinate/alt" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "valueType": "xs:double" }, { "idShort": "crs", "modelType": "Property", - "valueType": "xs:double" + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinate/crs" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "valueType": "xs:string" } ] }, { "idShort": "Koordinate2", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinate" + } + ] + }, + "qualifiers": [ + { + "value": "OneToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "x", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinate/x" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "30.00004", "valueType": "xs:double" }, { "idShort": "y", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinate/y" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "120.8", "valueType": "xs:double" }, { "idShort": "alt", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinate/alt" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "valueType": "xs:double" }, { "idShort": "crs", "modelType": "Property", - "valueType": "xs:double" + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinate/crs" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "valueType": "xs:string" } ] }, { "idShort": "Koordinate3", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinate" + } + ] + }, + "qualifiers": [ + { + "value": "OneToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "x", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinate/x" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "30.00004", "valueType": "xs:double" }, { "idShort": "y", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinate/y" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "120.8", "valueType": "xs:double" }, { "idShort": "alt", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinate/alt" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "valueType": "xs:double" }, { "idShort": "crs", "modelType": "Property", - "valueType": "xs:double" + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinate/crs" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "valueType": "xs:string" } ] } @@ -897,38 +2373,157 @@ { "idShort": "Position", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Position" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "Koordinate", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Position/Koordinate" + } + ] + }, + "qualifiers": [ + { + "value": "OneToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "x", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Position/Koordinate/x" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "30.00004", "valueType": "xs:double" }, { "idShort": "y", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Position/Koordinate/y" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "120.8", "valueType": "xs:double" }, { "idShort": "alt", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Position/Koordinate/alt" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "valueType": "xs:double" }, { "idShort": "crs", "modelType": "Property", - "valueType": "xs:double" + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Position/Koordinate/crs" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "valueType": "xs:string" } ] }, { "idShort": "Notiz", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Position/Notiz" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "Die Position", "valueType": "xs:string" } @@ -940,110 +2535,434 @@ "idShort": "Bestandesdaten", "modelType": "Submodel", "id": "https://www.company.com/submodels/bestandesdaten", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1" + } + ] + }, "submodelElements": [ { "idShort": "Umring", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring" + } + ] + }, "value": [ { "idShort": "Name", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Name" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "name", "valueType": "xs:string" }, { "idShort": "Beschreibung", "modelType": "Property", - "value": "beschreibung", - "valueType": "xs:string" - }, + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Beschreibung" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "beschreibung", + "valueType": "xs:string" + }, { "idShort": "Koordinaten", "modelType": "SubmodelElementList", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "orderRelevant": true, "typeValueListElement": "SubmodelElementCollection", "value": [ { "idShort": "Koordinate1", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinate" + } + ] + }, + "qualifiers": [ + { + "value": "OneToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "x", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinate/x" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "8.916091918945312", "valueType": "xs:double" }, { "idShort": "y", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinate/y" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "49.86861816524657", "valueType": "xs:double" }, { "idShort": "alt", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinate/alt" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "valueType": "xs:double" }, { "idShort": "crs", "modelType": "Property", - "valueType": "xs:double" + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinate/crs" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "valueType": "xs:string" } ] }, { "idShort": "Koordinate2", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinate" + } + ] + }, + "qualifiers": [ + { + "value": "OneToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "x", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinate/x" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "30.00004", "valueType": "xs:double" }, { "idShort": "y", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinate/y" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "120.8", "valueType": "xs:double" }, { "idShort": "alt", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinate/alt" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "valueType": "xs:double" }, { "idShort": "crs", "modelType": "Property", - "valueType": "xs:double" + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinate/crs" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "valueType": "xs:string" } ] }, { "idShort": "Koordinate3", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinate" + } + ] + }, + "qualifiers": [ + { + "value": "OneToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "x", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinate/x" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "30.00004", "valueType": "xs:double" }, { "idShort": "y", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinate/y" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "120.8", "valueType": "xs:double" }, { "idShort": "alt", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinate/alt" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "valueType": "xs:double" }, { "idShort": "crs", "modelType": "Property", - "valueType": "xs:double" + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinate/crs" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "valueType": "xs:string" } ] } @@ -1054,135 +2973,328 @@ { "idShort": "Waldbesitzer", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { - "idShort": "Kontaktrolle", + "idShort": "Firmenname", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO204#003" + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Firmenname" } ] }, - "value": "Waldbesitzer", + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Waldbesitzer GmbH", "valueType": "xs:string" }, { - "idShort": "Firmenname", + "idShort": "Anrede", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAW001#001" + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Anrede" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Herr", "valueType": "xs:string" }, { - "idShort": "Anrede", + "idShort": "Vorname", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO208#003" + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Vorname" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Max", "valueType": "xs:string" }, { - "idShort": "Vorname", + "idShort": "Nachname", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO206#002" + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Nachname" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Mustermann", "valueType": "xs:string" }, { - "idShort": "Nachname", + "idShort": "Adresse", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO205#002" + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Adresse" } ] }, - "valueType": "xs:string" - }, - { - "idShort": "Adresse", - "modelType": "Property", + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Turmstr. 15, Aachen 52064", "valueType": "xs:string" }, { "idShort": "Umsatzbesteuerung", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Umsatzbesteuerung" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "rb", "valueType": "xs:string" }, { "idShort": "IBAN", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/IBAN" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "DE1234567890", "valueType": "xs:string" }, { "idShort": "Steuernummer", "modelType": "Property", - "valueType": "xs:string" - }, - { - "idShort": "Telefonnummern", - "modelType": "SubmodelElementList", - "orderRelevant": true, - "typeValueListElement": "Property", - "semanticIdListElement": { + "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO136#002" + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Steuernummer" } ] }, - "valueTypeListElement": "xs:string" + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "99999999999", + "valueType": "xs:string" }, { - "idShort": "Emailadressen", + "idShort": "Telefonnummern", "modelType": "SubmodelElementList", - "orderRelevant": true, - "typeValueListElement": "Property", - "semanticIdListElement": { + "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO198#002" + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Telefonnummern" } ] }, - "valueTypeListElement": "xs:string" - } - ] - }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "orderRelevant": true, + "typeValueListElement": "Property", + "valueTypeListElement": "xs:string", + "value": [ + { + "idShort": "Telefon1", + "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Telefonnummern/Telefon" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "0241-123456", + "valueType": "xs:string" + } + ] + }, + { + "idShort": "Emailadressen", + "modelType": "SubmodelElementList", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Emailadressen" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "orderRelevant": true, + "typeValueListElement": "Property", + "valueTypeListElement": "xs:string", + "value": [ + { + "idShort": "Email1", + "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Emailadressen/Email" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Waldbesitzer@example.com", + "valueType": "xs:string" + } + ] + } + ] + }, { "idShort": "Baumarten", "modelType": "SubmodelElementList", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Baumarten" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "orderRelevant": true, "typeValueListElement": "Property", "valueTypeListElement": "xs:string", @@ -1190,6 +3302,23 @@ { "idShort": "Baumart1", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Baumarten/Baumart" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "fi", "valueType": "xs:string" } @@ -1201,14 +3330,57 @@ "idShort": "Holzliste", "modelType": "Submodel", "id": "https://www.company.com/holzliste/1", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1" + } + ] + }, "submodelElements": [ { "idShort": "Kopfdaten", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "Ernte", "modelType": "Range", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Ernte" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "valueType": "xs:date", "min": "2023-12-01", "max": "2023-12-31" @@ -1221,26 +3393,19 @@ "keys": [ { "type": "GlobalReference", - "value": "basys4forestry.de/Kontakt" + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant" } ] }, - "value": [ + "qualifiers": [ { - "idShort": "Kontaktrolle", - "modelType": "Property", - "semanticId": { - "type": "GlobalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO204#003" - } - ] - }, - "value": "Lieferant", - "valueType": "xs:string" - }, + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": [ { "idShort": "Firmenname", "modelType": "Property", @@ -1249,10 +3414,18 @@ "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAW001#001" + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Firmenname" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "Holzlieferant GmbH", "valueType": "xs:string" }, @@ -1264,10 +3437,18 @@ "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO208#003" + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Anrede" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "Herr", "valueType": "xs:string" }, @@ -1279,10 +3460,18 @@ "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO206#002" + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Vorname" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "Waldemar", "valueType": "xs:string" }, @@ -1294,51 +3483,135 @@ "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO205#002" + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Nachname" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "Schwarz", "valueType": "xs:string" }, { "idShort": "Adresse", "modelType": "Property", - "value": "Turmstr. 15, Aachen 52072", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Adresse" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Turmstr. 15, Aachen 52064", "valueType": "xs:string" }, { "idShort": "Umsatzbesteuerung", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Umsatzbesteuerung" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "rb", "valueType": "xs:string" }, { "idShort": "IBAN", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/IBAN" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "DE1234567890", "valueType": "xs:string" }, { "idShort": "Steuernummer", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Steuernummer" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "99999999999", "valueType": "xs:string" }, { "idShort": "Telefonnummern", "modelType": "SubmodelElementList", - "orderRelevant": true, - "typeValueListElement": "Property", - "semanticIdListElement": { + "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO136#002" + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Telefonnummern" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "orderRelevant": true, + "typeValueListElement": "Property", "valueTypeListElement": "xs:string", "value": [ { @@ -1349,10 +3622,18 @@ "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO136#002" + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Telefonnummern/Telefon" } ] }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "0241-123456", "valueType": "xs:string" }, @@ -1364,10 +3645,18 @@ "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO136#002" + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Telefonnummern/Telefon" } ] }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "0176-123456", "valueType": "xs:string" } @@ -1376,17 +3665,25 @@ { "idShort": "Emailadressen", "modelType": "SubmodelElementList", - "orderRelevant": true, - "typeValueListElement": "Property", - "semanticIdListElement": { + "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO198#002" + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Emailadressen" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "orderRelevant": true, + "typeValueListElement": "Property", "valueTypeListElement": "xs:string", "value": [ { @@ -1397,10 +3694,18 @@ "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO198#002" + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Emailadressen/Email" } ] }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "schwarz@waldemar.de", "valueType": "xs:string" } @@ -1416,289 +3721,674 @@ "keys": [ { "type": "GlobalReference", - "value": "basys4forestry.de/Kontakt" + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { - "idShort": "Kontaktrolle", + "idShort": "Firmenname", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO204#003" + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Firmenname" } ] }, - "value": "Kaeufer", + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Kaeufer GmbH", "valueType": "xs:string" }, { - "idShort": "Firmenname", + "idShort": "Anrede", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAW001#001" + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Anrede" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Herr", "valueType": "xs:string" }, { - "idShort": "Anrede", + "idShort": "Vorname", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO208#003" + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Vorname" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Max", "valueType": "xs:string" }, { - "idShort": "Vorname", + "idShort": "Nachname", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO206#002" + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Nachname" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Mustermann", "valueType": "xs:string" }, { - "idShort": "Nachname", + "idShort": "Adresse", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO205#002" + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Adresse" } ] }, - "valueType": "xs:string" - }, - { - "idShort": "Adresse", - "modelType": "Property", + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Turmstr. 15, Aachen 52064", "valueType": "xs:string" }, { "idShort": "Umsatzbesteuerung", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Umsatzbesteuerung" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "rb", "valueType": "xs:string" }, { "idShort": "IBAN", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/IBAN" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "DE1234567890", "valueType": "xs:string" }, { "idShort": "Steuernummer", "modelType": "Property", - "valueType": "xs:string" - }, - { - "idShort": "Telefonnummern", - "modelType": "SubmodelElementList", - "orderRelevant": true, - "typeValueListElement": "Property", - "semanticIdListElement": { + "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO136#002" + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Steuernummer" } ] }, - "valueTypeListElement": "xs:string" + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "99999999999", + "valueType": "xs:string" }, { - "idShort": "Emailadressen", + "idShort": "Telefonnummern", "modelType": "SubmodelElementList", - "orderRelevant": true, - "typeValueListElement": "Property", - "semanticIdListElement": { + "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO198#002" + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Telefonnummern" } ] }, - "valueTypeListElement": "xs:string" - } - ] - }, - { - "idShort": "Fuhrmann", + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "orderRelevant": true, + "typeValueListElement": "Property", + "valueTypeListElement": "xs:string", + "value": [ + { + "idShort": "Telefon1", + "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Telefonnummern/Telefon" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "0241-123456", + "valueType": "xs:string" + } + ] + }, + { + "idShort": "Emailadressen", + "modelType": "SubmodelElementList", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Emailadressen" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "orderRelevant": true, + "typeValueListElement": "Property", + "valueTypeListElement": "xs:string", + "value": [ + { + "idShort": "Email1", + "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Emailadressen/Email" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Kaeufer@example.com", + "valueType": "xs:string" + } + ] + } + ] + }, + { + "idShort": "Fuhrmann", "modelType": "SubmodelElementCollection", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "basys4forestry.de/Kontakt" + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { - "idShort": "Kontaktrolle", + "idShort": "Firmenname", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO204#003" + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Firmenname" } ] }, - "value": "Fuhrmann", + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Fuhrmann GmbH", "valueType": "xs:string" }, { - "idShort": "Firmenname", + "idShort": "Anrede", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAW001#001" + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Anrede" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Herr", "valueType": "xs:string" }, { - "idShort": "Anrede", + "idShort": "Vorname", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO208#003" + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Vorname" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Max", "valueType": "xs:string" }, { - "idShort": "Vorname", + "idShort": "Nachname", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO206#002" + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Nachname" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Mustermann", "valueType": "xs:string" }, { - "idShort": "Nachname", + "idShort": "Adresse", "modelType": "Property", "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO205#002" + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Adresse" } ] }, - "valueType": "xs:string" - }, - { - "idShort": "Adresse", - "modelType": "Property", + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Turmstr. 15, Aachen 52064", "valueType": "xs:string" }, { "idShort": "Umsatzbesteuerung", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Umsatzbesteuerung" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "rb", "valueType": "xs:string" }, { "idShort": "IBAN", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/IBAN" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "DE1234567890", "valueType": "xs:string" }, { "idShort": "Steuernummer", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Steuernummer" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "99999999999", "valueType": "xs:string" }, { "idShort": "Telefonnummern", "modelType": "SubmodelElementList", - "orderRelevant": true, - "typeValueListElement": "Property", - "semanticIdListElement": { + "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO136#002" + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Telefonnummern" } ] }, - "valueTypeListElement": "xs:string" + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "orderRelevant": true, + "typeValueListElement": "Property", + "valueTypeListElement": "xs:string", + "value": [ + { + "idShort": "Telefon1", + "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Telefonnummern/Telefon" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "0241-123456", + "valueType": "xs:string" + } + ] }, { "idShort": "Emailadressen", "modelType": "SubmodelElementList", - "orderRelevant": true, - "typeValueListElement": "Property", - "semanticIdListElement": { + "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO198#002" + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Emailadressen" } ] }, - "valueTypeListElement": "xs:string" + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "orderRelevant": true, + "typeValueListElement": "Property", + "valueTypeListElement": "xs:string", + "value": [ + { + "idShort": "Email1", + "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Emailadressen/Email" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Fuhrmann@example.com", + "valueType": "xs:string" + } + ] } ] }, { "idShort": "Projekt", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Projekt" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "Eslohe2023", "valueType": "xs:string" }, { "idShort": "Hieb", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Hieb" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "df", "valueType": "xs:string" }, { "idShort": "Notiz", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Notiz" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "Dieses Holz ist sehr gut", "valueType": "xs:string" } @@ -1707,52 +4397,205 @@ { "idShort": "Sortimentstyp", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Sortimentstyp" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "st", "valueType": "xs:string" }, { "idShort": "Sorte", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Sorte" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "lg", "valueType": "xs:string" }, { "idShort": "Holzart", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Holzart" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "fi", "valueType": "xs:string" }, { "idShort": "PolterListe", "modelType": "SubmodelElementList", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "orderRelevant": true, "typeValueListElement": "SubmodelElementCollection", "value": [ { "idShort": "Polter1", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter" + } + ] + }, + "qualifiers": [ + { + "value": "OneToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "Polternummer", "modelType": "Property", - "value": "100", - "valueType": "xs:string" - }, + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Polternummer" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "100", + "valueType": "xs:string" + }, { "idShort": "Vermessungsverfahren", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Vermessungsverfahren" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "mit", "valueType": "xs:string" }, { "idShort": "Polterstatus", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Polterstatus" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "Vermessen", "valueType": "xs:string" }, { - "idShort": "Foto", + "idShort": "Fotos", "modelType": "SubmodelElementList", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Fotos" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "orderRelevant": true, "typeValueListElement": "Property", "valueTypeListElement": "xs:string", @@ -1760,12 +4603,46 @@ { "idShort": "Foto1", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Fotos/Foto" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "https://upload.wikimedia.org/wikipedia/commons/thumb/a/ab/Altenbrak_Holz.JPG/1920px-Altenbrak_Holz.JPG", "valueType": "xs:string" }, { "idShort": "Foto2", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Fotos/Foto" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "https://de.wikipedia.org/wiki/Polter#/media/Datei:Baumst%C3%A4mme_bei_St%C3%BCbeckshorn.jpg", "valueType": "xs:string" } @@ -1774,6 +4651,23 @@ { "idShort": "Videos", "modelType": "SubmodelElementList", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Videos" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "orderRelevant": true, "typeValueListElement": "Property", "valueTypeListElement": "xs:string", @@ -1781,6 +4675,23 @@ { "idShort": "Video1", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Videos/Video" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "https://www.youtube.com/watch?v=b65SSRfDwUo", "valueType": "xs:string" } @@ -1789,50 +4700,203 @@ { "idShort": "Messergebnis_EinzelstammListe", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "Einzelstaemme", "modelType": "SubmodelElementList", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "orderRelevant": true, "typeValueListElement": "SubmodelElementCollection", "value": [ { "idShort": "Einzelstamm1", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm" + } + ] + }, + "qualifiers": [ + { + "value": "OneToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "Menge", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Menge" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "3.4", "valueType": "xs:double" }, { "idShort": "Stammlaenge", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Stammlaenge" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "4.2", "valueType": "xs:double" }, { "idShort": "Stammnummer", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Stammnummer" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "1", "valueType": "xs:string" }, { "idShort": "Mittendurchmesser", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Mittendurchmesser" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "47.0", "valueType": "xs:double" }, { "idShort": "Gueteklasse", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Gueteklasse" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "in", "valueType": "xs:string" }, { "idShort": "Klammerstammabschnittsnummer", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Klammerstammabschnittsnummer" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "valueType": "xs:string" } ] @@ -1840,40 +4904,159 @@ { "idShort": "Einzelstamm2", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm" + } + ] + }, + "qualifiers": [ + { + "value": "OneToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "Menge", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Menge" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "4.7", "valueType": "xs:double" }, { "idShort": "Stammlaenge", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Stammlaenge" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "4.3", "valueType": "xs:double" }, { "idShort": "Stammnummer", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Stammnummer" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "2", "valueType": "xs:string" }, { "idShort": "Mittendurchmesser", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Mittendurchmesser" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "63.0", "valueType": "xs:double" }, { "idShort": "Gueteklasse", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Gueteklasse" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "a", "valueType": "xs:string" }, { "idShort": "Klammerstammabschnittsnummer", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Klammerstammabschnittsnummer" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "valueType": "xs:string" } ] @@ -1881,40 +5064,159 @@ { "idShort": "Einzelstamm3", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm" + } + ] + }, + "qualifiers": [ + { + "value": "OneToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "Menge", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Menge" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "2.7", "valueType": "xs:double" }, { "idShort": "Stammlaenge", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Stammlaenge" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "2.3", "valueType": "xs:double" }, { "idShort": "Stammnummer", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Stammnummer" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "3", "valueType": "xs:string" }, { "idShort": "Mittendurchmesser", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Mittendurchmesser" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "63.0", "valueType": "xs:double" }, { "idShort": "Gueteklasse", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Gueteklasse" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "a", "valueType": "xs:string" }, { "idShort": "Klammerstammabschnittsnummer", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Klammerstammabschnittsnummer" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "1", "valueType": "xs:string" } @@ -1923,40 +5225,159 @@ { "idShort": "Einzelstamm4", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm" + } + ] + }, + "qualifiers": [ + { + "value": "OneToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "Menge", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Menge" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "1.7", "valueType": "xs:double" }, { "idShort": "Stammlaenge", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Stammlaenge" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "1.3", "valueType": "xs:double" }, { "idShort": "Stammnummer", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Stammnummer" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "3", "valueType": "xs:string" }, { "idShort": "Mittendurchmesser", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Mittendurchmesser" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "43.0", "valueType": "xs:double" }, { "idShort": "Gueteklasse", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Gueteklasse" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "b", "valueType": "xs:string" }, { "idShort": "Klammerstammabschnittsnummer", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Klammerstammabschnittsnummer" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "2", "valueType": "xs:string" } @@ -1969,38 +5390,157 @@ { "idShort": "Standort", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Standort" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "Koordinate", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Standort/Koordinate" + } + ] + }, + "qualifiers": [ + { + "value": "OneToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "x", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Standort/Koordinate/x" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "30.00004", "valueType": "xs:double" }, { "idShort": "y", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Standort/Koordinate/y" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "120.8", "valueType": "xs:double" }, { "idShort": "alt", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Standort/Koordinate/alt" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "valueType": "xs:double" }, { "idShort": "crs", "modelType": "Property", - "valueType": "xs:double" + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Standort/Koordinate/crs" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "valueType": "xs:string" } ] }, { "idShort": "Notiz", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Standort/Notiz" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "Die Position", "valueType": "xs:string" } @@ -2013,34 +5553,159 @@ { "idShort": "Preismatrix", "modelType": "SubmodelElementList", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Preismatrix" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "orderRelevant": true, "typeValueListElement": "SubmodelElementCollection", "value": [ { "idShort": "Preismatrixeintrag1", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Preismatrix/Preismatrixeintrag" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "Preis", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Preismatrix/Preismatrixeintrag/Preis" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "50.5", "valueType": "xs:double" }, { "idShort": "MittendurchmesserVon", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Preismatrix/Preismatrixeintrag/MittendurchmesserVon" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "45.0", "valueType": "xs:double" }, { "idShort": "MittendurchmesserBis", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Preismatrix/Preismatrixeintrag/MittendurchmesserBis" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "55.0", "valueType": "xs:double" }, { - "idShort": "Gueteklasse", + "idShort": "GueteklasseVon", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Preismatrix/Preismatrixeintrag/GueteklasseVon" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "in", + "valueType": "xs:string" + }, + { + "idShort": "GueteklasseBis", + "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Preismatrix/Preismatrixeintrag/GueteklasseBis" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "in", "valueType": "xs:string" } @@ -2049,28 +5714,136 @@ { "idShort": "Preismatrixeintrag2", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Preismatrix/Preismatrixeintrag" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "Preis", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Preismatrix/Preismatrixeintrag/Preis" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "50.5", "valueType": "xs:double" }, { "idShort": "MittendurchmesserVon", "modelType": "Property", - "value": "55.0", - "valueType": "xs:double" - }, + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Preismatrix/Preismatrixeintrag/MittendurchmesserVon" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "55.0", + "valueType": "xs:double" + }, { "idShort": "MittendurchmesserBis", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Preismatrix/Preismatrixeintrag/MittendurchmesserBis" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "65.0", "valueType": "xs:double" }, { - "idShort": "Gueteklasse", + "idShort": "GueteklasseVon", + "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Preismatrix/Preismatrixeintrag/GueteklasseVon" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "a", + "valueType": "xs:string" + }, + { + "idShort": "GueteklasseBis", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Preismatrix/Preismatrixeintrag/GueteklasseBis" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "a", "valueType": "xs:string" } @@ -2084,56 +5857,218 @@ "idShort": "Holzpreisbereiche", "modelType": "Submodel", "id": "https://www.company.com/submodels/holzpreisbereiche", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1" + } + ] + }, "submodelElements": [ { "idShort": "Holzpreisbereich1", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereich" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "Baumart", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereich/Baumart" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "fi", "valueType": "xs:string" }, { "idShort": "PreisVon", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereich/PreisVon" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "50.0", "valueType": "xs:double" }, { "idShort": "PreisBis", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereich/PreisBis" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "80.0", "valueType": "xs:double" }, { "idShort": "Sorte", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereich/Sorte" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "lg", "valueType": "xs:string" }, { "idShort": "Gueteklasse", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereich/Gueteklasse" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "a", "valueType": "xs:string" }, { "idShort": "MittendurchmesserVon", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereich/MittendurchmesserVon" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "40.3", "valueType": "xs:double" }, { "idShort": "MittendurchmesserBis", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereich/MittendurchmesserBis" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "60.4", "valueType": "xs:double" }, { - "idShort": "Holzliste", + "idShort": "HolzlisteReference", "modelType": "ReferenceElement", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereich/HolzlisteReference" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": { "type": "ModelReference", "keys": [ @@ -2147,12 +6082,46 @@ { "idShort": "Datum", "modelType": "Property", - "value": "2023-05-02", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereich/Datum" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "2023-06-29", "valueType": "xs:date" }, { "idShort": "Quelle", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereich/Quelle" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "Dies ist eine Quelle", "valueType": "xs:string" } @@ -2164,34 +6133,128 @@ "idShort": "Verkaufslos", "modelType": "Submodel", "id": "https://www.company.com/submodels/verkaufslos", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1" + } + ] + }, "submodelElements": [ { "idShort": "Verkaufsstatus", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaufsstatus" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "10", "valueType": "xs:integer" }, { "idShort": "Abrechnungsmass", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Abrechnungsmass" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "mit", "valueType": "xs:string" }, { "idShort": "Bereitstellungsart", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Bereitstellungsart" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "cpt", "valueType": "xs:string" }, { "idShort": "VerfuegbarAb", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/VerfuegbarAb" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "2023-01-01", "valueType": "xs:date" }, { "idShort": "VerfuegbarBis", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/VerfuegbarBis" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "2023-12-31", "valueType": "xs:date" }, @@ -2203,26 +6266,19 @@ "keys": [ { "type": "GlobalReference", - "value": "basys4forestry.de/Kontakt" + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer" } ] }, - "value": [ + "qualifiers": [ { - "idShort": "Kontaktrolle", - "modelType": "Property", - "semanticId": { - "type": "GlobalReference", - "keys": [ - { - "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO204#003" - } - ] - }, - "value": "Lieferant", - "valueType": "xs:string" - }, + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": [ { "idShort": "Firmenname", "modelType": "Property", @@ -2231,10 +6287,18 @@ "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAW001#001" + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Firmenname" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "Holzlieferant GmbH", "valueType": "xs:string" }, @@ -2246,10 +6310,18 @@ "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO208#003" + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Anrede" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "Herr", "valueType": "xs:string" }, @@ -2261,10 +6333,18 @@ "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO206#002" + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Vorname" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "Waldemar", "valueType": "xs:string" }, @@ -2276,51 +6356,135 @@ "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO205#002" + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Nachname" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "Schwarz", "valueType": "xs:string" }, { "idShort": "Adresse", "modelType": "Property", - "value": "Turmstr. 15, Aachen 52072", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Adresse" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "Turmstr. 15, Aachen 52064", "valueType": "xs:string" }, { "idShort": "Umsatzbesteuerung", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Umsatzbesteuerung" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "rb", "valueType": "xs:string" }, { "idShort": "IBAN", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/IBAN" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "DE1234567890", "valueType": "xs:string" }, { "idShort": "Steuernummer", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Steuernummer" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "99999999999", "valueType": "xs:string" }, { "idShort": "Telefonnummern", "modelType": "SubmodelElementList", - "orderRelevant": true, - "typeValueListElement": "Property", - "semanticIdListElement": { + "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO136#002" + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Telefonnummern" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "orderRelevant": true, + "typeValueListElement": "Property", "valueTypeListElement": "xs:string", "value": [ { @@ -2331,10 +6495,18 @@ "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO136#002" + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Telefonnummern/Telefon" } ] }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "0241-123456", "valueType": "xs:string" }, @@ -2346,10 +6518,18 @@ "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO136#002" + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Telefonnummern/Telefon" } ] }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "0176-123456", "valueType": "xs:string" } @@ -2358,17 +6538,25 @@ { "idShort": "Emailadressen", "modelType": "SubmodelElementList", - "orderRelevant": true, - "typeValueListElement": "Property", - "semanticIdListElement": { + "semanticId": { "type": "GlobalReference", "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO198#002" + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Emailadressen" } ] }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "orderRelevant": true, + "typeValueListElement": "Property", "valueTypeListElement": "xs:string", "value": [ { @@ -2379,10 +6567,18 @@ "keys": [ { "type": "GlobalReference", - "value": "eldatstandard.de/dokumentation/1.0.2/0173-1#02-AAO198#002" + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Emailadressen/Email" } ] }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "schwarz@waldemar.de", "valueType": "xs:string" } @@ -2393,18 +6589,69 @@ { "idShort": "Notiz", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Notiz" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "Dies ist ein Verkaufslos", "valueType": "xs:string" }, { "idShort": "Holzlisten", "modelType": "SubmodelElementList", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Holzlisten" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "orderRelevant": true, "typeValueListElement": "ReferenceElement", "value": [ { - "idShort": "Holzliste1", + "idShort": "HolzlisteReference1", "modelType": "ReferenceElement", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Holzlisten/HolzlisteReference" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": { "type": "ModelReference", "keys": [ @@ -2420,34 +6667,159 @@ { "idShort": "Preismatrix", "modelType": "SubmodelElementList", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "orderRelevant": true, "typeValueListElement": "SubmodelElementCollection", "value": [ { "idShort": "Preismatrixeintrag1", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "Preis", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag/Preis" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "50.5", "valueType": "xs:double" }, { "idShort": "MittendurchmesserVon", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag/MittendurchmesserVon" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "45.0", "valueType": "xs:double" }, { "idShort": "MittendurchmesserBis", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag/MittendurchmesserBis" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "55.0", "valueType": "xs:double" }, { - "idShort": "Gueteklasse", + "idShort": "GueteklasseVon", + "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag/GueteklasseVon" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "in", + "valueType": "xs:string" + }, + { + "idShort": "GueteklasseBis", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag/GueteklasseBis" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "in", "valueType": "xs:string" } @@ -2456,28 +6828,136 @@ { "idShort": "Preismatrixeintrag2", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "Preis", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag/Preis" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "50.5", "valueType": "xs:double" }, { "idShort": "MittendurchmesserVon", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag/MittendurchmesserVon" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "55.0", "valueType": "xs:double" }, { "idShort": "MittendurchmesserBis", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag/MittendurchmesserBis" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "65.0", "valueType": "xs:double" }, { - "idShort": "Gueteklasse", + "idShort": "GueteklasseVon", + "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag/GueteklasseVon" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "value": "a", + "valueType": "xs:string" + }, + { + "idShort": "GueteklasseBis", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag/GueteklasseBis" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "a", "valueType": "xs:string" } @@ -2491,70 +6971,283 @@ "idShort": "Waldweg", "modelType": "Submodel", "id": "https://www.company.com/submodels/waldweg", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Waldweg/0/1" + } + ] + }, "submodelElements": [ { "idShort": "Beschreibung", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Beschreibung" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "beschreibung", "valueType": "xs:string" }, { "idShort": "Erstellungsdatum", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Erstellungsdatum" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "valueType": "xs:date" }, { "idShort": "Aktualisierungsdatum", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Aktualisierungsdatum" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "valueType": "xs:date" }, { "idShort": "Breite", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Breite" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "150.5", "valueType": "xs:double" }, { "idShort": "Wegpunkte", "modelType": "SubmodelElementList", - "orderRelevant": true, - "typeValueListElement": "SubmodelElementCollection", - "value": [ + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "orderRelevant": true, + "typeValueListElement": "SubmodelElementCollection", + "value": [ { "idShort": "Standort1", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Standort" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "Koordinate", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Standort/Koordinate" + } + ] + }, + "qualifiers": [ + { + "value": "OneToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "x", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Standort/Koordinate/x" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "30.00004", "valueType": "xs:double" }, { "idShort": "y", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Standort/Koordinate/y" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "120.8", "valueType": "xs:double" }, { "idShort": "alt", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Standort/Koordinate/alt" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "valueType": "xs:double" }, { "idShort": "crs", "modelType": "Property", - "valueType": "xs:double" + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Standort/Koordinate/crs" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "valueType": "xs:string" } ] }, { "idShort": "Notiz", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Standort/Notiz" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "Die Position", "valueType": "xs:string" } @@ -2565,44 +7258,180 @@ { "idShort": "Wendepunkte", "modelType": "SubmodelElementList", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "orderRelevant": true, "typeValueListElement": "SubmodelElementCollection", "value": [ { "idShort": "Standort1", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Standort" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "Koordinate", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Standort/Koordinate" + } + ] + }, + "qualifiers": [ + { + "value": "OneToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "x", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Standort/Koordinate/x" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "30.00004", "valueType": "xs:double" }, { "idShort": "y", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Standort/Koordinate/y" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "120.8", "valueType": "xs:double" }, { "idShort": "alt", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Standort/Koordinate/alt" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "valueType": "xs:double" }, { "idShort": "crs", "modelType": "Property", - "valueType": "xs:double" + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Standort/Koordinate/crs" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "valueType": "xs:string" } ] }, { "idShort": "Notiz", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Standort/Notiz" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "Die Position", "valueType": "xs:string" } @@ -2616,122 +7445,457 @@ "idShort": "ZuFaellendeBaeume", "modelType": "Submodel", "id": "https://www.company.com/submodels/zu_faellende_baeume", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1" + } + ] + }, "submodelElements": [ - { - "idShort": "Name", - "modelType": "Property", - "value": "Baueme zu faellen", - "valueType": "xs:string" - }, { "idShort": "Beschreibung", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Beschreibung" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "Baueme sollen demnaechst gefaellt werden", "valueType": "xs:string" }, { "idShort": "Umring", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring" + } + ] + }, "value": [ { "idShort": "Name", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Name" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "name", "valueType": "xs:string" }, { "idShort": "Beschreibung", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Beschreibung" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "beschreibung", "valueType": "xs:string" }, { "idShort": "Koordinaten", "modelType": "SubmodelElementList", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten" + } + ] + }, + "qualifiers": [ + { + "value": "One", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "orderRelevant": true, "typeValueListElement": "SubmodelElementCollection", "value": [ { "idShort": "Koordinate1", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinate" + } + ] + }, + "qualifiers": [ + { + "value": "OneToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "x", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinate/x" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "8.916091918945312", "valueType": "xs:double" }, { "idShort": "y", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinate/y" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "49.86861816524657", "valueType": "xs:double" }, { "idShort": "alt", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinate/alt" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "valueType": "xs:double" }, { "idShort": "crs", "modelType": "Property", - "valueType": "xs:double" + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinate/crs" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "valueType": "xs:string" } ] }, { "idShort": "Koordinate2", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinate" + } + ] + }, + "qualifiers": [ + { + "value": "OneToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "x", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinate/x" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "30.00004", "valueType": "xs:double" }, { "idShort": "y", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinate/y" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "120.8", "valueType": "xs:double" }, { "idShort": "alt", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinate/alt" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "valueType": "xs:double" }, { "idShort": "crs", "modelType": "Property", - "valueType": "xs:double" + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinate/crs" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "valueType": "xs:string" } ] }, { "idShort": "Koordinate3", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinate" + } + ] + }, + "qualifiers": [ + { + "value": "OneToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "x", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinate/x" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "30.00004", "valueType": "xs:double" }, { "idShort": "y", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinate/y" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "120.8", "valueType": "xs:double" }, { "idShort": "alt", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinate/alt" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "valueType": "xs:double" }, { "idShort": "crs", "modelType": "Property", - "valueType": "xs:double" + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinate/crs" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "valueType": "xs:string" } ] } @@ -2740,108 +7904,431 @@ ] }, { - "idShort": "Standort", + "idShort": "Position", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Position" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "Koordinate", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Position/Koordinate" + } + ] + }, + "qualifiers": [ + { + "value": "OneToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "x", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Position/Koordinate/x" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "30.00004", "valueType": "xs:double" }, { "idShort": "y", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Position/Koordinate/y" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "120.8", "valueType": "xs:double" }, { "idShort": "alt", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Position/Koordinate/alt" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "valueType": "xs:double" }, { "idShort": "crs", "modelType": "Property", - "valueType": "xs:double" + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Position/Koordinate/crs" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "valueType": "xs:string" } ] }, { "idShort": "Notiz", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Position/Notiz" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "Die Position", "valueType": "xs:string" } - ] - }, - { - "idShort": "Baumliste", - "modelType": "SubmodelElementList", + ] + }, + { + "idShort": "Baumliste", + "modelType": "SubmodelElementList", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "orderRelevant": true, "typeValueListElement": "SubmodelElementCollection", "value": [ { "idShort": "StehenderBaum1", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "Hoehe", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Hoehe" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "20.3", "valueType": "xs:double" }, { "idShort": "bhd", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/bhd" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "30.2", "valueType": "xs:double" }, { "idShort": "Baumart", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Baumart" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "fi", "valueType": "xs:string" }, { "idShort": "Position", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Position" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "Koordinate", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Position/Koordinate" + } + ] + }, + "qualifiers": [ + { + "value": "OneToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "x", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Position/Koordinate/x" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "8.916091918945312", "valueType": "xs:double" }, { "idShort": "y", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Position/Koordinate/y" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "49.86861816524657", "valueType": "xs:double" }, { "idShort": "alt", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Position/Koordinate/alt" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "valueType": "xs:double" }, { "idShort": "crs", "modelType": "Property", - "valueType": "xs:double" + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Position/Koordinate/crs" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "valueType": "xs:string" } ] }, { "idShort": "Notiz", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Position/Notiz" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "Die Position Fichte", "valueType": "xs:string" } @@ -2852,60 +8339,247 @@ { "idShort": "StehenderBaum2", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "Hoehe", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Hoehe" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "17.0", "valueType": "xs:double" }, { "idShort": "bhd", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/bhd" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "31.2", "valueType": "xs:double" }, { "idShort": "Baumart", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Baumart" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "ei", "valueType": "xs:string" }, { "idShort": "Position", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Position" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "Koordinate", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Position/Koordinate" + } + ] + }, + "qualifiers": [ + { + "value": "OneToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "x", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Position/Koordinate/x" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "30.00004", "valueType": "xs:double" }, { "idShort": "y", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Position/Koordinate/y" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "120.8", "valueType": "xs:double" }, { "idShort": "alt", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Position/Koordinate/alt" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "valueType": "xs:double" }, { "idShort": "crs", "modelType": "Property", - "valueType": "xs:double" + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Position/Koordinate/crs" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "valueType": "xs:string" } ] }, { "idShort": "Notiz", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Position/Notiz" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "Die Position Eiche", "valueType": "xs:string" } @@ -2916,60 +8590,247 @@ { "idShort": "StehenderBaum3", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "Hoehe", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Hoehe" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "15.3", "valueType": "xs:double" }, { "idShort": "bhd", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/bhd" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "20.2", "valueType": "xs:double" }, { "idShort": "Baumart", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Baumart" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "bu", "valueType": "xs:string" }, { "idShort": "Position", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Position" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "Koordinate", "modelType": "SubmodelElementCollection", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Position/Koordinate" + } + ] + }, + "qualifiers": [ + { + "value": "OneToMany", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": [ { "idShort": "x", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Position/Koordinate/x" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "30.00004", "valueType": "xs:double" }, { "idShort": "y", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Position/Koordinate/y" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "120.8", "valueType": "xs:double" }, { "idShort": "alt", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Position/Koordinate/alt" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "valueType": "xs:double" }, { "idShort": "crs", "modelType": "Property", - "valueType": "xs:double" + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Position/Koordinate/crs" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], + "valueType": "xs:string" } ] }, { "idShort": "Notiz", "modelType": "Property", + "semanticId": { + "type": "GlobalReference", + "keys": [ + { + "type": "GlobalReference", + "value": "https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Position/Notiz" + } + ] + }, + "qualifiers": [ + { + "value": "ZeroToOne", + "kind": "ConceptQualifier", + "valueType": "xs:string", + "type": "Cardinality" + } + ], "value": "Die Position Buche", "valueType": "xs:string" } diff --git a/demos/demo3_generic_model.py b/demos/demo3_generic_model.py new file mode 100644 index 0000000000000000000000000000000000000000..22aafcabc2351d4a27889b6b1381a5ba8f3751f7 --- /dev/null +++ b/demos/demo3_generic_model.py @@ -0,0 +1,155 @@ +import os, sys, inspect +from typing import List + +import basyx +from basyx.aas import model +from basyx.aas.adapter.json import json_serialization +import datetime + +from model import enums, generic_model + + +def create_arbeitsauftrag(): + arbeitsauftrag = generic_model.Arbeitsauftrag( + id_="https://www.company.com/submodels/arbeitsauftrag", + hiebsnummer="abc123", + kurzbeschreibung="beschreibung", + ansprechpartner=generic_model.Arbeitsauftrag.Ansprechpartner(), + unternehmerHolzrueckung=generic_model.Arbeitsauftrag.UnternehmerHolzrueckung(), + unternehmerHolzernte=generic_model.Arbeitsauftrag.UnternehmerHolzernte(), + sortimente=[create_sortiment()], + zuFaellendeBaeume=model.ModelReference.from_referable(create_zu_faellende_baeume()) + ) + return arbeitsauftrag + + +def create_sortiment(): + sortiment = generic_model.Arbeitsauftrag.Sortimente.Sortiment( + nummer=1, + sortimentstyp=enums.Sortimentstyp.Stammholz.value, + sorte=enums.Sorte.lang.value, + holzart=enums.Holzart.Fichte.value, + gueteklasseVon=enums.Gueteklasse.Qualitaet_A.value, + gueteklasseBis=enums.Gueteklasse.Qualitaet_B.value, + laengeVon=3.0, + laengeBis=6.0, + mindestzopf=1.0, + maxDurchmesser=10.0, + laengenzugabe=10.0, + mengenschaetzung=10.0, + bemerkung="Bemerkung", + ergebnis=generic_model.Arbeitsauftrag.Sortimente.Sortiment.Ergebnis([model.ModelReference.from_referable(create_holzliste())]), + kaeufer=generic_model.Arbeitsauftrag.Sortimente.Sortiment.Kaeufer(kontaktrolle=enums.Kontaktrolle.Kaeufer.value) + ) + return sortiment + + +def create_zu_faellende_baeume(): + umring = generic_model.ZuFaellendeBaeume.Umring( + name="name", beschreibung="beschreibung", + koordinaten=generic_model.ZuFaellendeBaeume.Umring.Koordinaten([ + generic_model.ZuFaellendeBaeume.Umring.Koordinaten.Koordinate(x=30.00004, y=120.80), + generic_model.ZuFaellendeBaeume.Umring.Koordinaten.Koordinate(x=31.00004, y=121.80), + generic_model.ZuFaellendeBaeume.Umring.Koordinaten.Koordinate(x=32.00004, y=122.80), + ])) + + zufaellendebaeume = generic_model.ZuFaellendeBaeume( + id_="https://www.company.com/submodels/zu_faellende_baeume", + beschreibung="Baueme sollen demnaechst gefaellt werden", + umring=umring, + position=generic_model.ZuFaellendeBaeume.Position( + koordinate=generic_model.ZuFaellendeBaeume.Position.Koordinate(x=31.00004, y=121.80), + notiz="Die Position" + ), + baumliste=( + generic_model.ZuFaellendeBaeume.Baumliste.StehenderBaum( + hoehe=15.3, bhd=20.2, baumart=enums.Holzart.Buche.value, + position=generic_model.ZuFaellendeBaeume.Baumliste.StehenderBaum.Position( + koordinate=generic_model.ZuFaellendeBaeume.Position.Koordinate(x=31.00004, y=121.80), + notiz="Position" + )), + ), + ) + return zufaellendebaeume + + +def create_holzliste(): + kopfdaten = generic_model.Holzliste.Kopfdaten( + projekt="Eslohe2023", + hieb=enums.Hieb.Durchforstung.value, + ernte=generic_model.Holzliste.Kopfdaten.Ernte(min=datetime.date(2023, 12, 1), max=datetime.date(2023, 12, 31)), + lieferant=generic_model.Holzliste.Kopfdaten.Lieferant(), + kaeufer=generic_model.Holzliste.Kopfdaten.Kaeufer(), + fuhrmann=generic_model.Holzliste.Kopfdaten.Fuhrmann(), + notiz="Dieses Holz ist sehr gut" + ) + + messergebnis_einzelstammliste = generic_model.Holzliste.PolterListe.Polter.Messergebnis_EinzelstammListe( + generic_model.Holzliste.PolterListe.Polter.Messergebnis_EinzelstammListe.Einzelstaemme([ + generic_model.Holzliste.PolterListe.Polter.Messergebnis_EinzelstammListe.Einzelstaemme.Einzelstamm( + menge=3.4, + stammlaenge=4.2, + stammnummer="1", + mittendurchmesser=47.0, + gueteklasse=enums.Gueteklasse.Normale_Qualitaet.value + ) + ]) + ) + + polter = generic_model.Holzliste.PolterListe.Polter( + polternummer="100", + vermessungsverfahren=enums.Vermessungsverfahren.Mittenstaerkenvermessung.value, + polterstatus=enums.Polterstatus.Vermessen.value, + messergebnis_EinzelstammListe=messergebnis_einzelstammliste, + standort=generic_model.Holzliste.PolterListe.Polter.Standort( + koordinate=generic_model.Holzliste.PolterListe.Polter.Standort.Koordinate(x=31.00004, y=121.80), + notiz="Die Position" + ), + fotos=[ + "https://upload.wikimedia.org/wikipedia/commons/thumb/a/ab/Altenbrak_Holz.JPG/1920px-Altenbrak_Holz.JPG", + "https://de.wikipedia.org/wiki/Polter#/media/Datei:Baumst%C3%A4mme_bei_St%C3%BCbeckshorn.jpg"], + videos=["https://www.youtube.com/watch?v=b65SSRfDwUo"], + ) + + holzliste = generic_model.Holzliste( + id_="https://www.company.com/holzliste/1", + kopfdaten=kopfdaten, + polterListe=generic_model.Holzliste.PolterListe([polter]), + sortimentstyp=enums.Sortimentstyp.Stammholz.value, + sorte=enums.Sorte.lang.value, + holzart=enums.Holzart.Fichte.value) + + return holzliste + + +def create_aas(): + arbeitsauftrag = create_arbeitsauftrag() + holzliste = create_holzliste() + zu_faellende_baeume = create_zu_faellende_baeume() + + submodels = [ + arbeitsauftrag, + holzliste, + zu_faellende_baeume, + ] + aas_dz_wald = model.AssetAdministrationShell( + id_="https://www.company.com/dz_wald/1", + id_short="DZWald", + asset_information=model.AssetInformation(), + submodel=submodels + ) + return aas_dz_wald, submodels + + +def write_aas(): + aas, submodels = create_aas() + + objstore = basyx.aas.model.DictObjectStore(submodels) + objstore.add(aas) + + with open("generic_dz_wald_example.json", "w", encoding='utf-8') as file: + json_serialization.write_aas_json_file(file, objstore) + + +if __name__ == "__main__": + write_aas() diff --git a/model/configs.py b/model/configs.py index 811a64e210e576fca1fad86e81254ba425f73ac0..c7e8b24b69130d79365e72e586ac571b38cc923d 100644 --- a/model/configs.py +++ b/model/configs.py @@ -1,11 +1,10 @@ -from basyx.aas.model import Key, datatypes, KeyTypes, GlobalReference +from basyx.aas.model import Key, datatypes, KeyTypes, GlobalReference, Qualifier # Namen NOTIZ = "Notiz" # Kontakt KONTAKT = "Kontakt" -KONTAKTROLLE = "Kontaktrolle" FIRMENNAME = "Firmenname" ANREDE = "Anrede" VORNAME = "Vorname" @@ -34,11 +33,12 @@ CRS = "crs" # Preismatrix PREISMATRIX = "Preismatrix" PREISMATRIXEINTRAG = "Preismatrixeintrag" -EINTRAEGE = "Eintraege" PREIS = "Preis" MITTENDURCHMESSER_VON = "MittendurchmesserVon" MITTENDURCHMESSER_BIS = "MittendurchmesserBis" GUETEKLASSE = "Gueteklasse" +GUETEKLASSE_VON_PREISMATRIX = "GueteklasseVon" +GUETEKLASSE_BIS_PREISMATRIX = "GueteklasseBis" # Kopfdaten KOPFDATEN = "Kopfdaten" @@ -81,6 +81,8 @@ STEHENDER_BAUM = "StehenderBaum" BHD = "bhd" HOEHE = "Hoehe" SORTIMENTSTYP = "Sortimentstyp" +STEHENDER_BAUM_BAUMART = "StehenderBaumBaumart" + BAUMART = "Baumart" # Holzliste @@ -90,6 +92,8 @@ SORTE = "Sorte" # Verkaufslos HOLZLISTEN = "Holzlisten" +HOLZLISTE_REF = "HolzlisteReference" +HOLZLISTE_REF_IN_HOLZLISTEN = "HolzlisteRefInHolzlisten" VERKAUFSLOS = "Verkaufslos" VERKAUFSSTATUS = "Verkaufsstatus" ABRECHNUNGSMASS = "Abrechnungsmass" @@ -102,12 +106,17 @@ VERKAEUFER = "Verkaeufer" HOLZPREISBEREICH = "Holzpreisbereich" PREIS_VON = "PreisVon" PREIS_BIS = "PreisBis" +HOLZPREISBEREICH_BAUMART = "HolzpreisbereichBaumart" +HOLZPREISBEREICH_SORTE = "HolzpreisbereichSorte" +HOLZLISTE_REF_IN_HOLZPREISBEREICH = "HolzlisteRefInHolzpreisbereich" DATUM = "Datum" QUELLE = "Quelle" # Sortiment SORTIMENT = "Sortiment" NUMMER = "Nummer" +GUETEKLASSE_VON = "GueteklasseVon" +GUETEKLASSE_BIS = "GueteklasseBis" LAENGE_VON = "LaengeVon" LAENGE_BIS = "LaengeBis" MINDESTZOPF = "Mindestzopf" @@ -116,6 +125,7 @@ LAENGENZUGABE = "Laengenzugabe" MENGENSCHAETZUNG = "Mengenschaetzung" BEMERKUNG = "Bemerkung" ERGEBNIS = "Ergebnis" +HOLZLISTE_REF_IN_ERGEBNIS = "HolzlisteReference" # ZuFaellendeBaeume ZU_FAELLENDE_BAEUME = "ZuFaellendeBaeume" @@ -128,6 +138,7 @@ HOLZPREISBEREICHE = "Holzpreisbereiche" # Bestandesdaten BESTANDESDATEN = "Bestandesdaten" BAUMARTEN = "Baumarten" +BESTANDESDATEN_BAUMART = "BestandesdatenBaumart" # Beobachtung BEOBACHTUNG = "Beobachtung" @@ -153,6 +164,7 @@ NATURSCHUTZHINWEISE = "Naturschutzhinweise" KARTE = "Karte" AUFTRAGSSTATUS = "Auftragsstatus" SORTIMENTE = "Sortimente" +ZU_FAELLENDE_BAEUME_REF = "ZuFaellendeBaeumeRefefence" # DZ_WALD DZ_WALD = "dz_wald" @@ -165,6 +177,7 @@ DESCRIPTION = "description" VALUE_TYPE = "value_type" ID_SHORT = "id_short" IDENTIFICATION = "identification" +QUALIFIER = "qualifier" B4F_SEMANTIC_ID_BASE = "basys4forestry.de/" ELDAT_SEMANTIC_ID_BASE = "eldatstandard.de/dokumentation/1.0.2/" @@ -182,86 +195,102 @@ def eclass_semantic_id_ref(name: str): return GlobalReference(key=(Key(KeyTypes.GLOBAL_REFERENCE, f"{ELDAT_SEMANTIC_ID_BASE}{name}"),)) +def mandatory_qualifier(): + return Qualifier(type_="Cardinality", value_type=str, value="One") +def optional_qualifier(): + return Qualifier(type_="Cardinality", value_type=str, value="ZeroToOne") +def iterable_mandatory_qualifier(): + return Qualifier(type_="Cardinality", value_type=str, value="OneToMany") +def iterable_optional_qualifier(): + return Qualifier(type_="Cardinality", value_type=str, value="ZeroToMany") + KWARGS = { KONTAKT: { # ID_SHORT will be that of the provided KONTAKTROLLE # ID_SHORT: KONTAKT, DESCRIPTION: None, SEMANTIC_ID: b4f_semantic_id_ref("Kontakt"), - }, - KONTAKTROLLE: { - ID_SHORT: KONTAKTROLLE, - DESCRIPTION: None, - SEMANTIC_ID: eclass_semantic_id_ref("0173-1#02-AAO204#003"), - VALUE_TYPE: str, + QUALIFIER: tuple([]), }, FIRMENNAME: { ID_SHORT: FIRMENNAME, DESCRIPTION: None, SEMANTIC_ID: eclass_semantic_id_ref("0173-1#02-AAW001#001"), VALUE_TYPE: str, + QUALIFIER: tuple([optional_qualifier()]), }, ANREDE: { ID_SHORT: ANREDE, DESCRIPTION: None, SEMANTIC_ID: eclass_semantic_id_ref("0173-1#02-AAO208#003"), VALUE_TYPE: str, + QUALIFIER: tuple([optional_qualifier()]), }, VORNAME: { ID_SHORT: VORNAME, DESCRIPTION: None, SEMANTIC_ID: eclass_semantic_id_ref("0173-1#02-AAO206#002"), VALUE_TYPE: str, + QUALIFIER: tuple([optional_qualifier()]), }, NACHNAME: { ID_SHORT: NACHNAME, DESCRIPTION: None, SEMANTIC_ID: eclass_semantic_id_ref("0173-1#02-AAO205#002"), VALUE_TYPE: str, + QUALIFIER: tuple([optional_qualifier()]), }, ADRESSE: { ID_SHORT: ADRESSE, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: str, + QUALIFIER: tuple([optional_qualifier()]), }, TELEFONNUMMERN: { ID_SHORT: TELEFONNUMMERN, DESCRIPTION: None, + QUALIFIER: tuple([optional_qualifier()]), }, TELEFON: { ID_SHORT: TELEFON, DESCRIPTION: None, SEMANTIC_ID: eclass_semantic_id_ref("0173-1#02-AAO136#002"), VALUE_TYPE: str, + QUALIFIER: tuple([iterable_optional_qualifier()]), }, EMAILADRESSEN: { ID_SHORT: EMAILADRESSEN, DESCRIPTION: None, + QUALIFIER: tuple([optional_qualifier()]), }, EMAIL: { ID_SHORT: EMAIL, DESCRIPTION: None, SEMANTIC_ID: eclass_semantic_id_ref("0173-1#02-AAO198#002"), VALUE_TYPE: str, + QUALIFIER: tuple([iterable_optional_qualifier()]), }, UMSATZBESTEUERUNG: { ID_SHORT: UMSATZBESTEUERUNG, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: str, + QUALIFIER: tuple([optional_qualifier()]), }, IBAN: { ID_SHORT: IBAN, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: str, + QUALIFIER: tuple([optional_qualifier()]), }, STEUERNUMMER: { ID_SHORT: STEUERNUMMER, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: str, + QUALIFIER: tuple([optional_qualifier()]), }, # Geoklassen @@ -269,63 +298,74 @@ KWARGS = { ID_SHORT: UMRING, DESCRIPTION: None, SEMANTIC_ID: None, + QUALIFIER: tuple([]), }, NAME: { ID_SHORT: NAME, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: str, + QUALIFIER: tuple([mandatory_qualifier()]), }, BESCHREIBUNG: { ID_SHORT: BESCHREIBUNG, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: str, + QUALIFIER: tuple([mandatory_qualifier()]), }, KOORDINATEN: { ID_SHORT: KOORDINATEN, DESCRIPTION: None, SEMANTIC_ID: None, + QUALIFIER: tuple([mandatory_qualifier()]), }, STANDORT: { ID_SHORT: STANDORT, DESCRIPTION: None, SEMANTIC_ID: None, + QUALIFIER: tuple([optional_qualifier()]), }, KOORDINATE: { ID_SHORT: KOORDINATE, DESCRIPTION: None, SEMANTIC_ID: None, + QUALIFIER: tuple([iterable_mandatory_qualifier()]), }, X: { ID_SHORT: X, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: float, + QUALIFIER: tuple([optional_qualifier()]), }, Y: { ID_SHORT: Y, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: float, + QUALIFIER: tuple([optional_qualifier()]), }, ALT: { ID_SHORT: ALT, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: float, + QUALIFIER: tuple([optional_qualifier()]), }, CRS: { ID_SHORT: CRS, DESCRIPTION: None, SEMANTIC_ID: None, - VALUE_TYPE: float, + VALUE_TYPE: str, + QUALIFIER: tuple([optional_qualifier()]), }, NOTIZ: { ID_SHORT: NOTIZ, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: str, + QUALIFIER: tuple([optional_qualifier()]), }, # Preismatrix @@ -333,40 +373,55 @@ KWARGS = { ID_SHORT: PREISMATRIXEINTRAG, DESCRIPTION: None, SEMANTIC_ID: None, + QUALIFIER: tuple([iterable_optional_qualifier()]), }, PREIS: { ID_SHORT: PREIS, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: float, + QUALIFIER: tuple([mandatory_qualifier()]), }, MITTENDURCHMESSER_VON: { ID_SHORT: MITTENDURCHMESSER_VON, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: float, + QUALIFIER: tuple([optional_qualifier()]), }, MITTENDURCHMESSER_BIS: { ID_SHORT: MITTENDURCHMESSER_BIS, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: float, + QUALIFIER: tuple([optional_qualifier()]), }, GUETEKLASSE: { ID_SHORT: GUETEKLASSE, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: str, + QUALIFIER: tuple([optional_qualifier()]), }, - PREISMATRIX: { - ID_SHORT: PREISMATRIX, + GUETEKLASSE_VON_PREISMATRIX: { + ID_SHORT: GUETEKLASSE_VON_PREISMATRIX, DESCRIPTION: None, SEMANTIC_ID: None, + VALUE_TYPE: str, + QUALIFIER: tuple([optional_qualifier()]), + }, + GUETEKLASSE_BIS_PREISMATRIX: { + ID_SHORT: GUETEKLASSE_BIS_PREISMATRIX, + DESCRIPTION: None, + SEMANTIC_ID: None, + VALUE_TYPE: str, + QUALIFIER: tuple([optional_qualifier()]), }, - EINTRAEGE: { - ID_SHORT: EINTRAEGE, + PREISMATRIX: { + ID_SHORT: PREISMATRIX, DESCRIPTION: None, SEMANTIC_ID: None, + QUALIFIER: tuple([optional_qualifier()]), }, # Kopfdaten @@ -374,39 +429,46 @@ KWARGS = { ID_SHORT: KOPFDATEN, DESCRIPTION: None, SEMANTIC_ID: None, + QUALIFIER: tuple([mandatory_qualifier()]), }, PROJEKT: { ID_SHORT: PROJEKT, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: str, + QUALIFIER: tuple([optional_qualifier()]), }, HIEB: { ID_SHORT: HIEB, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: str, + QUALIFIER: tuple([optional_qualifier()]), }, ERNTE: { ID_SHORT: ERNTE, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: datatypes.Date, + QUALIFIER: tuple([optional_qualifier()]), }, LIEFERANT: { ID_SHORT: LIEFERANT, DESCRIPTION: None, SEMANTIC_ID: b4f_semantic_id_ref("Kontakt"), + QUALIFIER: tuple([optional_qualifier()]), }, KAEUFER: { ID_SHORT: KAEUFER, DESCRIPTION: None, SEMANTIC_ID: b4f_semantic_id_ref("Kontakt"), + QUALIFIER: tuple([optional_qualifier()]), }, FUHRMANN: { ID_SHORT: FUHRMANN, DESCRIPTION: None, SEMANTIC_ID: b4f_semantic_id_ref("Kontakt"), + QUALIFIER: tuple([optional_qualifier()]), }, # Messergebnisse @@ -414,57 +476,73 @@ KWARGS = { ID_SHORT: RAUMMASS_ENERGIEHOLZ, DESCRIPTION: None, SEMANTIC_ID: None, + QUALIFIER: tuple([optional_qualifier()]), + }, + RAUMMASS_INDUSTRIEHOLZ: { + ID_SHORT: RAUMMASS_INDUSTRIEHOLZ, + DESCRIPTION: None, + SEMANTIC_ID: None, + QUALIFIER: tuple([optional_qualifier()]), }, MENGE: { ID_SHORT: MENGE, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: float, + QUALIFIER: tuple([mandatory_qualifier()]), }, STAMMLAENGE: { ID_SHORT: STAMMLAENGE, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: float, + QUALIFIER: tuple([mandatory_qualifier()]), }, STAMMANZAHL: { ID_SHORT: STAMMANZAHL, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: int, + QUALIFIER: tuple([optional_qualifier()]), }, KLAMMERSTAMMABSCHNITTSNUMMER: { ID_SHORT: KLAMMERSTAMMABSCHNITTSNUMMER, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: str, + QUALIFIER: tuple([optional_qualifier()]), }, MITTENDURCHMESSER: { ID_SHORT: MITTENDURCHMESSER, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: float, + QUALIFIER: tuple([mandatory_qualifier()]), }, EINZELSTAEMME: { ID_SHORT: EINZELSTAEMME, DESCRIPTION: None, SEMANTIC_ID: None, + QUALIFIER: tuple([mandatory_qualifier()]), }, EINZELSTAMM: { ID_SHORT: EINZELSTAMM, DESCRIPTION: None, SEMANTIC_ID: None, + QUALIFIER: tuple([iterable_mandatory_qualifier()]), }, STAMMNUMMER: { ID_SHORT: STAMMNUMMER, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: str, + QUALIFIER: tuple([mandatory_qualifier()]), }, EINZELSTAMM_LISTE: { ID_SHORT: EINZELSTAMM_LISTE, DESCRIPTION: None, SEMANTIC_ID: None, + QUALIFIER: tuple([optional_qualifier()]), }, # Polter @@ -472,51 +550,60 @@ KWARGS = { ID_SHORT: POLTER_LISTE, DESCRIPTION: None, SEMANTIC_ID: None, + QUALIFIER: tuple([mandatory_qualifier()]), }, POLTER: { ID_SHORT: POLTER, DESCRIPTION: None, SEMANTIC_ID: None, + QUALIFIER: tuple([iterable_mandatory_qualifier()]), }, POLTERNUMMER: { ID_SHORT: POLTERNUMMER, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: str, + QUALIFIER: tuple([mandatory_qualifier()]), }, POLTERSTATUS: { ID_SHORT: POLTERSTATUS, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: str, + QUALIFIER: tuple([mandatory_qualifier()]), }, VERMESSUNGSVERFAHREN: { ID_SHORT: VERMESSUNGSVERFAHREN, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: str, + QUALIFIER: tuple([mandatory_qualifier()]), }, FOTOS: { - ID_SHORT: FOTO, + ID_SHORT: FOTOS, DESCRIPTION: None, SEMANTIC_ID: None, + QUALIFIER: tuple([optional_qualifier()]), }, FOTO: { ID_SHORT: FOTO, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: str, + QUALIFIER: tuple([iterable_optional_qualifier()]), }, VIDEOS: { ID_SHORT: VIDEOS, DESCRIPTION: None, SEMANTIC_ID: None, + QUALIFIER: tuple([optional_qualifier()]), }, VIDEO: { ID_SHORT: VIDEO, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: str, + QUALIFIER: tuple([iterable_optional_qualifier()]), }, # Stehenderbaum @@ -524,30 +611,35 @@ KWARGS = { ID_SHORT: STEHENDER_BAUM, DESCRIPTION: None, SEMANTIC_ID: None, + QUALIFIER: tuple([iterable_optional_qualifier()]), }, BHD: { ID_SHORT: BHD, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: float, + QUALIFIER: tuple([optional_qualifier()]), }, HOEHE: { ID_SHORT: HOEHE, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: float, + QUALIFIER: tuple([optional_qualifier()]), }, - BAUMART: { + STEHENDER_BAUM_BAUMART: { ID_SHORT: BAUMART, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: str, + QUALIFIER: tuple([optional_qualifier()]), }, SORTIMENTSTYP: { ID_SHORT: SORTIMENTSTYP, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: str, + QUALIFIER: tuple([mandatory_qualifier()]), }, # Holzliste @@ -561,12 +653,28 @@ KWARGS = { DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: str, + QUALIFIER: tuple([mandatory_qualifier()]), }, SORTE: { ID_SHORT: SORTE, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: str, + QUALIFIER: tuple([mandatory_qualifier()]), + }, + HOLZPREISBEREICH_BAUMART: { + ID_SHORT: BAUMART, + DESCRIPTION: None, + SEMANTIC_ID: None, + VALUE_TYPE: str, + QUALIFIER: tuple([mandatory_qualifier()]), + }, + HOLZPREISBEREICH_SORTE: { + ID_SHORT: SORTE, + DESCRIPTION: None, + SEMANTIC_ID: None, + VALUE_TYPE: str, + QUALIFIER: tuple([optional_qualifier()]), }, # Verkaufslos @@ -579,42 +687,55 @@ KWARGS = { ID_SHORT: HOLZLISTEN, DESCRIPTION: None, SEMANTIC_ID: None, + QUALIFIER: tuple([optional_qualifier()]), + }, + HOLZLISTE_REF_IN_HOLZLISTEN: { + ID_SHORT: HOLZLISTE_REF, + DESCRIPTION: None, + SEMANTIC_ID: None, + QUALIFIER: tuple([iterable_optional_qualifier()]), }, VERKAUFSSTATUS: { ID_SHORT: VERKAUFSSTATUS, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: int, + QUALIFIER: tuple([mandatory_qualifier()]), }, ABRECHNUNGSMASS: { ID_SHORT: ABRECHNUNGSMASS, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: str, + QUALIFIER: tuple([mandatory_qualifier()]), }, BEREITSTELLUNGSART: { ID_SHORT: BEREITSTELLUNGSART, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: str, + QUALIFIER: tuple([mandatory_qualifier()]), }, VERFUEGBAR_AB: { ID_SHORT: VERFUEGBAR_AB, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: datatypes.Date, + QUALIFIER: tuple([mandatory_qualifier()]), }, VERFUEGBAR_BIS: { ID_SHORT: VERFUEGBAR_BIS, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: datatypes.Date, + QUALIFIER: tuple([optional_qualifier()]), }, VERKAEUFER: { ID_SHORT: VERKAEUFER, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: str, + QUALIFIER: tuple([optional_qualifier()]), }, # Holzpreisbereich @@ -622,30 +743,41 @@ KWARGS = { ID_SHORT: HOLZPREISBEREICH, DESCRIPTION: None, SEMANTIC_ID: None, + QUALIFIER: tuple([iterable_optional_qualifier()]), }, PREIS_VON: { ID_SHORT: PREIS_VON, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: float, + QUALIFIER: tuple([mandatory_qualifier()]), }, PREIS_BIS: { ID_SHORT: PREIS_BIS, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: float, + QUALIFIER: tuple([mandatory_qualifier()]), + }, + HOLZLISTE_REF_IN_HOLZPREISBEREICH: { + ID_SHORT: HOLZLISTE_REF, + DESCRIPTION: None, + SEMANTIC_ID: None, + QUALIFIER: tuple([optional_qualifier()]), }, DATUM: { ID_SHORT: DATUM, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: datatypes.Date, + QUALIFIER: tuple([optional_qualifier()]), }, QUELLE: { ID_SHORT: QUELLE, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: str, + QUALIFIER: tuple([optional_qualifier()]), }, # Sortiment @@ -653,59 +785,89 @@ KWARGS = { ID_SHORT: SORTIMENT, DESCRIPTION: None, SEMANTIC_ID: None, + QUALIFIER: tuple([iterable_optional_qualifier()]), }, NUMMER: { ID_SHORT: NUMMER, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: int, + QUALIFIER: tuple([mandatory_qualifier()]), + }, + GUETEKLASSE_VON: { + ID_SHORT: GUETEKLASSE_VON, + DESCRIPTION: None, + SEMANTIC_ID: None, + VALUE_TYPE: str, + QUALIFIER: tuple([mandatory_qualifier()]), + }, + GUETEKLASSE_BIS: { + ID_SHORT: GUETEKLASSE_BIS, + DESCRIPTION: None, + SEMANTIC_ID: None, + VALUE_TYPE: str, + QUALIFIER: tuple([mandatory_qualifier()]), }, LAENGE_VON: { ID_SHORT: LAENGE_VON, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: float, + QUALIFIER: tuple([mandatory_qualifier()]), }, LAENGE_BIS: { ID_SHORT: LAENGE_BIS, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: float, + QUALIFIER: tuple([mandatory_qualifier()]), }, MINDESTZOPF: { ID_SHORT: MINDESTZOPF, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: float, + QUALIFIER: tuple([mandatory_qualifier()]), }, MAX_DURCHMESSER: { ID_SHORT: MAX_DURCHMESSER, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: float, + QUALIFIER: tuple([mandatory_qualifier()]), }, LAENGENZUGABE: { ID_SHORT: LAENGENZUGABE, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: float, + QUALIFIER: tuple([mandatory_qualifier()]), }, MENGENSCHAETZUNG: { ID_SHORT: MENGENSCHAETZUNG, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: float, + QUALIFIER: tuple([mandatory_qualifier()]), }, BEMERKUNG: { ID_SHORT: BEMERKUNG, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: str, + QUALIFIER: tuple([optional_qualifier()]), }, ERGEBNIS: { ID_SHORT: ERGEBNIS, DESCRIPTION: None, SEMANTIC_ID: None, + QUALIFIER: tuple([optional_qualifier()]), + }, + HOLZLISTE_REF_IN_ERGEBNIS: { + ID_SHORT: HOLZLISTE_REF, + DESCRIPTION: None, + SEMANTIC_ID: None, + QUALIFIER: tuple([iterable_optional_qualifier()]), }, # ZuFaellendeBaeume @@ -718,11 +880,13 @@ KWARGS = { ID_SHORT: POSITION, DESCRIPTION: None, SEMANTIC_ID: None, + QUALIFIER: tuple([optional_qualifier()]), }, BAUMLISTE: { ID_SHORT: BAUMLISTE, DESCRIPTION: None, SEMANTIC_ID: None, + QUALIFIER: tuple([optional_qualifier()]), }, # Holzpreisbereiche @@ -742,6 +906,20 @@ KWARGS = { ID_SHORT: BAUMARTEN, DESCRIPTION: None, SEMANTIC_ID: None, + QUALIFIER: tuple([optional_qualifier()]), + }, + BESTANDESDATEN_BAUMART: { + ID_SHORT: BAUMART, + DESCRIPTION: None, + SEMANTIC_ID: None, + VALUE_TYPE: str, + QUALIFIER: tuple([iterable_optional_qualifier()]), + }, + WALDBESITZER: { + ID_SHORT: WALDBESITZER, + DESCRIPTION: None, + SEMANTIC_ID: None, + QUALIFIER: tuple([optional_qualifier()]), }, # Beobachtung @@ -762,28 +940,33 @@ KWARGS = { DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: datatypes.Date, + QUALIFIER: tuple([optional_qualifier()]), }, AKTUALISIERUNGSDATUM: { ID_SHORT: AKTUALISIERUNGSDATUM, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: datatypes.Date, + QUALIFIER: tuple([optional_qualifier()]), }, BREITE: { ID_SHORT: BREITE, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: float, + QUALIFIER: tuple([optional_qualifier()]), }, WEGPUNKTE: { ID_SHORT: WEGPUNKTE, DESCRIPTION: None, SEMANTIC_ID: None, + QUALIFIER: tuple([optional_qualifier()]), }, WENDEPUNKTE: { ID_SHORT: WENDEPUNKTE, DESCRIPTION: None, SEMANTIC_ID: None, + QUALIFIER: tuple([optional_qualifier()]), }, # Arbeitsauftrag @@ -797,61 +980,72 @@ KWARGS = { DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: str, + QUALIFIER: tuple([mandatory_qualifier()]), }, KURZBESCHREIBUNG: { ID_SHORT: KURZBESCHREIBUNG, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: str, + QUALIFIER: tuple([mandatory_qualifier()]), }, ANSPRECHPARTNER: { ID_SHORT: ANSPRECHPARTNER, DESCRIPTION: None, SEMANTIC_ID: None, - }, - WALDBESITZER: { - ID_SHORT: WALDBESITZER, - DESCRIPTION: None, - SEMANTIC_ID: None, + QUALIFIER: tuple([mandatory_qualifier()]), }, UNTERNEHMER_HOLZERNTE: { ID_SHORT: UNTERNEHMER_HOLZERNTE, DESCRIPTION: None, SEMANTIC_ID: None, + QUALIFIER: tuple([optional_qualifier()]), }, UNTERNEHMER_HOLZRUECKUNG: { ID_SHORT: UNTERNEHMER_HOLZRUECKUNG, DESCRIPTION: None, SEMANTIC_ID: None, + QUALIFIER: tuple([optional_qualifier()]), }, SICHERHEITSHINWEISE: { ID_SHORT: SICHERHEITSHINWEISE, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: str, + QUALIFIER: tuple([optional_qualifier()]), }, NATURSCHUTZHINWEISE: { ID_SHORT: NATURSCHUTZHINWEISE, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: str, + QUALIFIER: tuple([optional_qualifier()]), }, KARTE: { ID_SHORT: KARTE, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: str, + QUALIFIER: tuple([optional_qualifier()]), }, AUFTRAGSSTATUS: { ID_SHORT: AUFTRAGSSTATUS, DESCRIPTION: None, SEMANTIC_ID: None, VALUE_TYPE: str, + QUALIFIER: tuple([optional_qualifier()]), }, SORTIMENTE: { ID_SHORT: SORTIMENTE, DESCRIPTION: None, SEMANTIC_ID: None, + QUALIFIER: tuple([optional_qualifier()]), + }, + ZU_FAELLENDE_BAEUME_REF: { + ID_SHORT: ZU_FAELLENDE_BAEUME, + DESCRIPTION: None, + SEMANTIC_ID: None, + QUALIFIER: tuple([optional_qualifier()]), }, DZ_WALD: { ID_SHORT: DZ_WALD, diff --git a/model/generic_model.py b/model/generic_model.py new file mode 100644 index 0000000000000000000000000000000000000000..027f51c730893f01b2a24ae6e7902c95cf7a7096 --- /dev/null +++ b/model/generic_model.py @@ -0,0 +1,19731 @@ +from typing import * +import inspect +from basyx.aas.model import * +from basyx.aas.model.datatypes import * + + +class Arbeitsauftrag(Submodel): + class Hiebsnummer(Property): + def __init__( + self, + value: str, + id_short: str = "Hiebsnummer", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Hiebsnummer", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Kurzbeschreibung(Property): + def __init__( + self, + value: str, + id_short: str = "Kurzbeschreibung", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Kurzbeschreibung", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Sicherheitshinweise(Property): + def __init__( + self, + value: str, + id_short: str = "Sicherheitshinweise", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sicherheitshinweise", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Naturschutzhinweise(Property): + def __init__( + self, + value: str, + id_short: str = "Naturschutzhinweise", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Naturschutzhinweise", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Karte(Property): + def __init__( + self, + value: str, + id_short: str = "Karte", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Karte", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Auftragsstatus(Property): + def __init__( + self, + value: str, + id_short: str = "Auftragsstatus", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Auftragsstatus", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Sortimente(SubmodelElementList): + class Sortiment(SubmodelElementCollection): + class Nummer(Property): + def __init__( + self, + value: int, + id_short: str = "Nummer", + value_type: DataTypeDefXsd = int, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Nummer", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Sortimentstyp(Property): + def __init__( + self, + value: str, + id_short: str = "Sortimentstyp", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Sortimentstyp", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Sorte(Property): + def __init__( + self, + value: str, + id_short: str = "Sorte", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Sorte", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Holzart(Property): + def __init__( + self, + value: str, + id_short: str = "Holzart", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Holzart", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class GueteklasseVon(Property): + def __init__( + self, + value: str, + id_short: str = "GueteklasseVon", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/GueteklasseVon", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class GueteklasseBis(Property): + def __init__( + self, + value: str, + id_short: str = "GueteklasseBis", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/GueteklasseBis", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class LaengeVon(Property): + def __init__( + self, + value: float, + id_short: str = "LaengeVon", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/LaengeVon", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class LaengeBis(Property): + def __init__( + self, + value: float, + id_short: str = "LaengeBis", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/LaengeBis", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Mindestzopf(Property): + def __init__( + self, + value: float, + id_short: str = "Mindestzopf", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Mindestzopf", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class MaxDurchmesser(Property): + def __init__( + self, + value: float, + id_short: str = "MaxDurchmesser", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/MaxDurchmesser", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Laengenzugabe(Property): + def __init__( + self, + value: float, + id_short: str = "Laengenzugabe", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Laengenzugabe", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Mengenschaetzung(Property): + def __init__( + self, + value: float, + id_short: str = "Mengenschaetzung", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Mengenschaetzung", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Bemerkung(Property): + def __init__( + self, + value: str, + id_short: str = "Bemerkung", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Bemerkung", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Ergebnis(SubmodelElementList): + class HolzlisteReference(ReferenceElement): + def __init__( + self, + value: Reference, + id_short: str = "HolzlisteReference", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Ergebnis/HolzlisteReference", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + holzlisteReference: Optional[ + Iterable[Union[Reference, HolzlisteReference]] + ] = None, + id_short: str = "Ergebnis", + type_value_list_element: SubmodelElement = ReferenceElement, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = None, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Ergebnis", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a list of submodel elements if a raw values were passed in the argument + if holzlisteReference and all( + [isinstance(i, Reference) for i in holzlisteReference] + ): + holzlisteReference = [ + self.HolzlisteReference(i) for i in holzlisteReference + ] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [holzlisteReference]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Kaeufer(SubmodelElementCollection): + class Firmenname(Property): + def __init__( + self, + value: str, + id_short: str = "Firmenname", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Firmenname", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Anrede(Property): + def __init__( + self, + value: str, + id_short: str = "Anrede", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Anrede", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Vorname(Property): + def __init__( + self, + value: str, + id_short: str = "Vorname", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Vorname", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Nachname(Property): + def __init__( + self, + value: str, + id_short: str = "Nachname", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Nachname", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Adresse(Property): + def __init__( + self, + value: str, + id_short: str = "Adresse", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Adresse", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Umsatzbesteuerung(Property): + def __init__( + self, + value: str, + id_short: str = "Umsatzbesteuerung", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Umsatzbesteuerung", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class IBAN(Property): + def __init__( + self, + value: str, + id_short: str = "IBAN", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/IBAN", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Steuernummer(Property): + def __init__( + self, + value: str, + id_short: str = "Steuernummer", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Steuernummer", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Telefonnummern(SubmodelElementList): + class Telefon(Property): + def __init__( + self, + value: str, + id_short: str = "Telefon", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Telefonnummern/Telefon", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + telefon: Optional[Iterable[Union[str, Telefon]]] = None, + id_short: str = "Telefonnummern", + type_value_list_element: SubmodelElement = Property, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = str, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Telefonnummern", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a list of submodel elements if a raw values were passed in the argument + if telefon and all([isinstance(i, str) for i in telefon]): + telefon = [self.Telefon(i) for i in telefon] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [telefon]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Emailadressen(SubmodelElementList): + class Email(Property): + def __init__( + self, + value: str, + id_short: str = "Email", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Emailadressen/Email", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + email: Optional[Iterable[Union[str, Email]]] = None, + id_short: str = "Emailadressen", + type_value_list_element: SubmodelElement = Property, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = str, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Emailadressen", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a list of submodel elements if a raw values were passed in the argument + if email and all([isinstance(i, str) for i in email]): + email = [self.Email(i) for i in email] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [email]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + firmenname: Optional[Union[str, Firmenname]] = None, + anrede: Optional[Union[str, Anrede]] = None, + vorname: Optional[Union[str, Vorname]] = None, + nachname: Optional[Union[str, Nachname]] = None, + adresse: Optional[Union[str, Adresse]] = None, + umsatzbesteuerung: Optional[Union[str, Umsatzbesteuerung]] = None, + iBAN: Optional[Union[str, IBAN]] = None, + steuernummer: Optional[Union[str, Steuernummer]] = None, + telefonnummern: Optional[ + Union[Iterable[str], Telefonnummern] + ] = None, + emailadressen: Optional[Union[Iterable[str], Emailadressen]] = None, + id_short: str = "Kaeufer", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if firmenname and not isinstance(firmenname, SubmodelElement): + firmenname = self.Firmenname(firmenname) + + # Build a submodel element if a raw value was passed in the argument + if anrede and not isinstance(anrede, SubmodelElement): + anrede = self.Anrede(anrede) + + # Build a submodel element if a raw value was passed in the argument + if vorname and not isinstance(vorname, SubmodelElement): + vorname = self.Vorname(vorname) + + # Build a submodel element if a raw value was passed in the argument + if nachname and not isinstance(nachname, SubmodelElement): + nachname = self.Nachname(nachname) + + # Build a submodel element if a raw value was passed in the argument + if adresse and not isinstance(adresse, SubmodelElement): + adresse = self.Adresse(adresse) + + # Build a submodel element if a raw value was passed in the argument + if umsatzbesteuerung and not isinstance( + umsatzbesteuerung, SubmodelElement + ): + umsatzbesteuerung = self.Umsatzbesteuerung(umsatzbesteuerung) + + # Build a submodel element if a raw value was passed in the argument + if iBAN and not isinstance(iBAN, SubmodelElement): + iBAN = self.IBAN(iBAN) + + # Build a submodel element if a raw value was passed in the argument + if steuernummer and not isinstance(steuernummer, SubmodelElement): + steuernummer = self.Steuernummer(steuernummer) + + # Build a submodel element if a raw value was passed in the argument + if telefonnummern and not isinstance( + telefonnummern, SubmodelElement + ): + telefonnummern = self.Telefonnummern(telefonnummern) + + # Build a submodel element if a raw value was passed in the argument + if emailadressen and not isinstance(emailadressen, SubmodelElement): + emailadressen = self.Emailadressen(emailadressen) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [ + firmenname, + anrede, + vorname, + nachname, + adresse, + umsatzbesteuerung, + iBAN, + steuernummer, + telefonnummern, + emailadressen, + ]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + nummer: Union[int, Nummer], + sortimentstyp: Union[str, Sortimentstyp], + sorte: Union[str, Sorte], + holzart: Union[str, Holzart], + gueteklasseVon: Union[str, GueteklasseVon], + gueteklasseBis: Union[str, GueteklasseBis], + laengeVon: Union[float, LaengeVon], + laengeBis: Union[float, LaengeBis], + mindestzopf: Union[float, Mindestzopf], + maxDurchmesser: Union[float, MaxDurchmesser], + laengenzugabe: Union[float, Laengenzugabe], + mengenschaetzung: Union[float, Mengenschaetzung], + bemerkung: Optional[Union[str, Bemerkung]] = None, + ergebnis: Optional[Ergebnis] = None, + kaeufer: Optional[Kaeufer] = None, + id_short: str = "Sortiment", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if nummer and not isinstance(nummer, SubmodelElement): + nummer = self.Nummer(nummer) + + # Build a submodel element if a raw value was passed in the argument + if sortimentstyp and not isinstance(sortimentstyp, SubmodelElement): + sortimentstyp = self.Sortimentstyp(sortimentstyp) + + # Build a submodel element if a raw value was passed in the argument + if sorte and not isinstance(sorte, SubmodelElement): + sorte = self.Sorte(sorte) + + # Build a submodel element if a raw value was passed in the argument + if holzart and not isinstance(holzart, SubmodelElement): + holzart = self.Holzart(holzart) + + # Build a submodel element if a raw value was passed in the argument + if gueteklasseVon and not isinstance(gueteklasseVon, SubmodelElement): + gueteklasseVon = self.GueteklasseVon(gueteklasseVon) + + # Build a submodel element if a raw value was passed in the argument + if gueteklasseBis and not isinstance(gueteklasseBis, SubmodelElement): + gueteklasseBis = self.GueteklasseBis(gueteklasseBis) + + # Build a submodel element if a raw value was passed in the argument + if laengeVon and not isinstance(laengeVon, SubmodelElement): + laengeVon = self.LaengeVon(laengeVon) + + # Build a submodel element if a raw value was passed in the argument + if laengeBis and not isinstance(laengeBis, SubmodelElement): + laengeBis = self.LaengeBis(laengeBis) + + # Build a submodel element if a raw value was passed in the argument + if mindestzopf and not isinstance(mindestzopf, SubmodelElement): + mindestzopf = self.Mindestzopf(mindestzopf) + + # Build a submodel element if a raw value was passed in the argument + if maxDurchmesser and not isinstance(maxDurchmesser, SubmodelElement): + maxDurchmesser = self.MaxDurchmesser(maxDurchmesser) + + # Build a submodel element if a raw value was passed in the argument + if laengenzugabe and not isinstance(laengenzugabe, SubmodelElement): + laengenzugabe = self.Laengenzugabe(laengenzugabe) + + # Build a submodel element if a raw value was passed in the argument + if mengenschaetzung and not isinstance( + mengenschaetzung, SubmodelElement + ): + mengenschaetzung = self.Mengenschaetzung(mengenschaetzung) + + # Build a submodel element if a raw value was passed in the argument + if bemerkung and not isinstance(bemerkung, SubmodelElement): + bemerkung = self.Bemerkung(bemerkung) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [ + nummer, + sortimentstyp, + sorte, + holzart, + gueteklasseVon, + gueteklasseBis, + laengeVon, + laengeBis, + mindestzopf, + maxDurchmesser, + laengenzugabe, + mengenschaetzung, + bemerkung, + ergebnis, + kaeufer, + ]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + sortiment: Optional[Iterable[Sortiment]] = None, + id_short: str = "Sortimente", + type_value_list_element: SubmodelElement = SubmodelElementCollection, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = None, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [sortiment]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Ansprechpartner(SubmodelElementCollection): + class Firmenname(Property): + def __init__( + self, + value: str, + id_short: str = "Firmenname", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Firmenname", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Anrede(Property): + def __init__( + self, + value: str, + id_short: str = "Anrede", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Anrede", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Vorname(Property): + def __init__( + self, + value: str, + id_short: str = "Vorname", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Vorname", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Nachname(Property): + def __init__( + self, + value: str, + id_short: str = "Nachname", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Nachname", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Adresse(Property): + def __init__( + self, + value: str, + id_short: str = "Adresse", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Adresse", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Umsatzbesteuerung(Property): + def __init__( + self, + value: str, + id_short: str = "Umsatzbesteuerung", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Umsatzbesteuerung", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class IBAN(Property): + def __init__( + self, + value: str, + id_short: str = "IBAN", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/IBAN", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Steuernummer(Property): + def __init__( + self, + value: str, + id_short: str = "Steuernummer", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Steuernummer", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Telefonnummern(SubmodelElementList): + class Telefon(Property): + def __init__( + self, + value: str, + id_short: str = "Telefon", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Telefonnummern/Telefon", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + telefon: Optional[Iterable[Union[str, Telefon]]] = None, + id_short: str = "Telefonnummern", + type_value_list_element: SubmodelElement = Property, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = str, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Telefonnummern", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a list of submodel elements if a raw values were passed in the argument + if telefon and all([isinstance(i, str) for i in telefon]): + telefon = [self.Telefon(i) for i in telefon] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [telefon]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Emailadressen(SubmodelElementList): + class Email(Property): + def __init__( + self, + value: str, + id_short: str = "Email", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Emailadressen/Email", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + email: Optional[Iterable[Union[str, Email]]] = None, + id_short: str = "Emailadressen", + type_value_list_element: SubmodelElement = Property, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = str, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Emailadressen", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a list of submodel elements if a raw values were passed in the argument + if email and all([isinstance(i, str) for i in email]): + email = [self.Email(i) for i in email] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [email]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + firmenname: Optional[Union[str, Firmenname]] = None, + anrede: Optional[Union[str, Anrede]] = None, + vorname: Optional[Union[str, Vorname]] = None, + nachname: Optional[Union[str, Nachname]] = None, + adresse: Optional[Union[str, Adresse]] = None, + umsatzbesteuerung: Optional[Union[str, Umsatzbesteuerung]] = None, + iBAN: Optional[Union[str, IBAN]] = None, + steuernummer: Optional[Union[str, Steuernummer]] = None, + telefonnummern: Optional[Union[Iterable[str], Telefonnummern]] = None, + emailadressen: Optional[Union[Iterable[str], Emailadressen]] = None, + id_short: str = "Ansprechpartner", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if firmenname and not isinstance(firmenname, SubmodelElement): + firmenname = self.Firmenname(firmenname) + + # Build a submodel element if a raw value was passed in the argument + if anrede and not isinstance(anrede, SubmodelElement): + anrede = self.Anrede(anrede) + + # Build a submodel element if a raw value was passed in the argument + if vorname and not isinstance(vorname, SubmodelElement): + vorname = self.Vorname(vorname) + + # Build a submodel element if a raw value was passed in the argument + if nachname and not isinstance(nachname, SubmodelElement): + nachname = self.Nachname(nachname) + + # Build a submodel element if a raw value was passed in the argument + if adresse and not isinstance(adresse, SubmodelElement): + adresse = self.Adresse(adresse) + + # Build a submodel element if a raw value was passed in the argument + if umsatzbesteuerung and not isinstance(umsatzbesteuerung, SubmodelElement): + umsatzbesteuerung = self.Umsatzbesteuerung(umsatzbesteuerung) + + # Build a submodel element if a raw value was passed in the argument + if iBAN and not isinstance(iBAN, SubmodelElement): + iBAN = self.IBAN(iBAN) + + # Build a submodel element if a raw value was passed in the argument + if steuernummer and not isinstance(steuernummer, SubmodelElement): + steuernummer = self.Steuernummer(steuernummer) + + # Build a submodel element if a raw value was passed in the argument + if telefonnummern and not isinstance(telefonnummern, SubmodelElement): + telefonnummern = self.Telefonnummern(telefonnummern) + + # Build a submodel element if a raw value was passed in the argument + if emailadressen and not isinstance(emailadressen, SubmodelElement): + emailadressen = self.Emailadressen(emailadressen) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [ + firmenname, + anrede, + vorname, + nachname, + adresse, + umsatzbesteuerung, + iBAN, + steuernummer, + telefonnummern, + emailadressen, + ]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class UnternehmerHolzrueckung(SubmodelElementCollection): + class Firmenname(Property): + def __init__( + self, + value: str, + id_short: str = "Firmenname", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Firmenname", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Anrede(Property): + def __init__( + self, + value: str, + id_short: str = "Anrede", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Anrede", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Vorname(Property): + def __init__( + self, + value: str, + id_short: str = "Vorname", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Vorname", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Nachname(Property): + def __init__( + self, + value: str, + id_short: str = "Nachname", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Nachname", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Adresse(Property): + def __init__( + self, + value: str, + id_short: str = "Adresse", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Adresse", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Umsatzbesteuerung(Property): + def __init__( + self, + value: str, + id_short: str = "Umsatzbesteuerung", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Umsatzbesteuerung", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class IBAN(Property): + def __init__( + self, + value: str, + id_short: str = "IBAN", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/IBAN", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Steuernummer(Property): + def __init__( + self, + value: str, + id_short: str = "Steuernummer", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Steuernummer", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Telefonnummern(SubmodelElementList): + class Telefon(Property): + def __init__( + self, + value: str, + id_short: str = "Telefon", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Telefonnummern/Telefon", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + telefon: Optional[Iterable[Union[str, Telefon]]] = None, + id_short: str = "Telefonnummern", + type_value_list_element: SubmodelElement = Property, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = str, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Telefonnummern", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a list of submodel elements if a raw values were passed in the argument + if telefon and all([isinstance(i, str) for i in telefon]): + telefon = [self.Telefon(i) for i in telefon] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [telefon]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Emailadressen(SubmodelElementList): + class Email(Property): + def __init__( + self, + value: str, + id_short: str = "Email", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Emailadressen/Email", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + email: Optional[Iterable[Union[str, Email]]] = None, + id_short: str = "Emailadressen", + type_value_list_element: SubmodelElement = Property, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = str, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Emailadressen", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a list of submodel elements if a raw values were passed in the argument + if email and all([isinstance(i, str) for i in email]): + email = [self.Email(i) for i in email] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [email]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + firmenname: Optional[Union[str, Firmenname]] = None, + anrede: Optional[Union[str, Anrede]] = None, + vorname: Optional[Union[str, Vorname]] = None, + nachname: Optional[Union[str, Nachname]] = None, + adresse: Optional[Union[str, Adresse]] = None, + umsatzbesteuerung: Optional[Union[str, Umsatzbesteuerung]] = None, + iBAN: Optional[Union[str, IBAN]] = None, + steuernummer: Optional[Union[str, Steuernummer]] = None, + telefonnummern: Optional[Union[Iterable[str], Telefonnummern]] = None, + emailadressen: Optional[Union[Iterable[str], Emailadressen]] = None, + id_short: str = "UnternehmerHolzrueckung", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if firmenname and not isinstance(firmenname, SubmodelElement): + firmenname = self.Firmenname(firmenname) + + # Build a submodel element if a raw value was passed in the argument + if anrede and not isinstance(anrede, SubmodelElement): + anrede = self.Anrede(anrede) + + # Build a submodel element if a raw value was passed in the argument + if vorname and not isinstance(vorname, SubmodelElement): + vorname = self.Vorname(vorname) + + # Build a submodel element if a raw value was passed in the argument + if nachname and not isinstance(nachname, SubmodelElement): + nachname = self.Nachname(nachname) + + # Build a submodel element if a raw value was passed in the argument + if adresse and not isinstance(adresse, SubmodelElement): + adresse = self.Adresse(adresse) + + # Build a submodel element if a raw value was passed in the argument + if umsatzbesteuerung and not isinstance(umsatzbesteuerung, SubmodelElement): + umsatzbesteuerung = self.Umsatzbesteuerung(umsatzbesteuerung) + + # Build a submodel element if a raw value was passed in the argument + if iBAN and not isinstance(iBAN, SubmodelElement): + iBAN = self.IBAN(iBAN) + + # Build a submodel element if a raw value was passed in the argument + if steuernummer and not isinstance(steuernummer, SubmodelElement): + steuernummer = self.Steuernummer(steuernummer) + + # Build a submodel element if a raw value was passed in the argument + if telefonnummern and not isinstance(telefonnummern, SubmodelElement): + telefonnummern = self.Telefonnummern(telefonnummern) + + # Build a submodel element if a raw value was passed in the argument + if emailadressen and not isinstance(emailadressen, SubmodelElement): + emailadressen = self.Emailadressen(emailadressen) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [ + firmenname, + anrede, + vorname, + nachname, + adresse, + umsatzbesteuerung, + iBAN, + steuernummer, + telefonnummern, + emailadressen, + ]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class UnternehmerHolzernte(SubmodelElementCollection): + class Firmenname(Property): + def __init__( + self, + value: str, + id_short: str = "Firmenname", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Firmenname", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Anrede(Property): + def __init__( + self, + value: str, + id_short: str = "Anrede", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Anrede", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Vorname(Property): + def __init__( + self, + value: str, + id_short: str = "Vorname", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Vorname", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Nachname(Property): + def __init__( + self, + value: str, + id_short: str = "Nachname", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Nachname", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Adresse(Property): + def __init__( + self, + value: str, + id_short: str = "Adresse", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Adresse", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Umsatzbesteuerung(Property): + def __init__( + self, + value: str, + id_short: str = "Umsatzbesteuerung", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Umsatzbesteuerung", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class IBAN(Property): + def __init__( + self, + value: str, + id_short: str = "IBAN", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/IBAN", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Steuernummer(Property): + def __init__( + self, + value: str, + id_short: str = "Steuernummer", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Steuernummer", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Telefonnummern(SubmodelElementList): + class Telefon(Property): + def __init__( + self, + value: str, + id_short: str = "Telefon", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Telefonnummern/Telefon", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + telefon: Optional[Iterable[Union[str, Telefon]]] = None, + id_short: str = "Telefonnummern", + type_value_list_element: SubmodelElement = Property, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = str, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Telefonnummern", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a list of submodel elements if a raw values were passed in the argument + if telefon and all([isinstance(i, str) for i in telefon]): + telefon = [self.Telefon(i) for i in telefon] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [telefon]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Emailadressen(SubmodelElementList): + class Email(Property): + def __init__( + self, + value: str, + id_short: str = "Email", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Emailadressen/Email", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + email: Optional[Iterable[Union[str, Email]]] = None, + id_short: str = "Emailadressen", + type_value_list_element: SubmodelElement = Property, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = str, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Emailadressen", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a list of submodel elements if a raw values were passed in the argument + if email and all([isinstance(i, str) for i in email]): + email = [self.Email(i) for i in email] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [email]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + firmenname: Optional[Union[str, Firmenname]] = None, + anrede: Optional[Union[str, Anrede]] = None, + vorname: Optional[Union[str, Vorname]] = None, + nachname: Optional[Union[str, Nachname]] = None, + adresse: Optional[Union[str, Adresse]] = None, + umsatzbesteuerung: Optional[Union[str, Umsatzbesteuerung]] = None, + iBAN: Optional[Union[str, IBAN]] = None, + steuernummer: Optional[Union[str, Steuernummer]] = None, + telefonnummern: Optional[Union[Iterable[str], Telefonnummern]] = None, + emailadressen: Optional[Union[Iterable[str], Emailadressen]] = None, + id_short: str = "UnternehmerHolzernte", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if firmenname and not isinstance(firmenname, SubmodelElement): + firmenname = self.Firmenname(firmenname) + + # Build a submodel element if a raw value was passed in the argument + if anrede and not isinstance(anrede, SubmodelElement): + anrede = self.Anrede(anrede) + + # Build a submodel element if a raw value was passed in the argument + if vorname and not isinstance(vorname, SubmodelElement): + vorname = self.Vorname(vorname) + + # Build a submodel element if a raw value was passed in the argument + if nachname and not isinstance(nachname, SubmodelElement): + nachname = self.Nachname(nachname) + + # Build a submodel element if a raw value was passed in the argument + if adresse and not isinstance(adresse, SubmodelElement): + adresse = self.Adresse(adresse) + + # Build a submodel element if a raw value was passed in the argument + if umsatzbesteuerung and not isinstance(umsatzbesteuerung, SubmodelElement): + umsatzbesteuerung = self.Umsatzbesteuerung(umsatzbesteuerung) + + # Build a submodel element if a raw value was passed in the argument + if iBAN and not isinstance(iBAN, SubmodelElement): + iBAN = self.IBAN(iBAN) + + # Build a submodel element if a raw value was passed in the argument + if steuernummer and not isinstance(steuernummer, SubmodelElement): + steuernummer = self.Steuernummer(steuernummer) + + # Build a submodel element if a raw value was passed in the argument + if telefonnummern and not isinstance(telefonnummern, SubmodelElement): + telefonnummern = self.Telefonnummern(telefonnummern) + + # Build a submodel element if a raw value was passed in the argument + if emailadressen and not isinstance(emailadressen, SubmodelElement): + emailadressen = self.Emailadressen(emailadressen) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [ + firmenname, + anrede, + vorname, + nachname, + adresse, + umsatzbesteuerung, + iBAN, + steuernummer, + telefonnummern, + emailadressen, + ]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class ZuFaellendeBaeume(ReferenceElement): + def __init__( + self, + value: Reference, + id_short: str = "ZuFaellendeBaeume", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/ZuFaellendeBaeume", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + id_: str, + hiebsnummer: Union[str, Hiebsnummer], + kurzbeschreibung: Union[str, Kurzbeschreibung], + sicherheitshinweise: Optional[Union[str, Sicherheitshinweise]] = None, + naturschutzhinweise: Optional[Union[str, Naturschutzhinweise]] = None, + karte: Optional[Union[str, Karte]] = None, + auftragsstatus: Optional[Union[str, Auftragsstatus]] = None, + sortimente: Optional[Sortimente] = None, + ansprechpartner: Optional[Ansprechpartner] = None, + unternehmerHolzrueckung: Optional[UnternehmerHolzrueckung] = None, + unternehmerHolzernte: Optional[UnternehmerHolzernte] = None, + zuFaellendeBaeume: Optional[Union[Reference, ZuFaellendeBaeume]] = None, + id_short: str = "Arbeitsauftrag", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + administration: Optional[AdministrativeInformation] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = () + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if hiebsnummer and not isinstance(hiebsnummer, SubmodelElement): + hiebsnummer = self.Hiebsnummer(hiebsnummer) + + # Build a submodel element if a raw value was passed in the argument + if kurzbeschreibung and not isinstance(kurzbeschreibung, SubmodelElement): + kurzbeschreibung = self.Kurzbeschreibung(kurzbeschreibung) + + # Build a submodel element if a raw value was passed in the argument + if sicherheitshinweise and not isinstance(sicherheitshinweise, SubmodelElement): + sicherheitshinweise = self.Sicherheitshinweise(sicherheitshinweise) + + # Build a submodel element if a raw value was passed in the argument + if naturschutzhinweise and not isinstance(naturschutzhinweise, SubmodelElement): + naturschutzhinweise = self.Naturschutzhinweise(naturschutzhinweise) + + # Build a submodel element if a raw value was passed in the argument + if karte and not isinstance(karte, SubmodelElement): + karte = self.Karte(karte) + + # Build a submodel element if a raw value was passed in the argument + if auftragsstatus and not isinstance(auftragsstatus, SubmodelElement): + auftragsstatus = self.Auftragsstatus(auftragsstatus) + + # Build a submodel element if a raw value was passed in the argument + if zuFaellendeBaeume and not isinstance(zuFaellendeBaeume, SubmodelElement): + zuFaellendeBaeume = self.ZuFaellendeBaeume(zuFaellendeBaeume) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [ + hiebsnummer, + kurzbeschreibung, + sicherheitshinweise, + naturschutzhinweise, + karte, + auftragsstatus, + sortimente, + ansprechpartner, + unternehmerHolzrueckung, + unternehmerHolzernte, + zuFaellendeBaeume, + ]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + submodel_element=embedded_submodel_elements, + id_=id_, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + administration=administration, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + +class Beobachtung(Submodel): + class Name(Property): + def __init__( + self, + value: str, + id_short: str = "Name", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Name", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Beschreibung(Property): + def __init__( + self, + value: str, + id_short: str = "Beschreibung", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Beschreibung", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Umring(SubmodelElementCollection): + class Name(Property): + def __init__( + self, + value: str, + id_short: str = "Name", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Name", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Beschreibung(Property): + def __init__( + self, + value: str, + id_short: str = "Beschreibung", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Beschreibung", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Koordinaten(SubmodelElementList): + class Koordinate(SubmodelElementCollection): + class X(Property): + def __init__( + self, + value: float, + id_short: str = "x", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinate/x", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Y(Property): + def __init__( + self, + value: float, + id_short: str = "y", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinate/y", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Alt(Property): + def __init__( + self, + value: float, + id_short: str = "alt", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinate/alt", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Crs(Property): + def __init__( + self, + value: str, + id_short: str = "crs", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinate/crs", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + x: Optional[Union[float, X]] = None, + y: Optional[Union[float, Y]] = None, + alt: Optional[Union[float, Alt]] = None, + crs: Optional[Union[str, Crs]] = None, + id_short: str = "Koordinate", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinate", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="OneToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if x and not isinstance(x, SubmodelElement): + x = self.X(x) + + # Build a submodel element if a raw value was passed in the argument + if y and not isinstance(y, SubmodelElement): + y = self.Y(y) + + # Build a submodel element if a raw value was passed in the argument + if alt and not isinstance(alt, SubmodelElement): + alt = self.Alt(alt) + + # Build a submodel element if a raw value was passed in the argument + if crs and not isinstance(crs, SubmodelElement): + crs = self.Crs(crs) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [x, y, alt, crs]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + koordinate: Iterable[Koordinate], + id_short: str = "Koordinaten", + type_value_list_element: SubmodelElement = SubmodelElementCollection, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = None, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [koordinate]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + name: Union[str, Name], + beschreibung: Union[str, Beschreibung], + koordinaten: Koordinaten, + id_short: str = "Umring", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = () + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if name and not isinstance(name, SubmodelElement): + name = self.Name(name) + + # Build a submodel element if a raw value was passed in the argument + if beschreibung and not isinstance(beschreibung, SubmodelElement): + beschreibung = self.Beschreibung(beschreibung) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [name, beschreibung, koordinaten]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Position(SubmodelElementCollection): + class Koordinate(SubmodelElementCollection): + class X(Property): + def __init__( + self, + value: float, + id_short: str = "x", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Position/Koordinate/x", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Y(Property): + def __init__( + self, + value: float, + id_short: str = "y", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Position/Koordinate/y", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Alt(Property): + def __init__( + self, + value: float, + id_short: str = "alt", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Position/Koordinate/alt", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Crs(Property): + def __init__( + self, + value: str, + id_short: str = "crs", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Position/Koordinate/crs", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + x: Optional[Union[float, X]] = None, + y: Optional[Union[float, Y]] = None, + alt: Optional[Union[float, Alt]] = None, + crs: Optional[Union[str, Crs]] = None, + id_short: str = "Koordinate", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Position/Koordinate", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="OneToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if x and not isinstance(x, SubmodelElement): + x = self.X(x) + + # Build a submodel element if a raw value was passed in the argument + if y and not isinstance(y, SubmodelElement): + y = self.Y(y) + + # Build a submodel element if a raw value was passed in the argument + if alt and not isinstance(alt, SubmodelElement): + alt = self.Alt(alt) + + # Build a submodel element if a raw value was passed in the argument + if crs and not isinstance(crs, SubmodelElement): + crs = self.Crs(crs) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [x, y, alt, crs]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Notiz(Property): + def __init__( + self, + value: str, + id_short: str = "Notiz", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Position/Notiz", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + koordinate: Iterable[Koordinate], + notiz: Optional[Union[str, Notiz]] = None, + id_short: str = "Position", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Position", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if notiz and not isinstance(notiz, SubmodelElement): + notiz = self.Notiz(notiz) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [koordinate, notiz]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + id_: str, + name: Union[str, Name], + beschreibung: Union[str, Beschreibung], + umring: Umring, + position: Optional[Position] = None, + id_short: str = "Beobachtung", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + administration: Optional[AdministrativeInformation] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = () + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if name and not isinstance(name, SubmodelElement): + name = self.Name(name) + + # Build a submodel element if a raw value was passed in the argument + if beschreibung and not isinstance(beschreibung, SubmodelElement): + beschreibung = self.Beschreibung(beschreibung) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [name, beschreibung, umring, position]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + submodel_element=embedded_submodel_elements, + id_=id_, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + administration=administration, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + +class Bestandesdaten(Submodel): + class Umring(SubmodelElementCollection): + class Name(Property): + def __init__( + self, + value: str, + id_short: str = "Name", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Name", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Beschreibung(Property): + def __init__( + self, + value: str, + id_short: str = "Beschreibung", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Beschreibung", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Koordinaten(SubmodelElementList): + class Koordinate(SubmodelElementCollection): + class X(Property): + def __init__( + self, + value: float, + id_short: str = "x", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinate/x", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Y(Property): + def __init__( + self, + value: float, + id_short: str = "y", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinate/y", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Alt(Property): + def __init__( + self, + value: float, + id_short: str = "alt", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinate/alt", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Crs(Property): + def __init__( + self, + value: str, + id_short: str = "crs", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinate/crs", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + x: Optional[Union[float, X]] = None, + y: Optional[Union[float, Y]] = None, + alt: Optional[Union[float, Alt]] = None, + crs: Optional[Union[str, Crs]] = None, + id_short: str = "Koordinate", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinate", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="OneToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if x and not isinstance(x, SubmodelElement): + x = self.X(x) + + # Build a submodel element if a raw value was passed in the argument + if y and not isinstance(y, SubmodelElement): + y = self.Y(y) + + # Build a submodel element if a raw value was passed in the argument + if alt and not isinstance(alt, SubmodelElement): + alt = self.Alt(alt) + + # Build a submodel element if a raw value was passed in the argument + if crs and not isinstance(crs, SubmodelElement): + crs = self.Crs(crs) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [x, y, alt, crs]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + koordinate: Iterable[Koordinate], + id_short: str = "Koordinaten", + type_value_list_element: SubmodelElement = SubmodelElementCollection, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = None, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [koordinate]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + name: Union[str, Name], + beschreibung: Union[str, Beschreibung], + koordinaten: Koordinaten, + id_short: str = "Umring", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = () + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if name and not isinstance(name, SubmodelElement): + name = self.Name(name) + + # Build a submodel element if a raw value was passed in the argument + if beschreibung and not isinstance(beschreibung, SubmodelElement): + beschreibung = self.Beschreibung(beschreibung) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [name, beschreibung, koordinaten]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Waldbesitzer(SubmodelElementCollection): + class Firmenname(Property): + def __init__( + self, + value: str, + id_short: str = "Firmenname", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Firmenname", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Anrede(Property): + def __init__( + self, + value: str, + id_short: str = "Anrede", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Anrede", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Vorname(Property): + def __init__( + self, + value: str, + id_short: str = "Vorname", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Vorname", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Nachname(Property): + def __init__( + self, + value: str, + id_short: str = "Nachname", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Nachname", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Adresse(Property): + def __init__( + self, + value: str, + id_short: str = "Adresse", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Adresse", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Umsatzbesteuerung(Property): + def __init__( + self, + value: str, + id_short: str = "Umsatzbesteuerung", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Umsatzbesteuerung", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class IBAN(Property): + def __init__( + self, + value: str, + id_short: str = "IBAN", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/IBAN", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Steuernummer(Property): + def __init__( + self, + value: str, + id_short: str = "Steuernummer", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Steuernummer", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Telefonnummern(SubmodelElementList): + class Telefon(Property): + def __init__( + self, + value: str, + id_short: str = "Telefon", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Telefonnummern/Telefon", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + telefon: Optional[Iterable[Union[str, Telefon]]] = None, + id_short: str = "Telefonnummern", + type_value_list_element: SubmodelElement = Property, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = str, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Telefonnummern", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a list of submodel elements if a raw values were passed in the argument + if telefon and all([isinstance(i, str) for i in telefon]): + telefon = [self.Telefon(i) for i in telefon] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [telefon]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Emailadressen(SubmodelElementList): + class Email(Property): + def __init__( + self, + value: str, + id_short: str = "Email", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Emailadressen/Email", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + email: Optional[Iterable[Union[str, Email]]] = None, + id_short: str = "Emailadressen", + type_value_list_element: SubmodelElement = Property, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = str, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Emailadressen", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a list of submodel elements if a raw values were passed in the argument + if email and all([isinstance(i, str) for i in email]): + email = [self.Email(i) for i in email] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [email]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + firmenname: Optional[Union[str, Firmenname]] = None, + anrede: Optional[Union[str, Anrede]] = None, + vorname: Optional[Union[str, Vorname]] = None, + nachname: Optional[Union[str, Nachname]] = None, + adresse: Optional[Union[str, Adresse]] = None, + umsatzbesteuerung: Optional[Union[str, Umsatzbesteuerung]] = None, + iBAN: Optional[Union[str, IBAN]] = None, + steuernummer: Optional[Union[str, Steuernummer]] = None, + telefonnummern: Optional[Union[Iterable[str], Telefonnummern]] = None, + emailadressen: Optional[Union[Iterable[str], Emailadressen]] = None, + id_short: str = "Waldbesitzer", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if firmenname and not isinstance(firmenname, SubmodelElement): + firmenname = self.Firmenname(firmenname) + + # Build a submodel element if a raw value was passed in the argument + if anrede and not isinstance(anrede, SubmodelElement): + anrede = self.Anrede(anrede) + + # Build a submodel element if a raw value was passed in the argument + if vorname and not isinstance(vorname, SubmodelElement): + vorname = self.Vorname(vorname) + + # Build a submodel element if a raw value was passed in the argument + if nachname and not isinstance(nachname, SubmodelElement): + nachname = self.Nachname(nachname) + + # Build a submodel element if a raw value was passed in the argument + if adresse and not isinstance(adresse, SubmodelElement): + adresse = self.Adresse(adresse) + + # Build a submodel element if a raw value was passed in the argument + if umsatzbesteuerung and not isinstance(umsatzbesteuerung, SubmodelElement): + umsatzbesteuerung = self.Umsatzbesteuerung(umsatzbesteuerung) + + # Build a submodel element if a raw value was passed in the argument + if iBAN and not isinstance(iBAN, SubmodelElement): + iBAN = self.IBAN(iBAN) + + # Build a submodel element if a raw value was passed in the argument + if steuernummer and not isinstance(steuernummer, SubmodelElement): + steuernummer = self.Steuernummer(steuernummer) + + # Build a submodel element if a raw value was passed in the argument + if telefonnummern and not isinstance(telefonnummern, SubmodelElement): + telefonnummern = self.Telefonnummern(telefonnummern) + + # Build a submodel element if a raw value was passed in the argument + if emailadressen and not isinstance(emailadressen, SubmodelElement): + emailadressen = self.Emailadressen(emailadressen) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [ + firmenname, + anrede, + vorname, + nachname, + adresse, + umsatzbesteuerung, + iBAN, + steuernummer, + telefonnummern, + emailadressen, + ]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Baumarten(SubmodelElementList): + class Baumart(Property): + def __init__( + self, + value: str, + id_short: str = "Baumart", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Baumarten/Baumart", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + baumart: Optional[Iterable[Union[str, Baumart]]] = None, + id_short: str = "Baumarten", + type_value_list_element: SubmodelElement = Property, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = str, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Baumarten", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a list of submodel elements if a raw values were passed in the argument + if baumart and all([isinstance(i, str) for i in baumart]): + baumart = [self.Baumart(i) for i in baumart] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [baumart]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + id_: str, + umring: Umring, + waldbesitzer: Optional[Waldbesitzer] = None, + baumarten: Optional[Union[Iterable[str], Baumarten]] = None, + id_short: str = "Bestandesdaten", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + administration: Optional[AdministrativeInformation] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = () + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if baumarten and not isinstance(baumarten, SubmodelElement): + baumarten = self.Baumarten(baumarten) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [umring, waldbesitzer, baumarten]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + submodel_element=embedded_submodel_elements, + id_=id_, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + administration=administration, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + +class Holzliste(Submodel): + class Kopfdaten(SubmodelElementCollection): + class Ernte(Range): + def __init__( + self, + min: Date, + max: Date, + id_short: str = "Ernte", + value_type: DataTypeDefXsd = Date, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Ernte", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + min=min, + max=max, + id_short=id_short, + value_type=value_type, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Lieferant(SubmodelElementCollection): + class Firmenname(Property): + def __init__( + self, + value: str, + id_short: str = "Firmenname", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Firmenname", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Anrede(Property): + def __init__( + self, + value: str, + id_short: str = "Anrede", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Anrede", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Vorname(Property): + def __init__( + self, + value: str, + id_short: str = "Vorname", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Vorname", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Nachname(Property): + def __init__( + self, + value: str, + id_short: str = "Nachname", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Nachname", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Adresse(Property): + def __init__( + self, + value: str, + id_short: str = "Adresse", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Adresse", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Umsatzbesteuerung(Property): + def __init__( + self, + value: str, + id_short: str = "Umsatzbesteuerung", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Umsatzbesteuerung", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class IBAN(Property): + def __init__( + self, + value: str, + id_short: str = "IBAN", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/IBAN", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Steuernummer(Property): + def __init__( + self, + value: str, + id_short: str = "Steuernummer", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Steuernummer", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Telefonnummern(SubmodelElementList): + class Telefon(Property): + def __init__( + self, + value: str, + id_short: str = "Telefon", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Telefonnummern/Telefon", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + telefon: Optional[Iterable[Union[str, Telefon]]] = None, + id_short: str = "Telefonnummern", + type_value_list_element: SubmodelElement = Property, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = str, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Telefonnummern", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a list of submodel elements if a raw values were passed in the argument + if telefon and all([isinstance(i, str) for i in telefon]): + telefon = [self.Telefon(i) for i in telefon] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [telefon]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Emailadressen(SubmodelElementList): + class Email(Property): + def __init__( + self, + value: str, + id_short: str = "Email", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Emailadressen/Email", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + email: Optional[Iterable[Union[str, Email]]] = None, + id_short: str = "Emailadressen", + type_value_list_element: SubmodelElement = Property, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = str, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Emailadressen", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a list of submodel elements if a raw values were passed in the argument + if email and all([isinstance(i, str) for i in email]): + email = [self.Email(i) for i in email] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [email]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + firmenname: Optional[Union[str, Firmenname]] = None, + anrede: Optional[Union[str, Anrede]] = None, + vorname: Optional[Union[str, Vorname]] = None, + nachname: Optional[Union[str, Nachname]] = None, + adresse: Optional[Union[str, Adresse]] = None, + umsatzbesteuerung: Optional[Union[str, Umsatzbesteuerung]] = None, + iBAN: Optional[Union[str, IBAN]] = None, + steuernummer: Optional[Union[str, Steuernummer]] = None, + telefonnummern: Optional[Union[Iterable[str], Telefonnummern]] = None, + emailadressen: Optional[Union[Iterable[str], Emailadressen]] = None, + id_short: str = "Lieferant", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if firmenname and not isinstance(firmenname, SubmodelElement): + firmenname = self.Firmenname(firmenname) + + # Build a submodel element if a raw value was passed in the argument + if anrede and not isinstance(anrede, SubmodelElement): + anrede = self.Anrede(anrede) + + # Build a submodel element if a raw value was passed in the argument + if vorname and not isinstance(vorname, SubmodelElement): + vorname = self.Vorname(vorname) + + # Build a submodel element if a raw value was passed in the argument + if nachname and not isinstance(nachname, SubmodelElement): + nachname = self.Nachname(nachname) + + # Build a submodel element if a raw value was passed in the argument + if adresse and not isinstance(adresse, SubmodelElement): + adresse = self.Adresse(adresse) + + # Build a submodel element if a raw value was passed in the argument + if umsatzbesteuerung and not isinstance( + umsatzbesteuerung, SubmodelElement + ): + umsatzbesteuerung = self.Umsatzbesteuerung(umsatzbesteuerung) + + # Build a submodel element if a raw value was passed in the argument + if iBAN and not isinstance(iBAN, SubmodelElement): + iBAN = self.IBAN(iBAN) + + # Build a submodel element if a raw value was passed in the argument + if steuernummer and not isinstance(steuernummer, SubmodelElement): + steuernummer = self.Steuernummer(steuernummer) + + # Build a submodel element if a raw value was passed in the argument + if telefonnummern and not isinstance(telefonnummern, SubmodelElement): + telefonnummern = self.Telefonnummern(telefonnummern) + + # Build a submodel element if a raw value was passed in the argument + if emailadressen and not isinstance(emailadressen, SubmodelElement): + emailadressen = self.Emailadressen(emailadressen) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [ + firmenname, + anrede, + vorname, + nachname, + adresse, + umsatzbesteuerung, + iBAN, + steuernummer, + telefonnummern, + emailadressen, + ]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Kaeufer(SubmodelElementCollection): + class Firmenname(Property): + def __init__( + self, + value: str, + id_short: str = "Firmenname", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Firmenname", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Anrede(Property): + def __init__( + self, + value: str, + id_short: str = "Anrede", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Anrede", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Vorname(Property): + def __init__( + self, + value: str, + id_short: str = "Vorname", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Vorname", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Nachname(Property): + def __init__( + self, + value: str, + id_short: str = "Nachname", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Nachname", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Adresse(Property): + def __init__( + self, + value: str, + id_short: str = "Adresse", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Adresse", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Umsatzbesteuerung(Property): + def __init__( + self, + value: str, + id_short: str = "Umsatzbesteuerung", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Umsatzbesteuerung", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class IBAN(Property): + def __init__( + self, + value: str, + id_short: str = "IBAN", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/IBAN", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Steuernummer(Property): + def __init__( + self, + value: str, + id_short: str = "Steuernummer", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Steuernummer", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Telefonnummern(SubmodelElementList): + class Telefon(Property): + def __init__( + self, + value: str, + id_short: str = "Telefon", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Telefonnummern/Telefon", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + telefon: Optional[Iterable[Union[str, Telefon]]] = None, + id_short: str = "Telefonnummern", + type_value_list_element: SubmodelElement = Property, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = str, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Telefonnummern", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a list of submodel elements if a raw values were passed in the argument + if telefon and all([isinstance(i, str) for i in telefon]): + telefon = [self.Telefon(i) for i in telefon] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [telefon]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Emailadressen(SubmodelElementList): + class Email(Property): + def __init__( + self, + value: str, + id_short: str = "Email", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Emailadressen/Email", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + email: Optional[Iterable[Union[str, Email]]] = None, + id_short: str = "Emailadressen", + type_value_list_element: SubmodelElement = Property, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = str, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Emailadressen", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a list of submodel elements if a raw values were passed in the argument + if email and all([isinstance(i, str) for i in email]): + email = [self.Email(i) for i in email] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [email]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + firmenname: Optional[Union[str, Firmenname]] = None, + anrede: Optional[Union[str, Anrede]] = None, + vorname: Optional[Union[str, Vorname]] = None, + nachname: Optional[Union[str, Nachname]] = None, + adresse: Optional[Union[str, Adresse]] = None, + umsatzbesteuerung: Optional[Union[str, Umsatzbesteuerung]] = None, + iBAN: Optional[Union[str, IBAN]] = None, + steuernummer: Optional[Union[str, Steuernummer]] = None, + telefonnummern: Optional[Union[Iterable[str], Telefonnummern]] = None, + emailadressen: Optional[Union[Iterable[str], Emailadressen]] = None, + id_short: str = "Kaeufer", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if firmenname and not isinstance(firmenname, SubmodelElement): + firmenname = self.Firmenname(firmenname) + + # Build a submodel element if a raw value was passed in the argument + if anrede and not isinstance(anrede, SubmodelElement): + anrede = self.Anrede(anrede) + + # Build a submodel element if a raw value was passed in the argument + if vorname and not isinstance(vorname, SubmodelElement): + vorname = self.Vorname(vorname) + + # Build a submodel element if a raw value was passed in the argument + if nachname and not isinstance(nachname, SubmodelElement): + nachname = self.Nachname(nachname) + + # Build a submodel element if a raw value was passed in the argument + if adresse and not isinstance(adresse, SubmodelElement): + adresse = self.Adresse(adresse) + + # Build a submodel element if a raw value was passed in the argument + if umsatzbesteuerung and not isinstance( + umsatzbesteuerung, SubmodelElement + ): + umsatzbesteuerung = self.Umsatzbesteuerung(umsatzbesteuerung) + + # Build a submodel element if a raw value was passed in the argument + if iBAN and not isinstance(iBAN, SubmodelElement): + iBAN = self.IBAN(iBAN) + + # Build a submodel element if a raw value was passed in the argument + if steuernummer and not isinstance(steuernummer, SubmodelElement): + steuernummer = self.Steuernummer(steuernummer) + + # Build a submodel element if a raw value was passed in the argument + if telefonnummern and not isinstance(telefonnummern, SubmodelElement): + telefonnummern = self.Telefonnummern(telefonnummern) + + # Build a submodel element if a raw value was passed in the argument + if emailadressen and not isinstance(emailadressen, SubmodelElement): + emailadressen = self.Emailadressen(emailadressen) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [ + firmenname, + anrede, + vorname, + nachname, + adresse, + umsatzbesteuerung, + iBAN, + steuernummer, + telefonnummern, + emailadressen, + ]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Fuhrmann(SubmodelElementCollection): + class Firmenname(Property): + def __init__( + self, + value: str, + id_short: str = "Firmenname", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Firmenname", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Anrede(Property): + def __init__( + self, + value: str, + id_short: str = "Anrede", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Anrede", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Vorname(Property): + def __init__( + self, + value: str, + id_short: str = "Vorname", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Vorname", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Nachname(Property): + def __init__( + self, + value: str, + id_short: str = "Nachname", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Nachname", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Adresse(Property): + def __init__( + self, + value: str, + id_short: str = "Adresse", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Adresse", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Umsatzbesteuerung(Property): + def __init__( + self, + value: str, + id_short: str = "Umsatzbesteuerung", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Umsatzbesteuerung", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class IBAN(Property): + def __init__( + self, + value: str, + id_short: str = "IBAN", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/IBAN", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Steuernummer(Property): + def __init__( + self, + value: str, + id_short: str = "Steuernummer", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Steuernummer", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Telefonnummern(SubmodelElementList): + class Telefon(Property): + def __init__( + self, + value: str, + id_short: str = "Telefon", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Telefonnummern/Telefon", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + telefon: Optional[Iterable[Union[str, Telefon]]] = None, + id_short: str = "Telefonnummern", + type_value_list_element: SubmodelElement = Property, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = str, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Telefonnummern", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a list of submodel elements if a raw values were passed in the argument + if telefon and all([isinstance(i, str) for i in telefon]): + telefon = [self.Telefon(i) for i in telefon] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [telefon]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Emailadressen(SubmodelElementList): + class Email(Property): + def __init__( + self, + value: str, + id_short: str = "Email", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Emailadressen/Email", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + email: Optional[Iterable[Union[str, Email]]] = None, + id_short: str = "Emailadressen", + type_value_list_element: SubmodelElement = Property, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = str, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Emailadressen", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a list of submodel elements if a raw values were passed in the argument + if email and all([isinstance(i, str) for i in email]): + email = [self.Email(i) for i in email] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [email]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + firmenname: Optional[Union[str, Firmenname]] = None, + anrede: Optional[Union[str, Anrede]] = None, + vorname: Optional[Union[str, Vorname]] = None, + nachname: Optional[Union[str, Nachname]] = None, + adresse: Optional[Union[str, Adresse]] = None, + umsatzbesteuerung: Optional[Union[str, Umsatzbesteuerung]] = None, + iBAN: Optional[Union[str, IBAN]] = None, + steuernummer: Optional[Union[str, Steuernummer]] = None, + telefonnummern: Optional[Union[Iterable[str], Telefonnummern]] = None, + emailadressen: Optional[Union[Iterable[str], Emailadressen]] = None, + id_short: str = "Fuhrmann", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if firmenname and not isinstance(firmenname, SubmodelElement): + firmenname = self.Firmenname(firmenname) + + # Build a submodel element if a raw value was passed in the argument + if anrede and not isinstance(anrede, SubmodelElement): + anrede = self.Anrede(anrede) + + # Build a submodel element if a raw value was passed in the argument + if vorname and not isinstance(vorname, SubmodelElement): + vorname = self.Vorname(vorname) + + # Build a submodel element if a raw value was passed in the argument + if nachname and not isinstance(nachname, SubmodelElement): + nachname = self.Nachname(nachname) + + # Build a submodel element if a raw value was passed in the argument + if adresse and not isinstance(adresse, SubmodelElement): + adresse = self.Adresse(adresse) + + # Build a submodel element if a raw value was passed in the argument + if umsatzbesteuerung and not isinstance( + umsatzbesteuerung, SubmodelElement + ): + umsatzbesteuerung = self.Umsatzbesteuerung(umsatzbesteuerung) + + # Build a submodel element if a raw value was passed in the argument + if iBAN and not isinstance(iBAN, SubmodelElement): + iBAN = self.IBAN(iBAN) + + # Build a submodel element if a raw value was passed in the argument + if steuernummer and not isinstance(steuernummer, SubmodelElement): + steuernummer = self.Steuernummer(steuernummer) + + # Build a submodel element if a raw value was passed in the argument + if telefonnummern and not isinstance(telefonnummern, SubmodelElement): + telefonnummern = self.Telefonnummern(telefonnummern) + + # Build a submodel element if a raw value was passed in the argument + if emailadressen and not isinstance(emailadressen, SubmodelElement): + emailadressen = self.Emailadressen(emailadressen) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [ + firmenname, + anrede, + vorname, + nachname, + adresse, + umsatzbesteuerung, + iBAN, + steuernummer, + telefonnummern, + emailadressen, + ]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Projekt(Property): + def __init__( + self, + value: str, + id_short: str = "Projekt", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Projekt", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Hieb(Property): + def __init__( + self, + value: str, + id_short: str = "Hieb", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Hieb", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Notiz(Property): + def __init__( + self, + value: str, + id_short: str = "Notiz", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Notiz", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + ernte: Optional[Union[Tuple[Date, Date], Ernte]] = None, + lieferant: Optional[Lieferant] = None, + kaeufer: Optional[Kaeufer] = None, + fuhrmann: Optional[Fuhrmann] = None, + projekt: Optional[Union[str, Projekt]] = None, + hieb: Optional[Union[str, Hieb]] = None, + notiz: Optional[Union[str, Notiz]] = None, + id_short: str = "Kopfdaten", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if ernte and not isinstance(ernte, SubmodelElement): + ernte = self.Ernte(ernte) + + # Build a submodel element if a raw value was passed in the argument + if projekt and not isinstance(projekt, SubmodelElement): + projekt = self.Projekt(projekt) + + # Build a submodel element if a raw value was passed in the argument + if hieb and not isinstance(hieb, SubmodelElement): + hieb = self.Hieb(hieb) + + # Build a submodel element if a raw value was passed in the argument + if notiz and not isinstance(notiz, SubmodelElement): + notiz = self.Notiz(notiz) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [ernte, lieferant, kaeufer, fuhrmann, projekt, hieb, notiz]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Sortimentstyp(Property): + def __init__( + self, + value: str, + id_short: str = "Sortimentstyp", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Sortimentstyp", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Sorte(Property): + def __init__( + self, + value: str, + id_short: str = "Sorte", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Sorte", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Holzart(Property): + def __init__( + self, + value: str, + id_short: str = "Holzart", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Holzart", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class PolterListe(SubmodelElementList): + class Polter(SubmodelElementCollection): + class Polternummer(Property): + def __init__( + self, + value: str, + id_short: str = "Polternummer", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Polternummer", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Vermessungsverfahren(Property): + def __init__( + self, + value: str, + id_short: str = "Vermessungsverfahren", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Vermessungsverfahren", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Polterstatus(Property): + def __init__( + self, + value: str, + id_short: str = "Polterstatus", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Polterstatus", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Fotos(SubmodelElementList): + class Foto(Property): + def __init__( + self, + value: str, + id_short: str = "Foto", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Fotos/Foto", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + foto: Optional[Iterable[Union[str, Foto]]] = None, + id_short: str = "Fotos", + type_value_list_element: SubmodelElement = Property, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = str, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Fotos", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a list of submodel elements if a raw values were passed in the argument + if foto and all([isinstance(i, str) for i in foto]): + foto = [self.Foto(i) for i in foto] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [foto]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Videos(SubmodelElementList): + class Video(Property): + def __init__( + self, + value: str, + id_short: str = "Video", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Videos/Video", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + video: Optional[Iterable[Union[str, Video]]] = None, + id_short: str = "Videos", + type_value_list_element: SubmodelElement = Property, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = str, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Videos", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a list of submodel elements if a raw values were passed in the argument + if video and all([isinstance(i, str) for i in video]): + video = [self.Video(i) for i in video] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [video]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Messergebnis_EinzelstammListe(SubmodelElementCollection): + class Einzelstaemme(SubmodelElementList): + class Einzelstamm(SubmodelElementCollection): + class Menge(Property): + def __init__( + self, + value: float, + id_short: str = "Menge", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Menge", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Stammlaenge(Property): + def __init__( + self, + value: float, + id_short: str = "Stammlaenge", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Stammlaenge", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Stammnummer(Property): + def __init__( + self, + value: str, + id_short: str = "Stammnummer", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Stammnummer", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Mittendurchmesser(Property): + def __init__( + self, + value: float, + id_short: str = "Mittendurchmesser", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Mittendurchmesser", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Gueteklasse(Property): + def __init__( + self, + value: str, + id_short: str = "Gueteklasse", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Gueteklasse", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Klammerstammabschnittsnummer(Property): + def __init__( + self, + value: str, + id_short: str = "Klammerstammabschnittsnummer", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Klammerstammabschnittsnummer", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + menge: Union[float, Menge], + stammlaenge: Union[float, Stammlaenge], + stammnummer: Union[str, Stammnummer], + mittendurchmesser: Union[float, Mittendurchmesser], + gueteklasse: Optional[Union[str, Gueteklasse]] = None, + klammerstammabschnittsnummer: Optional[ + Union[str, Klammerstammabschnittsnummer] + ] = None, + id_short: str = "Einzelstamm", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="OneToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if menge and not isinstance(menge, SubmodelElement): + menge = self.Menge(menge) + + # Build a submodel element if a raw value was passed in the argument + if stammlaenge and not isinstance( + stammlaenge, SubmodelElement + ): + stammlaenge = self.Stammlaenge(stammlaenge) + + # Build a submodel element if a raw value was passed in the argument + if stammnummer and not isinstance( + stammnummer, SubmodelElement + ): + stammnummer = self.Stammnummer(stammnummer) + + # Build a submodel element if a raw value was passed in the argument + if mittendurchmesser and not isinstance( + mittendurchmesser, SubmodelElement + ): + mittendurchmesser = self.Mittendurchmesser( + mittendurchmesser + ) + + # Build a submodel element if a raw value was passed in the argument + if gueteklasse and not isinstance( + gueteklasse, SubmodelElement + ): + gueteklasse = self.Gueteklasse(gueteklasse) + + # Build a submodel element if a raw value was passed in the argument + if klammerstammabschnittsnummer and not isinstance( + klammerstammabschnittsnummer, SubmodelElement + ): + klammerstammabschnittsnummer = ( + self.Klammerstammabschnittsnummer( + klammerstammabschnittsnummer + ) + ) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [ + menge, + stammlaenge, + stammnummer, + mittendurchmesser, + gueteklasse, + klammerstammabschnittsnummer, + ]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + einzelstamm: Iterable[Einzelstamm], + id_short: str = "Einzelstaemme", + type_value_list_element: SubmodelElement = SubmodelElementCollection, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = None, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [einzelstamm]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + einzelstaemme: Einzelstaemme, + id_short: str = "Messergebnis_EinzelstammListe", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [einzelstaemme]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Standort(SubmodelElementCollection): + class Koordinate(SubmodelElementCollection): + class X(Property): + def __init__( + self, + value: float, + id_short: str = "x", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Standort/Koordinate/x", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Y(Property): + def __init__( + self, + value: float, + id_short: str = "y", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Standort/Koordinate/y", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Alt(Property): + def __init__( + self, + value: float, + id_short: str = "alt", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Standort/Koordinate/alt", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Crs(Property): + def __init__( + self, + value: str, + id_short: str = "crs", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Standort/Koordinate/crs", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + x: Optional[Union[float, X]] = None, + y: Optional[Union[float, Y]] = None, + alt: Optional[Union[float, Alt]] = None, + crs: Optional[Union[str, Crs]] = None, + id_short: str = "Koordinate", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Standort/Koordinate", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="OneToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if x and not isinstance(x, SubmodelElement): + x = self.X(x) + + # Build a submodel element if a raw value was passed in the argument + if y and not isinstance(y, SubmodelElement): + y = self.Y(y) + + # Build a submodel element if a raw value was passed in the argument + if alt and not isinstance(alt, SubmodelElement): + alt = self.Alt(alt) + + # Build a submodel element if a raw value was passed in the argument + if crs and not isinstance(crs, SubmodelElement): + crs = self.Crs(crs) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [x, y, alt, crs]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Notiz(Property): + def __init__( + self, + value: str, + id_short: str = "Notiz", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Standort/Notiz", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + koordinate: Iterable[Koordinate], + notiz: Optional[Union[str, Notiz]] = None, + id_short: str = "Standort", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Standort", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if notiz and not isinstance(notiz, SubmodelElement): + notiz = self.Notiz(notiz) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [koordinate, notiz]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + polternummer: Union[str, Polternummer], + vermessungsverfahren: Union[str, Vermessungsverfahren], + polterstatus: Union[str, Polterstatus], + fotos: Optional[Union[Iterable[str], Fotos]] = None, + videos: Optional[Union[Iterable[str], Videos]] = None, + messergebnis_EinzelstammListe: Optional[ + Messergebnis_EinzelstammListe + ] = None, + standort: Optional[Standort] = None, + id_short: str = "Polter", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="OneToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if polternummer and not isinstance(polternummer, SubmodelElement): + polternummer = self.Polternummer(polternummer) + + # Build a submodel element if a raw value was passed in the argument + if vermessungsverfahren and not isinstance( + vermessungsverfahren, SubmodelElement + ): + vermessungsverfahren = self.Vermessungsverfahren( + vermessungsverfahren + ) + + # Build a submodel element if a raw value was passed in the argument + if polterstatus and not isinstance(polterstatus, SubmodelElement): + polterstatus = self.Polterstatus(polterstatus) + + # Build a submodel element if a raw value was passed in the argument + if fotos and not isinstance(fotos, SubmodelElement): + fotos = self.Fotos(fotos) + + # Build a submodel element if a raw value was passed in the argument + if videos and not isinstance(videos, SubmodelElement): + videos = self.Videos(videos) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [ + polternummer, + vermessungsverfahren, + polterstatus, + fotos, + videos, + messergebnis_EinzelstammListe, + standort, + ]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + polter: Iterable[Polter], + id_short: str = "PolterListe", + type_value_list_element: SubmodelElement = SubmodelElementCollection, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = None, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [polter]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Preismatrix(SubmodelElementList): + class Preismatrixeintrag(SubmodelElementCollection): + class Preis(Property): + def __init__( + self, + value: float, + id_short: str = "Preis", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Preismatrix/Preismatrixeintrag/Preis", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class MittendurchmesserVon(Property): + def __init__( + self, + value: float, + id_short: str = "MittendurchmesserVon", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Preismatrix/Preismatrixeintrag/MittendurchmesserVon", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class MittendurchmesserBis(Property): + def __init__( + self, + value: float, + id_short: str = "MittendurchmesserBis", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Preismatrix/Preismatrixeintrag/MittendurchmesserBis", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class GueteklasseVon(Property): + def __init__( + self, + value: str, + id_short: str = "GueteklasseVon", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Preismatrix/Preismatrixeintrag/GueteklasseVon", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class GueteklasseBis(Property): + def __init__( + self, + value: str, + id_short: str = "GueteklasseBis", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Preismatrix/Preismatrixeintrag/GueteklasseBis", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + preis: Union[float, Preis], + gueteklasseVon: Union[str, GueteklasseVon], + gueteklasseBis: Union[str, GueteklasseBis], + mittendurchmesserVon: Optional[ + Union[float, MittendurchmesserVon] + ] = None, + mittendurchmesserBis: Optional[ + Union[float, MittendurchmesserBis] + ] = None, + id_short: str = "Preismatrixeintrag", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Preismatrix/Preismatrixeintrag", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if preis and not isinstance(preis, SubmodelElement): + preis = self.Preis(preis) + + # Build a submodel element if a raw value was passed in the argument + if mittendurchmesserVon and not isinstance( + mittendurchmesserVon, SubmodelElement + ): + mittendurchmesserVon = self.MittendurchmesserVon( + mittendurchmesserVon + ) + + # Build a submodel element if a raw value was passed in the argument + if mittendurchmesserBis and not isinstance( + mittendurchmesserBis, SubmodelElement + ): + mittendurchmesserBis = self.MittendurchmesserBis( + mittendurchmesserBis + ) + + # Build a submodel element if a raw value was passed in the argument + if gueteklasseVon and not isinstance(gueteklasseVon, SubmodelElement): + gueteklasseVon = self.GueteklasseVon(gueteklasseVon) + + # Build a submodel element if a raw value was passed in the argument + if gueteklasseBis and not isinstance(gueteklasseBis, SubmodelElement): + gueteklasseBis = self.GueteklasseBis(gueteklasseBis) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [ + preis, + mittendurchmesserVon, + mittendurchmesserBis, + gueteklasseVon, + gueteklasseBis, + ]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + preismatrixeintrag: Optional[Iterable[Preismatrixeintrag]] = None, + id_short: str = "Preismatrix", + type_value_list_element: SubmodelElement = SubmodelElementCollection, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = None, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Preismatrix", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [preismatrixeintrag]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + id_: str, + kopfdaten: Kopfdaten, + sortimentstyp: Union[str, Sortimentstyp], + sorte: Union[str, Sorte], + holzart: Union[str, Holzart], + polterListe: PolterListe, + preismatrix: Optional[Preismatrix] = None, + id_short: str = "Holzliste", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + administration: Optional[AdministrativeInformation] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzliste/0/1", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = () + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if sortimentstyp and not isinstance(sortimentstyp, SubmodelElement): + sortimentstyp = self.Sortimentstyp(sortimentstyp) + + # Build a submodel element if a raw value was passed in the argument + if sorte and not isinstance(sorte, SubmodelElement): + sorte = self.Sorte(sorte) + + # Build a submodel element if a raw value was passed in the argument + if holzart and not isinstance(holzart, SubmodelElement): + holzart = self.Holzart(holzart) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [ + kopfdaten, + sortimentstyp, + sorte, + holzart, + polterListe, + preismatrix, + ]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + submodel_element=embedded_submodel_elements, + id_=id_, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + administration=administration, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + +class Holzpreisbereiche(Submodel): + class Holzpreisbereich(SubmodelElementCollection): + class Baumart(Property): + def __init__( + self, + value: str, + id_short: str = "Baumart", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereich/Baumart", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class PreisVon(Property): + def __init__( + self, + value: float, + id_short: str = "PreisVon", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereich/PreisVon", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class PreisBis(Property): + def __init__( + self, + value: float, + id_short: str = "PreisBis", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereich/PreisBis", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Sorte(Property): + def __init__( + self, + value: str, + id_short: str = "Sorte", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereich/Sorte", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Gueteklasse(Property): + def __init__( + self, + value: str, + id_short: str = "Gueteklasse", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereich/Gueteklasse", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class MittendurchmesserVon(Property): + def __init__( + self, + value: float, + id_short: str = "MittendurchmesserVon", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereich/MittendurchmesserVon", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class MittendurchmesserBis(Property): + def __init__( + self, + value: float, + id_short: str = "MittendurchmesserBis", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereich/MittendurchmesserBis", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class HolzlisteReference(ReferenceElement): + def __init__( + self, + value: Reference, + id_short: str = "HolzlisteReference", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereich/HolzlisteReference", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Datum(Property): + def __init__( + self, + value: Date, + id_short: str = "Datum", + value_type: DataTypeDefXsd = Date, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereich/Datum", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Quelle(Property): + def __init__( + self, + value: str, + id_short: str = "Quelle", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereich/Quelle", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + baumart: Union[str, Baumart], + preisVon: Union[float, PreisVon], + preisBis: Union[float, PreisBis], + sorte: Optional[Union[str, Sorte]] = None, + gueteklasse: Optional[Union[str, Gueteklasse]] = None, + mittendurchmesserVon: Optional[Union[float, MittendurchmesserVon]] = None, + mittendurchmesserBis: Optional[Union[float, MittendurchmesserBis]] = None, + holzlisteReference: Optional[Union[Reference, HolzlisteReference]] = None, + datum: Optional[Union[Date, Datum]] = None, + quelle: Optional[Union[str, Quelle]] = None, + id_short: str = "Holzpreisbereich", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereich", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if baumart and not isinstance(baumart, SubmodelElement): + baumart = self.Baumart(baumart) + + # Build a submodel element if a raw value was passed in the argument + if preisVon and not isinstance(preisVon, SubmodelElement): + preisVon = self.PreisVon(preisVon) + + # Build a submodel element if a raw value was passed in the argument + if preisBis and not isinstance(preisBis, SubmodelElement): + preisBis = self.PreisBis(preisBis) + + # Build a submodel element if a raw value was passed in the argument + if sorte and not isinstance(sorte, SubmodelElement): + sorte = self.Sorte(sorte) + + # Build a submodel element if a raw value was passed in the argument + if gueteklasse and not isinstance(gueteklasse, SubmodelElement): + gueteklasse = self.Gueteklasse(gueteklasse) + + # Build a submodel element if a raw value was passed in the argument + if mittendurchmesserVon and not isinstance( + mittendurchmesserVon, SubmodelElement + ): + mittendurchmesserVon = self.MittendurchmesserVon(mittendurchmesserVon) + + # Build a submodel element if a raw value was passed in the argument + if mittendurchmesserBis and not isinstance( + mittendurchmesserBis, SubmodelElement + ): + mittendurchmesserBis = self.MittendurchmesserBis(mittendurchmesserBis) + + # Build a submodel element if a raw value was passed in the argument + if holzlisteReference and not isinstance( + holzlisteReference, SubmodelElement + ): + holzlisteReference = self.HolzlisteReference(holzlisteReference) + + # Build a submodel element if a raw value was passed in the argument + if datum and not isinstance(datum, SubmodelElement): + datum = self.Datum(datum) + + # Build a submodel element if a raw value was passed in the argument + if quelle and not isinstance(quelle, SubmodelElement): + quelle = self.Quelle(quelle) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [ + baumart, + preisVon, + preisBis, + sorte, + gueteklasse, + mittendurchmesserVon, + mittendurchmesserBis, + holzlisteReference, + datum, + quelle, + ]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + id_: str, + holzpreisbereich: Optional[Iterable[Holzpreisbereich]] = None, + id_short: str = "Holzpreisbereiche", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + administration: Optional[AdministrativeInformation] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = () + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [holzpreisbereich]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + submodel_element=embedded_submodel_elements, + id_=id_, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + administration=administration, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + +class Verkaufslos(Submodel): + class Verkaufsstatus(Property): + def __init__( + self, + value: int, + id_short: str = "Verkaufsstatus", + value_type: DataTypeDefXsd = int, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaufsstatus", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Abrechnungsmass(Property): + def __init__( + self, + value: str, + id_short: str = "Abrechnungsmass", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Abrechnungsmass", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Bereitstellungsart(Property): + def __init__( + self, + value: str, + id_short: str = "Bereitstellungsart", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Bereitstellungsart", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class VerfuegbarAb(Property): + def __init__( + self, + value: Date, + id_short: str = "VerfuegbarAb", + value_type: DataTypeDefXsd = Date, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/VerfuegbarAb", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class VerfuegbarBis(Property): + def __init__( + self, + value: Date, + id_short: str = "VerfuegbarBis", + value_type: DataTypeDefXsd = Date, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/VerfuegbarBis", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Verkaeufer(SubmodelElementCollection): + class Firmenname(Property): + def __init__( + self, + value: str, + id_short: str = "Firmenname", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Firmenname", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Anrede(Property): + def __init__( + self, + value: str, + id_short: str = "Anrede", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Anrede", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Vorname(Property): + def __init__( + self, + value: str, + id_short: str = "Vorname", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Vorname", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Nachname(Property): + def __init__( + self, + value: str, + id_short: str = "Nachname", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Nachname", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Adresse(Property): + def __init__( + self, + value: str, + id_short: str = "Adresse", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Adresse", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Umsatzbesteuerung(Property): + def __init__( + self, + value: str, + id_short: str = "Umsatzbesteuerung", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Umsatzbesteuerung", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class IBAN(Property): + def __init__( + self, + value: str, + id_short: str = "IBAN", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/IBAN", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Steuernummer(Property): + def __init__( + self, + value: str, + id_short: str = "Steuernummer", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Steuernummer", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Telefonnummern(SubmodelElementList): + class Telefon(Property): + def __init__( + self, + value: str, + id_short: str = "Telefon", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Telefonnummern/Telefon", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + telefon: Optional[Iterable[Union[str, Telefon]]] = None, + id_short: str = "Telefonnummern", + type_value_list_element: SubmodelElement = Property, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = str, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Telefonnummern", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a list of submodel elements if a raw values were passed in the argument + if telefon and all([isinstance(i, str) for i in telefon]): + telefon = [self.Telefon(i) for i in telefon] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [telefon]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Emailadressen(SubmodelElementList): + class Email(Property): + def __init__( + self, + value: str, + id_short: str = "Email", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Emailadressen/Email", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + email: Optional[Iterable[Union[str, Email]]] = None, + id_short: str = "Emailadressen", + type_value_list_element: SubmodelElement = Property, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = str, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Emailadressen", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a list of submodel elements if a raw values were passed in the argument + if email and all([isinstance(i, str) for i in email]): + email = [self.Email(i) for i in email] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [email]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + firmenname: Optional[Union[str, Firmenname]] = None, + anrede: Optional[Union[str, Anrede]] = None, + vorname: Optional[Union[str, Vorname]] = None, + nachname: Optional[Union[str, Nachname]] = None, + adresse: Optional[Union[str, Adresse]] = None, + umsatzbesteuerung: Optional[Union[str, Umsatzbesteuerung]] = None, + iBAN: Optional[Union[str, IBAN]] = None, + steuernummer: Optional[Union[str, Steuernummer]] = None, + telefonnummern: Optional[Union[Iterable[str], Telefonnummern]] = None, + emailadressen: Optional[Union[Iterable[str], Emailadressen]] = None, + id_short: str = "Verkaeufer", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if firmenname and not isinstance(firmenname, SubmodelElement): + firmenname = self.Firmenname(firmenname) + + # Build a submodel element if a raw value was passed in the argument + if anrede and not isinstance(anrede, SubmodelElement): + anrede = self.Anrede(anrede) + + # Build a submodel element if a raw value was passed in the argument + if vorname and not isinstance(vorname, SubmodelElement): + vorname = self.Vorname(vorname) + + # Build a submodel element if a raw value was passed in the argument + if nachname and not isinstance(nachname, SubmodelElement): + nachname = self.Nachname(nachname) + + # Build a submodel element if a raw value was passed in the argument + if adresse and not isinstance(adresse, SubmodelElement): + adresse = self.Adresse(adresse) + + # Build a submodel element if a raw value was passed in the argument + if umsatzbesteuerung and not isinstance(umsatzbesteuerung, SubmodelElement): + umsatzbesteuerung = self.Umsatzbesteuerung(umsatzbesteuerung) + + # Build a submodel element if a raw value was passed in the argument + if iBAN and not isinstance(iBAN, SubmodelElement): + iBAN = self.IBAN(iBAN) + + # Build a submodel element if a raw value was passed in the argument + if steuernummer and not isinstance(steuernummer, SubmodelElement): + steuernummer = self.Steuernummer(steuernummer) + + # Build a submodel element if a raw value was passed in the argument + if telefonnummern and not isinstance(telefonnummern, SubmodelElement): + telefonnummern = self.Telefonnummern(telefonnummern) + + # Build a submodel element if a raw value was passed in the argument + if emailadressen and not isinstance(emailadressen, SubmodelElement): + emailadressen = self.Emailadressen(emailadressen) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [ + firmenname, + anrede, + vorname, + nachname, + adresse, + umsatzbesteuerung, + iBAN, + steuernummer, + telefonnummern, + emailadressen, + ]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Notiz(Property): + def __init__( + self, + value: str, + id_short: str = "Notiz", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Notiz", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Holzlisten(SubmodelElementList): + class HolzlisteReference(ReferenceElement): + def __init__( + self, + value: Reference, + id_short: str = "HolzlisteReference", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Holzlisten/HolzlisteReference", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + holzlisteReference: Optional[ + Iterable[Union[Reference, HolzlisteReference]] + ] = None, + id_short: str = "Holzlisten", + type_value_list_element: SubmodelElement = ReferenceElement, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = None, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Holzlisten", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a list of submodel elements if a raw values were passed in the argument + if holzlisteReference and all( + [isinstance(i, Reference) for i in holzlisteReference] + ): + holzlisteReference = [ + self.HolzlisteReference(i) for i in holzlisteReference + ] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [holzlisteReference]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Preismatrix(SubmodelElementList): + class Preismatrixeintrag(SubmodelElementCollection): + class Preis(Property): + def __init__( + self, + value: float, + id_short: str = "Preis", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag/Preis", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class MittendurchmesserVon(Property): + def __init__( + self, + value: float, + id_short: str = "MittendurchmesserVon", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag/MittendurchmesserVon", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class MittendurchmesserBis(Property): + def __init__( + self, + value: float, + id_short: str = "MittendurchmesserBis", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag/MittendurchmesserBis", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class GueteklasseVon(Property): + def __init__( + self, + value: str, + id_short: str = "GueteklasseVon", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag/GueteklasseVon", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class GueteklasseBis(Property): + def __init__( + self, + value: str, + id_short: str = "GueteklasseBis", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag/GueteklasseBis", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + preis: Union[float, Preis], + gueteklasseVon: Union[str, GueteklasseVon], + gueteklasseBis: Union[str, GueteklasseBis], + mittendurchmesserVon: Optional[ + Union[float, MittendurchmesserVon] + ] = None, + mittendurchmesserBis: Optional[ + Union[float, MittendurchmesserBis] + ] = None, + id_short: str = "Preismatrixeintrag", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if preis and not isinstance(preis, SubmodelElement): + preis = self.Preis(preis) + + # Build a submodel element if a raw value was passed in the argument + if mittendurchmesserVon and not isinstance( + mittendurchmesserVon, SubmodelElement + ): + mittendurchmesserVon = self.MittendurchmesserVon( + mittendurchmesserVon + ) + + # Build a submodel element if a raw value was passed in the argument + if mittendurchmesserBis and not isinstance( + mittendurchmesserBis, SubmodelElement + ): + mittendurchmesserBis = self.MittendurchmesserBis( + mittendurchmesserBis + ) + + # Build a submodel element if a raw value was passed in the argument + if gueteklasseVon and not isinstance(gueteklasseVon, SubmodelElement): + gueteklasseVon = self.GueteklasseVon(gueteklasseVon) + + # Build a submodel element if a raw value was passed in the argument + if gueteklasseBis and not isinstance(gueteklasseBis, SubmodelElement): + gueteklasseBis = self.GueteklasseBis(gueteklasseBis) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [ + preis, + mittendurchmesserVon, + mittendurchmesserBis, + gueteklasseVon, + gueteklasseBis, + ]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + preismatrixeintrag: Optional[Iterable[Preismatrixeintrag]] = None, + id_short: str = "Preismatrix", + type_value_list_element: SubmodelElement = SubmodelElementCollection, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = None, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [preismatrixeintrag]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + id_: str, + verkaufsstatus: Union[int, Verkaufsstatus], + abrechnungsmass: Union[str, Abrechnungsmass], + bereitstellungsart: Union[str, Bereitstellungsart], + verfuegbarAb: Union[Date, VerfuegbarAb], + verfuegbarBis: Optional[Union[Date, VerfuegbarBis]] = None, + verkaeufer: Optional[Verkaeufer] = None, + notiz: Optional[Union[str, Notiz]] = None, + holzlisten: Optional[Holzlisten] = None, + preismatrix: Optional[Preismatrix] = None, + id_short: str = "Verkaufslos", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + administration: Optional[AdministrativeInformation] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = () + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if verkaufsstatus and not isinstance(verkaufsstatus, SubmodelElement): + verkaufsstatus = self.Verkaufsstatus(verkaufsstatus) + + # Build a submodel element if a raw value was passed in the argument + if abrechnungsmass and not isinstance(abrechnungsmass, SubmodelElement): + abrechnungsmass = self.Abrechnungsmass(abrechnungsmass) + + # Build a submodel element if a raw value was passed in the argument + if bereitstellungsart and not isinstance(bereitstellungsart, SubmodelElement): + bereitstellungsart = self.Bereitstellungsart(bereitstellungsart) + + # Build a submodel element if a raw value was passed in the argument + if verfuegbarAb and not isinstance(verfuegbarAb, SubmodelElement): + verfuegbarAb = self.VerfuegbarAb(verfuegbarAb) + + # Build a submodel element if a raw value was passed in the argument + if verfuegbarBis and not isinstance(verfuegbarBis, SubmodelElement): + verfuegbarBis = self.VerfuegbarBis(verfuegbarBis) + + # Build a submodel element if a raw value was passed in the argument + if notiz and not isinstance(notiz, SubmodelElement): + notiz = self.Notiz(notiz) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [ + verkaufsstatus, + abrechnungsmass, + bereitstellungsart, + verfuegbarAb, + verfuegbarBis, + verkaeufer, + notiz, + holzlisten, + preismatrix, + ]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + submodel_element=embedded_submodel_elements, + id_=id_, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + administration=administration, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + +class Waldweg(Submodel): + class Beschreibung(Property): + def __init__( + self, + value: str, + id_short: str = "Beschreibung", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Beschreibung", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Erstellungsdatum(Property): + def __init__( + self, + value: Date, + id_short: str = "Erstellungsdatum", + value_type: DataTypeDefXsd = Date, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Erstellungsdatum", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Aktualisierungsdatum(Property): + def __init__( + self, + value: Date, + id_short: str = "Aktualisierungsdatum", + value_type: DataTypeDefXsd = Date, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Aktualisierungsdatum", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Breite(Property): + def __init__( + self, + value: float, + id_short: str = "Breite", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Breite", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Wegpunkte(SubmodelElementList): + class Standort(SubmodelElementCollection): + class Koordinate(SubmodelElementCollection): + class X(Property): + def __init__( + self, + value: float, + id_short: str = "x", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Standort/Koordinate/x", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Y(Property): + def __init__( + self, + value: float, + id_short: str = "y", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Standort/Koordinate/y", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Alt(Property): + def __init__( + self, + value: float, + id_short: str = "alt", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Standort/Koordinate/alt", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Crs(Property): + def __init__( + self, + value: str, + id_short: str = "crs", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Standort/Koordinate/crs", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + x: Optional[Union[float, X]] = None, + y: Optional[Union[float, Y]] = None, + alt: Optional[Union[float, Alt]] = None, + crs: Optional[Union[str, Crs]] = None, + id_short: str = "Koordinate", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Standort/Koordinate", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="OneToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if x and not isinstance(x, SubmodelElement): + x = self.X(x) + + # Build a submodel element if a raw value was passed in the argument + if y and not isinstance(y, SubmodelElement): + y = self.Y(y) + + # Build a submodel element if a raw value was passed in the argument + if alt and not isinstance(alt, SubmodelElement): + alt = self.Alt(alt) + + # Build a submodel element if a raw value was passed in the argument + if crs and not isinstance(crs, SubmodelElement): + crs = self.Crs(crs) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [x, y, alt, crs]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Notiz(Property): + def __init__( + self, + value: str, + id_short: str = "Notiz", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Standort/Notiz", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + koordinate: Iterable[Koordinate], + notiz: Optional[Union[str, Notiz]] = None, + id_short: str = "Standort", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Standort", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if notiz and not isinstance(notiz, SubmodelElement): + notiz = self.Notiz(notiz) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [koordinate, notiz]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + standort: Optional[Standort] = None, + id_short: str = "Wegpunkte", + type_value_list_element: SubmodelElement = SubmodelElementCollection, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = None, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [standort]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Wendepunkte(SubmodelElementList): + class Standort(SubmodelElementCollection): + class Koordinate(SubmodelElementCollection): + class X(Property): + def __init__( + self, + value: float, + id_short: str = "x", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Standort/Koordinate/x", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Y(Property): + def __init__( + self, + value: float, + id_short: str = "y", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Standort/Koordinate/y", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Alt(Property): + def __init__( + self, + value: float, + id_short: str = "alt", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Standort/Koordinate/alt", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Crs(Property): + def __init__( + self, + value: str, + id_short: str = "crs", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Standort/Koordinate/crs", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + x: Optional[Union[float, X]] = None, + y: Optional[Union[float, Y]] = None, + alt: Optional[Union[float, Alt]] = None, + crs: Optional[Union[str, Crs]] = None, + id_short: str = "Koordinate", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Standort/Koordinate", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="OneToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if x and not isinstance(x, SubmodelElement): + x = self.X(x) + + # Build a submodel element if a raw value was passed in the argument + if y and not isinstance(y, SubmodelElement): + y = self.Y(y) + + # Build a submodel element if a raw value was passed in the argument + if alt and not isinstance(alt, SubmodelElement): + alt = self.Alt(alt) + + # Build a submodel element if a raw value was passed in the argument + if crs and not isinstance(crs, SubmodelElement): + crs = self.Crs(crs) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [x, y, alt, crs]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Notiz(Property): + def __init__( + self, + value: str, + id_short: str = "Notiz", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Standort/Notiz", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + koordinate: Iterable[Koordinate], + notiz: Optional[Union[str, Notiz]] = None, + id_short: str = "Standort", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Standort", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if notiz and not isinstance(notiz, SubmodelElement): + notiz = self.Notiz(notiz) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [koordinate, notiz]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + standort: Optional[Standort] = None, + id_short: str = "Wendepunkte", + type_value_list_element: SubmodelElement = SubmodelElementCollection, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = None, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [standort]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + id_: str, + beschreibung: Union[str, Beschreibung], + erstellungsdatum: Optional[Union[Date, Erstellungsdatum]] = None, + aktualisierungsdatum: Optional[Union[Date, Aktualisierungsdatum]] = None, + breite: Optional[Union[float, Breite]] = None, + wegpunkte: Optional[Wegpunkte] = None, + wendepunkte: Optional[Wendepunkte] = None, + id_short: str = "Waldweg", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + administration: Optional[AdministrativeInformation] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/Waldweg/0/1", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = () + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if beschreibung and not isinstance(beschreibung, SubmodelElement): + beschreibung = self.Beschreibung(beschreibung) + + # Build a submodel element if a raw value was passed in the argument + if erstellungsdatum and not isinstance(erstellungsdatum, SubmodelElement): + erstellungsdatum = self.Erstellungsdatum(erstellungsdatum) + + # Build a submodel element if a raw value was passed in the argument + if aktualisierungsdatum and not isinstance( + aktualisierungsdatum, SubmodelElement + ): + aktualisierungsdatum = self.Aktualisierungsdatum(aktualisierungsdatum) + + # Build a submodel element if a raw value was passed in the argument + if breite and not isinstance(breite, SubmodelElement): + breite = self.Breite(breite) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [ + beschreibung, + erstellungsdatum, + aktualisierungsdatum, + breite, + wegpunkte, + wendepunkte, + ]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + submodel_element=embedded_submodel_elements, + id_=id_, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + administration=administration, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + +class ZuFaellendeBaeume(Submodel): + class Beschreibung(Property): + def __init__( + self, + value: str, + id_short: str = "Beschreibung", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Beschreibung", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Umring(SubmodelElementCollection): + class Name(Property): + def __init__( + self, + value: str, + id_short: str = "Name", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Name", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Beschreibung(Property): + def __init__( + self, + value: str, + id_short: str = "Beschreibung", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Beschreibung", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Koordinaten(SubmodelElementList): + class Koordinate(SubmodelElementCollection): + class X(Property): + def __init__( + self, + value: float, + id_short: str = "x", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinate/x", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Y(Property): + def __init__( + self, + value: float, + id_short: str = "y", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinate/y", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Alt(Property): + def __init__( + self, + value: float, + id_short: str = "alt", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinate/alt", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Crs(Property): + def __init__( + self, + value: str, + id_short: str = "crs", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinate/crs", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + x: Optional[Union[float, X]] = None, + y: Optional[Union[float, Y]] = None, + alt: Optional[Union[float, Alt]] = None, + crs: Optional[Union[str, Crs]] = None, + id_short: str = "Koordinate", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinate", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="OneToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if x and not isinstance(x, SubmodelElement): + x = self.X(x) + + # Build a submodel element if a raw value was passed in the argument + if y and not isinstance(y, SubmodelElement): + y = self.Y(y) + + # Build a submodel element if a raw value was passed in the argument + if alt and not isinstance(alt, SubmodelElement): + alt = self.Alt(alt) + + # Build a submodel element if a raw value was passed in the argument + if crs and not isinstance(crs, SubmodelElement): + crs = self.Crs(crs) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [x, y, alt, crs]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + koordinate: Iterable[Koordinate], + id_short: str = "Koordinaten", + type_value_list_element: SubmodelElement = SubmodelElementCollection, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = None, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="One", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [koordinate]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + name: Union[str, Name], + beschreibung: Union[str, Beschreibung], + koordinaten: Koordinaten, + id_short: str = "Umring", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = () + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if name and not isinstance(name, SubmodelElement): + name = self.Name(name) + + # Build a submodel element if a raw value was passed in the argument + if beschreibung and not isinstance(beschreibung, SubmodelElement): + beschreibung = self.Beschreibung(beschreibung) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [name, beschreibung, koordinaten]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Position(SubmodelElementCollection): + class Koordinate(SubmodelElementCollection): + class X(Property): + def __init__( + self, + value: float, + id_short: str = "x", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Position/Koordinate/x", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Y(Property): + def __init__( + self, + value: float, + id_short: str = "y", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Position/Koordinate/y", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Alt(Property): + def __init__( + self, + value: float, + id_short: str = "alt", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Position/Koordinate/alt", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Crs(Property): + def __init__( + self, + value: str, + id_short: str = "crs", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Position/Koordinate/crs", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + x: Optional[Union[float, X]] = None, + y: Optional[Union[float, Y]] = None, + alt: Optional[Union[float, Alt]] = None, + crs: Optional[Union[str, Crs]] = None, + id_short: str = "Koordinate", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Position/Koordinate", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="OneToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if x and not isinstance(x, SubmodelElement): + x = self.X(x) + + # Build a submodel element if a raw value was passed in the argument + if y and not isinstance(y, SubmodelElement): + y = self.Y(y) + + # Build a submodel element if a raw value was passed in the argument + if alt and not isinstance(alt, SubmodelElement): + alt = self.Alt(alt) + + # Build a submodel element if a raw value was passed in the argument + if crs and not isinstance(crs, SubmodelElement): + crs = self.Crs(crs) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [x, y, alt, crs]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Notiz(Property): + def __init__( + self, + value: str, + id_short: str = "Notiz", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Position/Notiz", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + koordinate: Iterable[Koordinate], + notiz: Optional[Union[str, Notiz]] = None, + id_short: str = "Position", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Position", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if notiz and not isinstance(notiz, SubmodelElement): + notiz = self.Notiz(notiz) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [koordinate, notiz]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Baumliste(SubmodelElementList): + class StehenderBaum(SubmodelElementCollection): + class Hoehe(Property): + def __init__( + self, + value: float, + id_short: str = "Hoehe", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Hoehe", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Bhd(Property): + def __init__( + self, + value: float, + id_short: str = "bhd", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/bhd", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Baumart(Property): + def __init__( + self, + value: str, + id_short: str = "Baumart", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Baumart", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Position(SubmodelElementCollection): + class Koordinate(SubmodelElementCollection): + class X(Property): + def __init__( + self, + value: float, + id_short: str = "x", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Position/Koordinate/x", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Y(Property): + def __init__( + self, + value: float, + id_short: str = "y", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Position/Koordinate/y", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Alt(Property): + def __init__( + self, + value: float, + id_short: str = "alt", + value_type: DataTypeDefXsd = float, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Position/Koordinate/alt", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Crs(Property): + def __init__( + self, + value: str, + id_short: str = "crs", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Position/Koordinate/crs", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + x: Optional[Union[float, X]] = None, + y: Optional[Union[float, Y]] = None, + alt: Optional[Union[float, Alt]] = None, + crs: Optional[Union[str, Crs]] = None, + id_short: str = "Koordinate", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Position/Koordinate", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="OneToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if x and not isinstance(x, SubmodelElement): + x = self.X(x) + + # Build a submodel element if a raw value was passed in the argument + if y and not isinstance(y, SubmodelElement): + y = self.Y(y) + + # Build a submodel element if a raw value was passed in the argument + if alt and not isinstance(alt, SubmodelElement): + alt = self.Alt(alt) + + # Build a submodel element if a raw value was passed in the argument + if crs and not isinstance(crs, SubmodelElement): + crs = self.Crs(crs) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [x, y, alt, crs]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + class Notiz(Property): + def __init__( + self, + value: str, + id_short: str = "Notiz", + value_type: DataTypeDefXsd = str, + value_id: Optional[Reference] = None, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Position/Notiz", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + super().__init__( + value=value, + id_short=id_short, + value_type=value_type, + value_id=value_id, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + koordinate: Iterable[Koordinate], + notiz: Optional[Union[str, Notiz]] = None, + id_short: str = "Position", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum/Position", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if notiz and not isinstance(notiz, SubmodelElement): + notiz = self.Notiz(notiz) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [koordinate, notiz]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + hoehe: Optional[Union[float, Hoehe]] = None, + bhd: Optional[Union[float, Bhd]] = None, + baumart: Optional[Union[str, Baumart]] = None, + position: Optional[Position] = None, + id_short: str = "StehenderBaum", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/StehenderBaum", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[ + EmbeddedDataSpecification + ] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToMany", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if hoehe and not isinstance(hoehe, SubmodelElement): + hoehe = self.Hoehe(hoehe) + + # Build a submodel element if a raw value was passed in the argument + if bhd and not isinstance(bhd, SubmodelElement): + bhd = self.Bhd(bhd) + + # Build a submodel element if a raw value was passed in the argument + if baumart and not isinstance(baumart, SubmodelElement): + baumart = self.Baumart(baumart) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [hoehe, bhd, baumart, position]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + stehenderBaum: Optional[Iterable[StehenderBaum]] = None, + id_short: str = "Baumliste", + type_value_list_element: SubmodelElement = SubmodelElementCollection, + semantic_id_list_element: Optional[Reference] = None, + value_type_list_element: Optional[DataTypeDefXsd] = None, + order_relevant: bool = True, + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = ( + Qualifier( + type_="Cardinality", + value_type=str, + value="ZeroToOne", + value_id=None, + kind=QualifierKind.CONCEPT_QUALIFIER, + semantic_id=None, + supplemental_semantic_id=(), + ), + ) + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [stehenderBaum]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + value=embedded_submodel_elements, + id_short=id_short, + type_value_list_element=type_value_list_element, + semantic_id_list_element=semantic_id_list_element, + value_type_list_element=value_type_list_element, + order_relevant=order_relevant, + display_name=display_name, + category=category, + description=description, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) + + def __init__( + self, + id_: str, + beschreibung: Union[str, Beschreibung], + umring: Umring, + position: Optional[Position] = None, + baumliste: Optional[Baumliste] = None, + id_short: str = "ZuFaellendeBaeume", + display_name: Optional[LangStringSet] = None, + category: Optional[str] = None, + description: Optional[LangStringSet] = None, + administration: Optional[AdministrativeInformation] = None, + semantic_id: Optional[Reference] = GlobalReference( + key=( + Key( + type_=KeyTypes.GLOBAL_REFERENCE, + value="https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1", + ), + ), + referred_semantic_id=None, + ), + qualifier: Iterable[Qualifier] = None, + kind: ModelingKind = ModelingKind.INSTANCE, + extension: Iterable[Extension] = (), + supplemental_semantic_id: Iterable[Reference] = (), + embedded_data_specifications: Iterable[EmbeddedDataSpecification] = None, + ): + if qualifier is None: + qualifier = () + + if embedded_data_specifications is None: + embedded_data_specifications = [] + + # Build a submodel element if a raw value was passed in the argument + if beschreibung and not isinstance(beschreibung, SubmodelElement): + beschreibung = self.Beschreibung(beschreibung) + + # Add all passed/initialized submodel elements to a single list + embedded_submodel_elements = [] + for se_arg in [beschreibung, umring, position, baumliste]: + if se_arg is None: + continue + elif isinstance(se_arg, SubmodelElement): + embedded_submodel_elements.append(se_arg) + elif isinstance(se_arg, Iterable): + for n, element in enumerate(se_arg): + element.id_short = f"{element.id_short}{n}" + embedded_submodel_elements.append(element) + else: + raise TypeError( + f"Unknown type of value in submodel_element_args: {type(se_arg)}" + ) + + super().__init__( + submodel_element=embedded_submodel_elements, + id_=id_, + id_short=id_short, + display_name=display_name, + category=category, + description=description, + administration=administration, + semantic_id=semantic_id, + qualifier=qualifier, + kind=kind, + extension=extension, + supplemental_semantic_id=supplemental_semantic_id, + embedded_data_specifications=embedded_data_specifications, + ) diff --git a/model/models.py b/model/models.py index c8be8225b98943c0a58fce3abe825c64bc323d36..3d6af5ad3dc862c7c69d67bbf3ba9be424ecf943 100644 --- a/model/models.py +++ b/model/models.py @@ -1,3 +1,4 @@ +from copy import deepcopy from typing import Optional, Iterable, Tuple from abc import ABC, abstractmethod from datetime import date @@ -32,33 +33,32 @@ class Kontakt(SubmodelElementCollection): iban: Optional[str] = None, steuernummer: Optional[str] = None ): - super().__init__(**KWARGS[kontaktrolle.value]) + super().__init__(**deepcopy(KWARGS[kontaktrolle.value])) for i in ( - Property(value=kontaktrolle.value, **KWARGS[KONTAKTROLLE]), - Property(value=firmenname, **KWARGS[FIRMENNAME]), - Property(value=anrede, **KWARGS[ANREDE]), - Property(value=vorname, **KWARGS[VORNAME]), - Property(value=nachname, **KWARGS[NACHNAME]), - Property(value=adresse, **KWARGS[ADRESSE]), - Property(value=umsatzbesteuerung.value, **KWARGS[UMSATZBESTEUERUNG]), - Property(value=iban, **KWARGS[IBAN]), - Property(value=steuernummer, **KWARGS[STEUERNUMMER]), - init_se_list(se_kwargs=KWARGS[TELEFONNUMMERN], item_kwargs=KWARGS[TELEFON], type_value_list_element=Property), - init_se_list(se_kwargs=KWARGS[EMAILADRESSEN], item_kwargs=KWARGS[EMAIL], type_value_list_element=Property) + Property(value=firmenname, **deepcopy(KWARGS[FIRMENNAME])), + Property(value=anrede, **deepcopy(KWARGS[ANREDE])), + Property(value=vorname, **deepcopy(KWARGS[VORNAME])), + Property(value=nachname, **deepcopy(KWARGS[NACHNAME])), + Property(value=adresse, **deepcopy(KWARGS[ADRESSE])), + Property(value=umsatzbesteuerung.value, **deepcopy(KWARGS[UMSATZBESTEUERUNG])), + Property(value=iban, **deepcopy(KWARGS[IBAN])), + Property(value=steuernummer, **deepcopy(KWARGS[STEUERNUMMER])), + init_se_list(se_kwargs=deepcopy(KWARGS[TELEFONNUMMERN]), item_kwargs=deepcopy(KWARGS[TELEFON]), type_value_list_element=Property), + init_se_list(se_kwargs=deepcopy(KWARGS[EMAILADRESSEN]), item_kwargs=deepcopy(KWARGS[EMAIL]), type_value_list_element=Property) ): self.add_referable(i) self.add_telefone(telefonnummern) self.add_emails(emailadressen) def add_telefone(self, values: Iterable[str]): - se_list = self.get_referable(KWARGS[TELEFONNUMMERN][ID_SHORT]) - init_items_and_add_to_se_list(se_list=se_list, values_of_items=values, item_kwargs=KWARGS[TELEFON], + se_list = self.get_referable(deepcopy(KWARGS[TELEFONNUMMERN])[ID_SHORT]) + init_items_and_add_to_se_list(se_list=se_list, values_of_items=values, item_kwargs=deepcopy(KWARGS[TELEFON]), item_type=Property) def add_emails(self, values: Iterable[str]): - se_list = self.get_referable(KWARGS[EMAILADRESSEN][ID_SHORT]) - init_items_and_add_to_se_list(se_list=se_list, values_of_items=values, item_kwargs=KWARGS[EMAIL], + se_list = self.get_referable(deepcopy(KWARGS[EMAILADRESSEN])[ID_SHORT]) + init_items_and_add_to_se_list(se_list=se_list, values_of_items=values, item_kwargs=deepcopy(KWARGS[EMAIL]), item_type=Property) @@ -69,12 +69,12 @@ class Koordinate(SubmodelElementCollection): alt: Optional[float] = None, crs: Optional[enums.CRS] = None, ): - super().__init__(**KWARGS[KOORDINATE]) + super().__init__(**deepcopy(KWARGS[KOORDINATE])) for i in ( - Property(value=x, **KWARGS[X]), - Property(value=y, **KWARGS[Y]), - Property(value=alt, **KWARGS[ALT]), - Property(value=crs, **KWARGS[CRS]), + Property(value=x, **deepcopy(KWARGS[X])), + Property(value=y, **deepcopy(KWARGS[Y])), + Property(value=alt, **deepcopy(KWARGS[ALT])), + Property(value=crs, **deepcopy(KWARGS[CRS])), ): self.add_referable(i) @@ -84,9 +84,9 @@ class Standort(SubmodelElementCollection): koordinate: Koordinate, notiz: Optional[str] = None, ): - super().__init__(**KWARGS[STANDORT]) + super().__init__(**deepcopy(KWARGS[STANDORT])) self.add_referable(koordinate) - self.add_referable(Property(value=notiz, **KWARGS[NOTIZ])) + self.add_referable(Property(value=notiz, **deepcopy(KWARGS[NOTIZ]))) class Umring(SubmodelElementCollection): @@ -95,19 +95,19 @@ class Umring(SubmodelElementCollection): beschreibung: str, koordinaten: Iterable[Koordinate], ): - super().__init__(**KWARGS[UMRING]) + super().__init__(**deepcopy(KWARGS[UMRING])) if len(koordinaten) < 3: raise Exception(f"At least 3 coordinates are needed. Only {len(koordinaten)} provided.") - self.add_referable(Property(value=name, **KWARGS[NAME])) - self.add_referable(Property(value=beschreibung, **KWARGS[BESCHREIBUNG])) - self.add_referable(init_se_list(se_kwargs=KWARGS[KOORDINATEN], item_kwargs=KWARGS[KOORDINATE], type_value_list_element=SubmodelElementCollection)) + self.add_referable(Property(value=name, **deepcopy(KWARGS[NAME]))) + self.add_referable(Property(value=beschreibung, **deepcopy(KWARGS[BESCHREIBUNG]))) + self.add_referable(init_se_list(se_kwargs=deepcopy(KWARGS[KOORDINATEN]), item_kwargs=deepcopy(KWARGS[KOORDINATE]), type_value_list_element=SubmodelElementCollection)) self.add_koordinaten(koordinaten) def add_koordinaten(self, values: Iterable[Koordinate]): - se_list: SubmodelElementList = self.get_referable(KWARGS[KOORDINATEN][ID_SHORT]) + se_list: SubmodelElementList = self.get_referable(deepcopy(KWARGS[KOORDINATEN])[ID_SHORT]) for i, val in enumerate(values): val.id_short = find_next_free_id_short(collection=se_list, - id_short_base=KWARGS[KOORDINATE][ID_SHORT]) + id_short_base=deepcopy(KWARGS[KOORDINATE])[ID_SHORT]) se_list.add_referable(val) @@ -116,13 +116,15 @@ class Preismatrixeintrag(SubmodelElementCollection): preis: float, mittendurchmesser_von: Optional[float] = None, mittendurchmesser_bis: Optional[float] = None, - gueteklasse: Optional[enums.Gueteklasse] = enums.OptionalEnum + gueteklasse_von: Optional[enums.Gueteklasse] = enums.OptionalEnum, + gueteklasse_bis: Optional[enums.Gueteklasse] = enums.OptionalEnum ): - super().__init__(**KWARGS[PREISMATRIXEINTRAG]) - self.add_referable(Property(value=preis, **KWARGS[PREIS])) - self.add_referable(Property(value=mittendurchmesser_von, **KWARGS[MITTENDURCHMESSER_VON])) - self.add_referable(Property(value=mittendurchmesser_bis, **KWARGS[MITTENDURCHMESSER_BIS])) - self.add_referable(Property(value=gueteklasse.value, **KWARGS[GUETEKLASSE])) + super().__init__(**deepcopy(KWARGS[PREISMATRIXEINTRAG])) + self.add_referable(Property(value=preis, **deepcopy(KWARGS[PREIS]))) + self.add_referable(Property(value=mittendurchmesser_von, **deepcopy(KWARGS[MITTENDURCHMESSER_VON]))) + self.add_referable(Property(value=mittendurchmesser_bis, **deepcopy(KWARGS[MITTENDURCHMESSER_BIS]))) + self.add_referable(Property(value=gueteklasse_von.value, **deepcopy(KWARGS[GUETEKLASSE_VON_PREISMATRIX]))) + self.add_referable(Property(value=gueteklasse_bis.value, **deepcopy(KWARGS[GUETEKLASSE_BIS_PREISMATRIX]))) class Kopfdaten(SubmodelElementCollection): @@ -135,13 +137,13 @@ class Kopfdaten(SubmodelElementCollection): fuhrmann: Optional[Kontakt] = None, notiz: Optional[str] = None ): - super().__init__(**KWARGS[KOPFDATEN]) + super().__init__(**deepcopy(KWARGS[KOPFDATEN])) if ernte: if len(ernte) != 2: raise Exception("Expected a tuple of size 2 for 'ernte'.") - self.add_referable(Range(min=ernte[0], max=ernte[1], **KWARGS[ERNTE])) + self.add_referable(Range(min=ernte[0], max=ernte[1], **deepcopy(KWARGS[ERNTE]))) else: - self.add_referable(Range(**KWARGS[ERNTE])) + self.add_referable(Range(**deepcopy(KWARGS[ERNTE]))) if lieferant: lieferant.id_short = LIEFERANT self.add_referable(lieferant) @@ -151,9 +153,9 @@ class Kopfdaten(SubmodelElementCollection): if fuhrmann: fuhrmann.id_short = FUHRMANN self.add_referable(fuhrmann) - self.add_referable(Property(value=projekt, **KWARGS[PROJEKT])) - self.add_referable(Property(value=hieb.value, **KWARGS[HIEB])) - self.add_referable(Property(value=notiz, **KWARGS[NOTIZ])) + self.add_referable(Property(value=projekt, **deepcopy(KWARGS[PROJEKT]))) + self.add_referable(Property(value=hieb.value, **deepcopy(KWARGS[HIEB]))) + self.add_referable(Property(value=notiz, **deepcopy(KWARGS[NOTIZ]))) class RaummassEnergieholz(SubmodelElementCollection): @@ -161,9 +163,9 @@ class RaummassEnergieholz(SubmodelElementCollection): menge: float, stammlaenge: float, ): - super().__init__(**KWARGS[RAUMMASS_ENERGIEHOLZ]) - self.add_referable(Property(value=menge, **KWARGS[MENGE])) - self.add_referable(Property(value=stammlaenge, **KWARGS[STAMMLAENGE])) + super().__init__(**deepcopy(KWARGS[RAUMMASS_ENERGIEHOLZ])) + self.add_referable(Property(value=menge, **deepcopy(KWARGS[MENGE]))) + self.add_referable(Property(value=stammlaenge, **deepcopy(KWARGS[STAMMLAENGE]))) class RaummassIndusrieeholz(SubmodelElementCollection): @@ -172,10 +174,10 @@ class RaummassIndusrieeholz(SubmodelElementCollection): stammlaenge: float, stammanzahl: Optional[int] = None, ): - super().__init__(**KWARGS[RAUMMASS_ENERGIEHOLZ]) - self.add_referable(Property(value=menge, **KWARGS[MENGE])) - self.add_referable(Property(value=stammlaenge, **KWARGS[STAMMLAENGE])) - self.add_referable(Property(value=stammanzahl, **KWARGS[STAMMANZAHL])) + super().__init__(**deepcopy(KWARGS[RAUMMASS_INDUSTRIEHOLZ])) + self.add_referable(Property(value=menge, **deepcopy(KWARGS[MENGE]))) + self.add_referable(Property(value=stammlaenge, **deepcopy(KWARGS[STAMMLAENGE]))) + self.add_referable(Property(value=stammanzahl, **deepcopy(KWARGS[STAMMANZAHL]))) class Einzelstamm(SubmodelElementCollection): @@ -187,25 +189,25 @@ class Einzelstamm(SubmodelElementCollection): gueteklasse: Optional[enums.Gueteklasse] = enums.OptionalEnum, klammerstammabschnittsnummer: Optional[str] = None, ): - super().__init__(**KWARGS[EINZELSTAMM]) - self.add_referable(Property(value=menge, **KWARGS[MENGE])) - self.add_referable(Property(value=stammlaenge, **KWARGS[STAMMLAENGE])) - self.add_referable(Property(value=stammnummer, **KWARGS[STAMMNUMMER])) - self.add_referable(Property(value=mittendurchmesser, **KWARGS[MITTENDURCHMESSER])) - self.add_referable(Property(value=gueteklasse.value, **KWARGS[GUETEKLASSE])) - self.add_referable(Property(value=klammerstammabschnittsnummer, **KWARGS[KLAMMERSTAMMABSCHNITTSNUMMER])) + super().__init__(**deepcopy(KWARGS[EINZELSTAMM])) + self.add_referable(Property(value=menge, **deepcopy(KWARGS[MENGE]))) + self.add_referable(Property(value=stammlaenge, **deepcopy(KWARGS[STAMMLAENGE]))) + self.add_referable(Property(value=stammnummer, **deepcopy(KWARGS[STAMMNUMMER]))) + self.add_referable(Property(value=mittendurchmesser, **deepcopy(KWARGS[MITTENDURCHMESSER]))) + self.add_referable(Property(value=gueteklasse.value, **deepcopy(KWARGS[GUETEKLASSE]))) + self.add_referable(Property(value=klammerstammabschnittsnummer, **deepcopy(KWARGS[KLAMMERSTAMMABSCHNITTSNUMMER]))) class EinzelstammListe(SubmodelElementCollection): def __init__(self, einzelstaeme: Iterable[Einzelstamm], ): - super().__init__(**KWARGS[EINZELSTAMM_LISTE]) - self.add_referable(init_se_list(se_kwargs=KWARGS[EINZELSTAEMME], item_kwargs=KWARGS[EINZELSTAMM], type_value_list_element=SubmodelElementCollection)) + super().__init__(**deepcopy(KWARGS[EINZELSTAMM_LISTE])) + self.add_referable(init_se_list(se_kwargs=deepcopy(KWARGS[EINZELSTAEMME]), item_kwargs=deepcopy(KWARGS[EINZELSTAMM]), type_value_list_element=SubmodelElementCollection)) self.add_einzelstaemme(einzelstaeme) def add_einzelstaemme(self, values: Iterable[Einzelstamm]): - se_list = self.get_referable(KWARGS[EINZELSTAEMME][ID_SHORT]) + se_list = self.get_referable(deepcopy(KWARGS[EINZELSTAEMME])[ID_SHORT]) add_items_to_se_list(se_list=se_list, items=values) @@ -221,21 +223,21 @@ class Polter(SubmodelElementCollection): fotos: Optional[Iterable[str]] = None, videos: Optional[Iterable[str]] = None ): - super().__init__(**KWARGS[POLTER]) - self.add_referable(Property(value=polternummer, **KWARGS[POLTERNUMMER])) - self.add_referable(Property(value=vermessungsverfahren.value, **KWARGS[VERMESSUNGSVERFAHREN])) - self.add_referable(Property(value=polterstatus.value, **KWARGS[POLTERSTATUS])) - self.add_referable(init_se_list(se_kwargs=KWARGS[FOTOS], item_kwargs=KWARGS[FOTO], type_value_list_element=Property)) - self.add_referable(init_se_list(se_kwargs=KWARGS[VIDEOS], item_kwargs=KWARGS[VIDEO], type_value_list_element=Property)) + super().__init__(**deepcopy(KWARGS[POLTER])) + self.add_referable(Property(value=polternummer, **deepcopy(KWARGS[POLTERNUMMER]))) + self.add_referable(Property(value=vermessungsverfahren.value, **deepcopy(KWARGS[VERMESSUNGSVERFAHREN]))) + self.add_referable(Property(value=polterstatus.value, **deepcopy(KWARGS[POLTERSTATUS]))) + self.add_referable(init_se_list(se_kwargs=deepcopy(KWARGS[FOTOS]), item_kwargs=deepcopy(KWARGS[FOTO]), type_value_list_element=Property)) + self.add_referable(init_se_list(se_kwargs=deepcopy(KWARGS[VIDEOS]), item_kwargs=deepcopy(KWARGS[VIDEO]), type_value_list_element=Property)) if messergebnis_einzelstammliste: messergebnis_einzelstammliste.id_short = MESSERGEBNIS_EINZELSTAMMLISTE self.add_referable(messergebnis_einzelstammliste) if messergebnis_raummassindustrieholz: - messergebnis_raummassenergieholz = MESSERGEBNIS_RAUMMASSINDUSTRIEHOLZ + messergebnis_raummassenergieholz.id_short = MESSERGEBNIS_RAUMMASSINDUSTRIEHOLZ self.add_referable(messergebnis_raummassindustrieholz) if messergebnis_raummassenergieholz: - messergebnis_raummassenergieholz = MESSERGEBNIS_RAUMMASSENERGIEHOLZ + messergebnis_raummassenergieholz.id_short = MESSERGEBNIS_RAUMMASSENERGIEHOLZ self.add_referable(messergebnis_raummassenergieholz) if standort: standort.id_short = STANDORT @@ -244,13 +246,13 @@ class Polter(SubmodelElementCollection): self.add_videos(videos) def add_fotos(self, values: Iterable[str]): - se_list = self.get_referable(KWARGS[FOTOS][ID_SHORT]) - init_items_and_add_to_se_list(se_list=se_list, values_of_items=values, item_kwargs=KWARGS[FOTO], + se_list = self.get_referable(deepcopy(KWARGS[FOTOS])[ID_SHORT]) + init_items_and_add_to_se_list(se_list=se_list, values_of_items=values, item_kwargs=deepcopy(KWARGS[FOTO]), item_type=Property) def add_videos(self, values: Iterable[str]): - se_list = self.get_referable(KWARGS[VIDEOS][ID_SHORT]) - init_items_and_add_to_se_list(se_list=se_list, values_of_items=values, item_kwargs=KWARGS[VIDEO], + se_list = self.get_referable(deepcopy(KWARGS[VIDEOS])[ID_SHORT]) + init_items_and_add_to_se_list(se_list=se_list, values_of_items=values, item_kwargs=deepcopy(KWARGS[VIDEO]), item_type=Property) @@ -261,10 +263,10 @@ class StehenderBaum(SubmodelElementCollection): baumart: Optional[enums.Holzart] = enums.OptionalEnum, position: Optional[Standort] = None ): - super().__init__(**KWARGS[STEHENDER_BAUM]) - self.add_referable(Property(value=hoehe, **KWARGS[HOEHE])) - self.add_referable(Property(value=bhd, **KWARGS[BHD])) - self.add_referable(Property(value=baumart.value, **KWARGS[BAUMART])) + super().__init__(**deepcopy(KWARGS[STEHENDER_BAUM])) + self.add_referable(Property(value=hoehe, **deepcopy(KWARGS[HOEHE]))) + self.add_referable(Property(value=bhd, **deepcopy(KWARGS[BHD]))) + self.add_referable(Property(value=baumart.value, **deepcopy(KWARGS[STEHENDER_BAUM_BAUMART]))) if position: position.id_short = POSITION self.add_referable(position) @@ -280,13 +282,13 @@ class Holzliste(Submodel): holzart: enums.Holzart, preismatrix: Optional[Iterable[Preismatrixeintrag]] = None, ): - super().__init__(id_=id, **KWARGS[HOLZLISTE]) + super().__init__(id_=id, **deepcopy(KWARGS[HOLZLISTE])) self.add_referable(kopfdaten) - self.add_referable(Property(value=sortimentstyp.value, **KWARGS[SORTIMENTSTYP])) - self.add_referable(Property(value=sorte.value, **KWARGS[SORTE])) - self.add_referable(Property(value=holzart.value, **KWARGS[HOLZART])) - self.add_referable(init_se_list(se_kwargs=KWARGS[POLTER_LISTE], item_kwargs=KWARGS[POLTER], type_value_list_element=SubmodelElementCollection)) - self.add_referable(init_se_list(se_kwargs=KWARGS[PREISMATRIX], item_kwargs=KWARGS[PREISMATRIXEINTRAG], type_value_list_element=SubmodelElementCollection)) + self.add_referable(Property(value=sortimentstyp.value, **deepcopy(KWARGS[SORTIMENTSTYP]))) + self.add_referable(Property(value=sorte.value, **deepcopy(KWARGS[SORTE]))) + self.add_referable(Property(value=holzart.value, **deepcopy(KWARGS[HOLZART]))) + self.add_referable(init_se_list(se_kwargs=deepcopy(KWARGS[POLTER_LISTE]), item_kwargs=deepcopy(KWARGS[POLTER]), type_value_list_element=SubmodelElementCollection)) + self.add_referable(init_se_list(se_kwargs=deepcopy(KWARGS[PREISMATRIX]), item_kwargs=deepcopy(KWARGS[PREISMATRIXEINTRAG]), type_value_list_element=SubmodelElementCollection)) self.add_polterliste(polterliste) self.add_preismatrix(preismatrix) @@ -294,11 +296,11 @@ class Holzliste(Submodel): def add_polterliste(self, values: Iterable[Polter]): if not values: raise Exception("'polter' must include at least a single item.") - se_list = self.get_referable(KWARGS[POLTER_LISTE][ID_SHORT]) + se_list = self.get_referable(deepcopy(KWARGS[POLTER_LISTE])[ID_SHORT]) add_items_to_se_list(se_list=se_list, items=values) def add_preismatrix(self, values: Iterable[Preismatrixeintrag]): - se_list = self.get_referable(KWARGS[PREISMATRIX][ID_SHORT]) + se_list = self.get_referable(deepcopy(KWARGS[PREISMATRIX])[ID_SHORT]) add_items_to_se_list(se_list=se_list, items=values) @@ -315,29 +317,29 @@ class Verkaufslos(Submodel): holzlisten: Optional[Iterable[Reference]] = None, preismatrix: Optional[Iterable[Preismatrixeintrag]] = None ): - super().__init__(id_=id, **KWARGS[VERKAUFSLOS]) - self.add_referable(Property(value=verkaufsstatus.value, **KWARGS[VERKAUFSSTATUS])) - self.add_referable(Property(value=abrechnungsmass.value, **KWARGS[ABRECHNUNGSMASS])) - self.add_referable(Property(value=bereitstellungsart.value, **KWARGS[BEREITSTELLUNGSART])) - self.add_referable(Property(value=verfuegbar_ab, **KWARGS[VERFUEGBAR_AB])) - self.add_referable(Property(value=verfuegbar_bis, **KWARGS[VERFUEGBAR_BIS])) + super().__init__(id_=id, **deepcopy(KWARGS[VERKAUFSLOS])) + self.add_referable(Property(value=verkaufsstatus.value, **deepcopy(KWARGS[VERKAUFSSTATUS]))) + self.add_referable(Property(value=abrechnungsmass.value, **deepcopy(KWARGS[ABRECHNUNGSMASS]))) + self.add_referable(Property(value=bereitstellungsart.value, **deepcopy(KWARGS[BEREITSTELLUNGSART]))) + self.add_referable(Property(value=verfuegbar_ab, **deepcopy(KWARGS[VERFUEGBAR_AB]))) + self.add_referable(Property(value=verfuegbar_bis, **deepcopy(KWARGS[VERFUEGBAR_BIS]))) if verkauefer: verkauefer.id_short = VERKAEUFER self.add_referable(verkauefer) - self.add_referable(Property(value=notiz, **KWARGS[NOTIZ])) - self.add_referable(init_se_list(se_kwargs=KWARGS[HOLZLISTEN], item_kwargs=KWARGS[HOLZLISTE], type_value_list_element=ReferenceElement)) - self.add_referable(init_se_list(se_kwargs=KWARGS[PREISMATRIX], item_kwargs=KWARGS[PREISMATRIXEINTRAG], type_value_list_element=SubmodelElementCollection)) + self.add_referable(Property(value=notiz, **deepcopy(KWARGS[NOTIZ]))) + self.add_referable(init_se_list(se_kwargs=deepcopy(KWARGS[HOLZLISTEN]), item_kwargs=deepcopy(KWARGS[HOLZLISTE_REF_IN_HOLZLISTEN]), type_value_list_element=ReferenceElement)) + self.add_referable(init_se_list(se_kwargs=deepcopy(KWARGS[PREISMATRIX]), item_kwargs=deepcopy(KWARGS[PREISMATRIXEINTRAG]), type_value_list_element=SubmodelElementCollection)) self.add_holzlisten(holzlisten) self.add_preismatrix(preismatrix) def add_holzlisten(self, values: Iterable[Reference]): - se_list = self.get_referable(KWARGS[HOLZLISTEN][ID_SHORT]) - values = [ReferenceElement(id_short=HOLZLISTE, value=i) for i in values] + se_list = self.get_referable(deepcopy(KWARGS[HOLZLISTEN])[ID_SHORT]) + values = [ReferenceElement(value=i, **deepcopy(KWARGS[HOLZLISTE_REF_IN_HOLZLISTEN])) for i in values] add_items_to_se_list(se_list=se_list, items=values) def add_preismatrix(self, values: Iterable[Preismatrixeintrag]): - se_list = self.get_referable(KWARGS[PREISMATRIX][ID_SHORT]) + se_list = self.get_referable(deepcopy(KWARGS[PREISMATRIX])[ID_SHORT]) add_items_to_se_list(se_list=se_list, items=values) @@ -354,17 +356,17 @@ class Holzpreisbereich(SubmodelElementCollection): datum: Optional[date] = None, quelle: Optional[str] = None ): - super().__init__(**KWARGS[HOLZPREISBEREICH]) - self.add_referable(Property(value=baumart.value, **KWARGS[BAUMART])) - self.add_referable(Property(value=preis_von, **KWARGS[PREIS_VON])) - self.add_referable(Property(value=preis_bis, **KWARGS[PREIS_BIS])) - self.add_referable(Property(value=sorte.value, **KWARGS[SORTE])) - self.add_referable(Property(value=gueteklasse.value, **KWARGS[GUETEKLASSE])) - self.add_referable(Property(value=mittendurchmesser_von, **KWARGS[MITTENDURCHMESSER_VON])) - self.add_referable(Property(value=mittendurchmesser_bis, **KWARGS[MITTENDURCHMESSER_BIS])) - self.add_referable(ReferenceElement(value=holzliste, **KWARGS[HOLZLISTE])) - self.add_referable(Property(value=datum, **KWARGS[DATUM])) - self.add_referable(Property(value=quelle, **KWARGS[QUELLE])) + super().__init__(**deepcopy(KWARGS[HOLZPREISBEREICH])) + self.add_referable(Property(value=baumart.value, **deepcopy(KWARGS[HOLZPREISBEREICH_BAUMART]))) + self.add_referable(Property(value=preis_von, **deepcopy(KWARGS[PREIS_VON]))) + self.add_referable(Property(value=preis_bis, **deepcopy(KWARGS[PREIS_BIS]))) + self.add_referable(Property(value=sorte.value, **deepcopy(KWARGS[HOLZPREISBEREICH_SORTE]))) + self.add_referable(Property(value=gueteklasse.value, **deepcopy(KWARGS[GUETEKLASSE]))) + self.add_referable(Property(value=mittendurchmesser_von, **deepcopy(KWARGS[MITTENDURCHMESSER_VON]))) + self.add_referable(Property(value=mittendurchmesser_bis, **deepcopy(KWARGS[MITTENDURCHMESSER_BIS]))) + self.add_referable(ReferenceElement(value=holzliste, **deepcopy(KWARGS[HOLZLISTE_REF_IN_HOLZPREISBEREICH]))) + self.add_referable(Property(value=datum, **deepcopy(KWARGS[DATUM]))) + self.add_referable(Property(value=quelle, **deepcopy(KWARGS[QUELLE]))) class Sortiment(SubmodelElementCollection): @@ -373,7 +375,8 @@ class Sortiment(SubmodelElementCollection): sortimentstyp: enums.Sortimentstyp, sorte: enums.Sorte, holzart: enums.Holzart, - gueteklasse: enums.Gueteklasse, + gueteklasseVon: enums.Gueteklasse, + gueteklasseBis: enums.Gueteklasse, laenge_von: float, laenge_bis: float, mindestzopf: float, @@ -384,21 +387,22 @@ class Sortiment(SubmodelElementCollection): bemerkung: Optional[str] = None, ergebnis: Optional[Iterable[Reference]] = None ): - super().__init__(**KWARGS[SORTIMENT]) + super().__init__(**deepcopy(KWARGS[SORTIMENT])) for i in ( - Property(value=nummer, **KWARGS[NUMMER]), - Property(value=sortimentstyp.value, **KWARGS[SORTIMENTSTYP]), - Property(value=sorte.value, **KWARGS[SORTE]), - Property(value=holzart.value, **KWARGS[HOLZART]), - Property(value=gueteklasse.value, **KWARGS[GUETEKLASSE]), - Property(value=laenge_von, **KWARGS[LAENGE_VON]), - Property(value=laenge_bis, **KWARGS[LAENGE_BIS]), - Property(value=mindestzopf, **KWARGS[MINDESTZOPF]), - Property(value=max_durchmesser, **KWARGS[MAX_DURCHMESSER]), - Property(value=laengenzugabe, **KWARGS[LAENGENZUGABE]), - Property(value=mengenschaetzung, **KWARGS[MENGENSCHAETZUNG]), - Property(value=bemerkung, **KWARGS[BEMERKUNG]), - init_se_list(se_kwargs=KWARGS[ERGEBNIS], item_kwargs=KWARGS[HOLZLISTE], type_value_list_element=ReferenceElement), + Property(value=nummer, **deepcopy(KWARGS[NUMMER])), + Property(value=sortimentstyp.value, **deepcopy(KWARGS[SORTIMENTSTYP])), + Property(value=sorte.value, **deepcopy(KWARGS[SORTE])), + Property(value=holzart.value, **deepcopy(KWARGS[HOLZART])), + Property(value=gueteklasseVon.value, **deepcopy(KWARGS[GUETEKLASSE_VON])), + Property(value=gueteklasseBis.value, **deepcopy(KWARGS[GUETEKLASSE_BIS])), + Property(value=laenge_von, **deepcopy(KWARGS[LAENGE_VON])), + Property(value=laenge_bis, **deepcopy(KWARGS[LAENGE_BIS])), + Property(value=mindestzopf, **deepcopy(KWARGS[MINDESTZOPF])), + Property(value=max_durchmesser, **deepcopy(KWARGS[MAX_DURCHMESSER])), + Property(value=laengenzugabe, **deepcopy(KWARGS[LAENGENZUGABE])), + Property(value=mengenschaetzung, **deepcopy(KWARGS[MENGENSCHAETZUNG])), + Property(value=bemerkung, **deepcopy(KWARGS[BEMERKUNG])), + init_se_list(se_kwargs=deepcopy(KWARGS[ERGEBNIS]), item_kwargs=deepcopy(KWARGS[HOLZLISTE_REF_IN_ERGEBNIS]), type_value_list_element=ReferenceElement), ): self.add_referable(i) if kaeufer: @@ -407,31 +411,30 @@ class Sortiment(SubmodelElementCollection): self.add_ergebnis(ergebnis) def add_ergebnis(self, values: Iterable[Reference]): - se_list = self.get_referable(KWARGS[ERGEBNIS][ID_SHORT]) - values = [ReferenceElement(id_short=ERGEBNIS, value=i) for i in values] + se_list = self.get_referable(deepcopy(KWARGS[ERGEBNIS])[ID_SHORT]) + values = [ReferenceElement(value=i, **deepcopy(KWARGS[HOLZLISTE_REF_IN_ERGEBNIS])) for i in values] add_items_to_se_list(se_list=se_list, items=values) class ZuFaellendeBaeume(Submodel): def __init__(self, id: Identifier, - name: str, beschreibung: str, umring: Umring, position: Optional[Standort] = None, baumliste: Optional[Iterable[StehenderBaum]] = None, ): - super().__init__(id_=id, **KWARGS[ZU_FAELLENDE_BAEUME]) - self.add_referable(Property(value=name, **KWARGS[NAME])) - self.add_referable(Property(value=beschreibung, **KWARGS[BESCHREIBUNG])) + super().__init__(id_=id, **deepcopy(KWARGS[ZU_FAELLENDE_BAEUME])) + self.add_referable(Property(value=beschreibung, **deepcopy(KWARGS[BESCHREIBUNG]))) self.add_referable(umring) if position: + position.id_short = POSITION self.add_referable(position) - self.add_referable(init_se_list(se_kwargs=KWARGS[BAUMLISTE], item_kwargs=KWARGS[STEHENDER_BAUM], type_value_list_element=SubmodelElementCollection)) + self.add_referable(init_se_list(se_kwargs=deepcopy(KWARGS[BAUMLISTE]), item_kwargs=deepcopy(KWARGS[STEHENDER_BAUM]), type_value_list_element=SubmodelElementCollection)) self.add_baumliste(baumliste) def add_baumliste(self, values: Iterable[StehenderBaum]): - se_list = self.get_referable(KWARGS[BAUMLISTE][ID_SHORT]) + se_list = self.get_referable(deepcopy(KWARGS[BAUMLISTE])[ID_SHORT]) add_items_to_se_list(se_list=se_list, items=values) @@ -440,7 +443,7 @@ class Holzpreisbereiche(Submodel): id: Identifier, holzpreisbereiche: Optional[Iterable[Holzpreisbereich]] = None, ): - super().__init__(id_=id, **KWARGS[HOLZPREISBEREICHE]) + super().__init__(id_=id, **deepcopy(KWARGS[HOLZPREISBEREICHE])) self.add_holzpreisbereiche(holzpreisbereiche) def add_holzpreisbereiche(self, holzpreisbereiche: Iterable[StehenderBaum]): @@ -458,7 +461,7 @@ class Bestandesdaten(Submodel): waldbesitzer: Optional[Kontakt] = None, baumarten: Optional[Iterable[enums.Holzart]] = None, ): - super().__init__(id_=id, **KWARGS[BESTANDESDATEN]) + super().__init__(id_=id, **deepcopy(KWARGS[BESTANDESDATEN])) if waldbesitzer: waldbesitzer.id_short = WALDBESITZER for i in ( @@ -467,13 +470,13 @@ class Bestandesdaten(Submodel): ): if i: self.add_referable(i) - self.add_referable(init_se_list(se_kwargs=KWARGS[BAUMARTEN], item_kwargs=KWARGS[BAUMART], type_value_list_element=Property)) + self.add_referable(init_se_list(se_kwargs=deepcopy(KWARGS[BAUMARTEN]), item_kwargs=deepcopy(KWARGS[BESTANDESDATEN_BAUMART]), type_value_list_element=Property)) self.add_baumarten(baumarten) def add_baumarten(self, values: Iterable[enums.Holzart]): - se_list = self.get_referable(KWARGS[BAUMARTEN][ID_SHORT]) - init_items_and_add_to_se_list(se_list=se_list, values_of_items=values, item_kwargs=KWARGS[BAUMART], + se_list = self.get_referable(deepcopy(KWARGS[BAUMARTEN])[ID_SHORT]) + init_items_and_add_to_se_list(se_list=se_list, values_of_items=values, item_kwargs=deepcopy(KWARGS[BESTANDESDATEN_BAUMART]), item_type=Property) @@ -485,10 +488,10 @@ class Beobachtung(Submodel): umring: Umring, position: Optional[Standort] = None ): - super().__init__(id_=id, **KWARGS[BEOBACHTUNG]) + super().__init__(id_=id, **deepcopy(KWARGS[BEOBACHTUNG])) for i in ( - Property(value=name, **KWARGS[NAME]), - Property(value=beschreibung, **KWARGS[BESCHREIBUNG]), + Property(value=name, **deepcopy(KWARGS[NAME])), + Property(value=beschreibung, **deepcopy(KWARGS[BESCHREIBUNG])), umring, ): self.add_referable(i) @@ -507,14 +510,14 @@ class Waldweg(Submodel): wegpunkte: Optional[Iterable[Standort]] = None, wendepunkte: Optional[Iterable[Standort]] = None ): - super().__init__(id_=id, **KWARGS[WALDWEG]) + super().__init__(id_=id, **deepcopy(KWARGS[WALDWEG])) for i in ( - Property(value=beschreibung, **KWARGS[BESCHREIBUNG]), - Property(value=erstellungsdatum, **KWARGS[ERSTELLUNGSDATUM]), - Property(value=aktualisierungsdatum, **KWARGS[AKTUALISIERUNGSDATUM]), - Property(value=breite, **KWARGS[BREITE]), - init_se_list(se_kwargs=KWARGS[WEGPUNKTE], item_kwargs=KWARGS[STANDORT], type_value_list_element=SubmodelElementCollection), - init_se_list(se_kwargs=KWARGS[WENDEPUNKTE], item_kwargs=KWARGS[STANDORT], type_value_list_element=SubmodelElementCollection), + Property(value=beschreibung, **deepcopy(KWARGS[BESCHREIBUNG])), + Property(value=erstellungsdatum, **deepcopy(KWARGS[ERSTELLUNGSDATUM])), + Property(value=aktualisierungsdatum, **deepcopy(KWARGS[AKTUALISIERUNGSDATUM])), + Property(value=breite, **deepcopy(KWARGS[BREITE])), + init_se_list(se_kwargs=deepcopy(KWARGS[WEGPUNKTE]), item_kwargs=deepcopy(KWARGS[STANDORT]), type_value_list_element=SubmodelElementCollection), + init_se_list(se_kwargs=deepcopy(KWARGS[WENDEPUNKTE]), item_kwargs=deepcopy(KWARGS[STANDORT]), type_value_list_element=SubmodelElementCollection), ): if i: self.add_referable(i) @@ -522,11 +525,11 @@ class Waldweg(Submodel): self.add_wendepunkte(wendepunkte) def add_wegpunkte(self, values: Iterable[Standort]): - se_list = self.get_referable(KWARGS[WEGPUNKTE][ID_SHORT]) + se_list = self.get_referable(deepcopy(KWARGS[WEGPUNKTE])[ID_SHORT]) add_items_to_se_list(se_list=se_list, items=values) def add_wendepunkte(self, values: Iterable[Standort]): - se_list = self.get_referable(KWARGS[WENDEPUNKTE][ID_SHORT]) + se_list = self.get_referable(deepcopy(KWARGS[WENDEPUNKTE])[ID_SHORT]) add_items_to_se_list(se_list=se_list, items=values) @@ -545,16 +548,16 @@ class Arbeitsauftrag(Submodel): auftragsstatus: Optional[enums.Auftragsstatus] = enums.OptionalEnum, zu_faellende_baeume: Optional[Reference] = None, ): - super().__init__(id_=auftrag_id, **KWARGS[ARBEITSAUFTRAG]) + super().__init__(id_=auftrag_id, **deepcopy(KWARGS[ARBEITSAUFTRAG])) ansprechpartner.id_short = ANSPRECHPARTNER for i in ( - Property(value=hiebsnummer, **KWARGS[HIEBSNUMMER]), - Property(value=kurzbeschreibung, **KWARGS[KURZBESCHREIBUNG]), - Property(value=sicherheitshinweise, **KWARGS[SICHERHEITSHINWEISE]), - Property(value=naturschutzhinweise, **KWARGS[NATURSCHUTZHINWEISE]), - Property(value=karte, **KWARGS[KARTE]), - Property(value=auftragsstatus.value, **KWARGS[AUFTRAGSSTATUS]), - init_se_list(se_kwargs=KWARGS[SORTIMENTE], item_kwargs=KWARGS[SORTIMENT], type_value_list_element=SubmodelElementCollection), + Property(value=hiebsnummer, **deepcopy(KWARGS[HIEBSNUMMER])), + Property(value=kurzbeschreibung, **deepcopy(KWARGS[KURZBESCHREIBUNG])), + Property(value=sicherheitshinweise, **deepcopy(KWARGS[SICHERHEITSHINWEISE])), + Property(value=naturschutzhinweise, **deepcopy(KWARGS[NATURSCHUTZHINWEISE])), + Property(value=karte, **deepcopy(KWARGS[KARTE])), + Property(value=auftragsstatus.value, **deepcopy(KWARGS[AUFTRAGSSTATUS])), + init_se_list(se_kwargs=deepcopy(KWARGS[SORTIMENTE]), item_kwargs=deepcopy(KWARGS[SORTIMENT]), type_value_list_element=SubmodelElementCollection), ansprechpartner ): self.add_referable(i) @@ -565,11 +568,11 @@ class Arbeitsauftrag(Submodel): unternehmer_holzernte.id_short = UNTERNEHMER_HOLZERNTE self.add_referable(unternehmer_holzernte) if zu_faellende_baeume: - self.add_referable(ReferenceElement(value=zu_faellende_baeume, **KWARGS[ZU_FAELLENDE_BAEUME])) + self.add_referable(ReferenceElement(value=zu_faellende_baeume, **deepcopy(KWARGS[ZU_FAELLENDE_BAEUME_REF]))) self.add_sortimente(sortimente) def add_sortimente(self, values: Iterable[Sortiment]): - se_list = self.get_referable(KWARGS[SORTIMENTE][ID_SHORT]) + se_list = self.get_referable(deepcopy(KWARGS[SORTIMENTE])[ID_SHORT]) add_items_to_se_list(se_list=se_list, items=values) @@ -586,7 +589,7 @@ class DZWald(AssetAdministrationShell): zu_faellende_baeume: Optional[Reference] = None, # Optional[Reference[ZuFaellendeBaeume]] holzpreisbereiche: Optional[Reference] = None, # Optional[Reference[Holzpreisbereiche]] ): - super().__init__(id_=dzwald_id, asset_information=asset, **KWARGS[DZ_WALD]) + super().__init__(id_=dzwald_id, asset_information=asset, **deepcopy(KWARGS[DZ_WALD])) # TODO: Implement, Should the AAS contain the submodels or only reference them? diff --git a/model/utils.py b/model/utils.py index 6e05657d55dd1a36ff941ac1f286800bd9fd1241..c7f9860d617c9de3737f192878293b65dec55fc9 100644 --- a/model/utils.py +++ b/model/utils.py @@ -1,3 +1,4 @@ +from copy import deepcopy from enum import Enum from typing import Any, Iterable @@ -47,7 +48,7 @@ def init_items_and_add_to_se_list(se_list, values_of_items: Iterable[Any], item_ if isinstance(val, Enum): val = val.value # create item e.g. Property(value="example@email.de", value_type=str, ...) - item = item_type(value=val, **item_kwargs) + item = item_type(value=val, **deepcopy(item_kwargs)) # find free id_short in SubmodelElementList and set item's id_short to it item.id_short = find_next_free_id_short(collection=se_list, id_short_base=item_kwargs[ID_SHORT], diff --git a/modellierung/README.md b/modellierung/README.md index 481c237f75d83bc5a5fa1bb1a1f5998f9540250f..7c83655ffd4d9e2c4536a04e737132f8adb0bffe 100644 --- a/modellierung/README.md +++ b/modellierung/README.md @@ -1,2456 +1,2203 @@ +# Submodelle + ## Waldweg (Submodel Template) -TODO add description here +Die Beschreibung eines Waldwegs. [https://admin-shell.io/kwh40/forestml40/Waldweg](https://admin-shell.io/kwh40/forestml40/Waldweg) ### Beschreibung (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Die textuelle Beschreibung eines Waldwegs. [https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Beschreibung](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Beschreibung) ### Erstellungsdatum (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Erstellungsdatum des Waldwegs [https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Erstellungsdatum](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Erstellungsdatum) ### Aktualisierungsdatum (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Datum der letzten Aktualisierung des Waldwegs [https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Aktualisierungsdatum](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Aktualisierungsdatum) ### Breite (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Breite des Waldwegs in m [https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Breite](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Breite) ### Wegpunkte (SubmodelElementList) -TODO add description here - -Basiert auf externer Definition: - +Liste der Wegpunkte eines Waldwegs. [https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte) -### Wegpunkte (SubmodelElementCollection) - -TODO add description here +### Wegpunkt (SubmodelElementCollection) -Basiert auf externer Definition: - +Einzelner Wegpunkt eines Waldwegs. -[https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Wegpunkte{00}](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Wegpunkte{00}) +[https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Wegpunkt](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Wegpunkt) ### Koordinate (SubmodelElementCollection) -TODO add description here - -Basiert auf externer Definition: - +Lage des Wegpunkt des Waldwegs in Geo-Koordinaten. -[https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Wegpunkte{00}/Koordinate](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Wegpunkte{00}/Koordinate) +[https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Wegpunkt/Koordinate](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Wegpunkt/Koordinate) ### x (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Erster (gemäß Koordinatensystem-Definition) Koordinatenwert zur Lage des Wegpunkt des Waldwegs. -[https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Wegpunkte{00}/Koordinate/x](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Wegpunkte{00}/Koordinate/x) +[https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Wegpunkt/Koordinate/x](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Wegpunkt/Koordinate/x) ### y (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Zweiter (gemäß Koordinatensystem-Definition) Koordinatenwert zur Lage des Wegpunkt des Waldwegs. -[https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Wegpunkte{00}/Koordinate/y](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Wegpunkte{00}/Koordinate/y) +[https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Wegpunkt/Koordinate/y](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Wegpunkt/Koordinate/y) ### alt (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Höhenangabe über N.N. zur Lage des Wegpunkt des Waldwegs. -[https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Wegpunkte{00}/Koordinate/alt](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Wegpunkte{00}/Koordinate/alt) +[https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Wegpunkt/Koordinate/alt](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Wegpunkt/Koordinate/alt) ### crs (SubmodelElement) -TODO add description here +Verwendetes Koordinatensystem zur Beschreibung der Lage des Wegpunkt des Waldwegs. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#crs--enum-). -[https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Wegpunkte{00}/Koordinate/crs](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Wegpunkte{00}/Koordinate/crs) +[https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Wegpunkt/Koordinate/crs](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Wegpunkt/Koordinate/crs) ### Notiz (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Notiz zur Beschreibung der Lage des Wegpunkt des Waldwegs, Freitext. -[https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Wegpunkte{00}/Notiz](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Wegpunkte{00}/Notiz) +[https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Wegpunkt/Notiz](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wegpunkte/Wegpunkt/Notiz) ### Wendepunkte (SubmodelElementList) -TODO add description here - -Basiert auf externer Definition: - +Liste der Wendepunkte des Waldwegs. [https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte) -### Wendepunkte (SubmodelElementCollection) +### Wendepunkt (SubmodelElementCollection) -TODO add description here - -Basiert auf externer Definition: - +Einzelner Wendepunkt des Waldwegs. -[https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Wendepunkte{00}](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Wendepunkte{00}) +[https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Wendepunkt](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Wendepunkt) ### Koordinate (SubmodelElementCollection) -TODO add description here +Lage des Wendepunkt des Waldwegs in Geo-Koordinaten. -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Wendepunkte{00}/Koordinate](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Wendepunkte{00}/Koordinate) +[https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Wendepunkt/Koordinate](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Wendepunkt/Koordinate) ### x (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Erster (gemäß Koordinatensystem-Definition) Koordinatenwert zur Lage des Wendepunkt des Waldwegs. -[https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Wendepunkte{00}/Koordinate/x](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Wendepunkte{00}/Koordinate/x) +[https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Wendepunkt/Koordinate/x](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Wendepunkt/Koordinate/x) ### y (SubmodelElement) -TODO add description here +Zweiter (gemäß Koordinatensystem-Definition) Koordinatenwert zur Lage des Wendepunkt des Waldwegs. -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Wendepunkte{00}/Koordinate/y](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Wendepunkte{00}/Koordinate/y) +[https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Wendepunkt/Koordinate/y](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Wendepunkt/Koordinate/y) ### alt (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Höhenangabe über N.N. zur Lage des Wendepunkt des Waldwegs. -[https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Wendepunkte{00}/Koordinate/alt](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Wendepunkte{00}/Koordinate/alt) +[https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Wendepunkt/Koordinate/alt](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Wendepunkt/Koordinate/alt) ### crs (SubmodelElement) -TODO add description here +Verwendetes Koordinatensystem zur Beschreibung der Lage des Wendepunkt des Waldwegs. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#crs--enum-). -[https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Wendepunkte{00}/Koordinate/crs](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Wendepunkte{00}/Koordinate/crs) +[https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Wendepunkt/Koordinate/crs](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Wendepunkt/Koordinate/crs) ### Notiz (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Notiz zur Beschreibung der Lage des Wendepunkt des Waldwegs, Freitext. -[https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Wendepunkte{00}/Notiz](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Wendepunkte{00}/Notiz) +[https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Wendepunkt/Notiz](https://admin-shell.io/kwh40/forestml40/Waldweg/0/1/Wendepunkte/Wendepunkt/Notiz) ## Bestandesdaten (Submodel Template) -TODO add description here +Bestandesdaten (Naturaldaten) eines Waldbestands. [https://admin-shell.io/kwh40/forestml40/Bestandesdaten](https://admin-shell.io/kwh40/forestml40/Bestandesdaten) ### Umring (SubmodelElementCollection) -TODO add description here - -Basiert auf externer Definition: - +Geometrischer Umring des Waldbestands. [https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring) ### Name (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Bezeichnung des Waldbestands. [https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Name](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Name) ### Beschreibung (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Textuelle Beschreibung des Waldbestands. [https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Beschreibung](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Beschreibung) ### Koordinaten (SubmodelElementList) -TODO add description here - -Basiert auf externer Definition: - +Koordinatenliste des Umrings des Bestandes. [https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten) -### Koordinaten (SubmodelElementCollection) - -TODO add description here +### Koordinate (SubmodelElementCollection) -Basiert auf externer Definition: - +Einzelne Geo-Koordinate des Umrings des Bestandes. -[https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinaten{00}](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinaten{00}) +[https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinate](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinate) ### x (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Erster (gemäß Koordinatensystem-Definition) Koordinatenwert zur Geo-Koordinate des Umrings des Bestandes. -[https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinaten{00}/x](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinaten{00}/x) +[https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinate/x](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinate/x) ### y (SubmodelElement) -TODO add description here +Zweiter (gemäß Koordinatensystem-Definition) Koordinatenwert zur Geo-Koordinate des Umrings des Bestandes. -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinaten{00}/y](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinaten{00}/y) +[https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinate/y](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinate/y) ### alt (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Höhenangabe über N.N. der Geo-Koordinate des Umrings des Bestandes. -[https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinaten{00}/alt](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinaten{00}/alt) +[https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinate/alt](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinate/alt) ### crs (SubmodelElement) -TODO add description here +Verwendetes Koordinatensystem zur Beschreibung der Geo-Koordinate des Umrings des Bestandes. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#crs--enum-). -[https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinaten{00}/crs](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinaten{00}/crs) +[https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinate/crs](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Umring/Koordinaten/Koordinate/crs) ### Waldbesitzer (SubmodelElementCollection) -TODO add description here - -Basiert auf externer Definition: - +Besitzer des Waldes. [https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer) -### Kontaktrolle (SubmodelElement) - -TODO add description here - -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Kontaktrolle](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Kontaktrolle) - ### Firmenname (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Firmenname des Waldbesitzers. [https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Firmenname](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Firmenname) ### Anrede (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Anrede des Waldbesitzers. [https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Anrede](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Anrede) ### Vorname (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Vorname des Waldbesitzers. [https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Vorname](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Vorname) ### Nachname (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Nachname des Waldbesitzers. [https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Nachname](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Nachname) ### Adresse (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Adresse des Waldbesitzers. [https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Adresse](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Adresse) -### Telefonnummern (SubmodelElement) +### Telefonnummern (SubmodelElementList) -TODO add description here - -Basiert auf externer Definition: - +Liste von Telefonnummern des Waldbesitzers. [https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Telefonnummern](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Telefonnummern) -### Telefonnummern (SubmodelElement) +### Telefonnummer (SubmodelElement) -TODO add description here +Einzelne Telefonnummer des Waldbesitzers. -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Telefonnummern/Telefonnummern{00}](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Telefonnummern/Telefonnummern{00}) +[https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Telefonnummern/Telefonnummer](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Telefonnummern/Telefonnummer) -### Emailadressen (SubmodelElement) +### Emailadressen (SubmodelElementList) -TODO add description here - -Basiert auf externer Definition: - +Liste von E-Mail-Adressen des Waldbesitzers. [https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Emailadressen](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Emailadressen) -### Emailadressen (SubmodelElement) +### Emailadresse (SubmodelElement) -TODO add description here +Einzelne E-Mail-Adresse des Waldbesitzers. -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Emailadressen/Emailadressen{00}](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Emailadressen/Emailadressen{00}) +[https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Emailadressen/Emailadresse](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Emailadressen/Emailadresse) ### Umsatzbesteuerung (SubmodelElement) -TODO add description here +Hinterlegter Steuersatz des Waldbesitzers, der für die Steuerberechnung bei Verkäufen benötigt wird. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#umsatzbesteuerung--enum-). [https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Umsatzbesteuerung](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Umsatzbesteuerung) ### IBAN (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +IBAN des Waldbesitzers. [https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/IBAN](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/IBAN) ### Steuernummer (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Umsatzsteuer-ID des Waldbesitzers. [https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Steuernummer](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Waldbesitzer/Steuernummer) ### Baumarten (SubmodelElementList) -TODO add description here +Liste der Baumarten im Waldbestand. -Basiert auf externer Definition: - +Erlaubte Listeneinträge: https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Baumarten/Baumart. [https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Baumarten](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Baumarten) -### Baumarten (SubmodelElementCollection) +### Baumart (SubmodelElement) -TODO add description here +Einzelne Baumart im Waldbestand. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#holzart--enum-). -[https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Baumarten/Baumarten{00}](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Baumarten/Baumarten{00}) +[https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Baumarten/Baumart](https://admin-shell.io/kwh40/forestml40/Bestandesdaten/0/1/Baumarten/Baumart) ## Beobachtung (Submodel Template) -TODO add description here +Beschreibung einer Beobachtung im Waldbestand. [https://admin-shell.io/kwh40/forestml40/Beobachtung](https://admin-shell.io/kwh40/forestml40/Beobachtung) ### Name (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Name der Beobachtung im Waldbestand. [https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Name](https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Name) ### Beschreibung (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Beschreibung der Beobachtung im Waldbestand. [https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Beschreibung](https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Beschreibung) ### Umring (SubmodelElementCollection) -TODO add description here - -Basiert auf externer Definition: - +Geometrischer Umring der Beobachtung im Waldbestand. [https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring](https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring) ### Name (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Name des Umrings der Beobachtung im Waldbestand. [https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Name](https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Name) ### Beschreibung (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Beschreibung des Umrings der Beobachtung im Waldbestand. [https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Beschreibung](https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Beschreibung) ### Koordinaten (SubmodelElementList) -TODO add description here - -Basiert auf externer Definition: - +Koordinatenliste des Umrings der Beobachtung. [https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten](https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten) -### Koordinaten (SubmodelElementCollection) - -TODO add description here +### Koordinate (SubmodelElementCollection) -Basiert auf externer Definition: - +Einzelne Geo-Koordinate des Umrings der Beobachtung. -[https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinaten{00}](https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinaten{00}) +[https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinate](https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinate) ### x (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Erster (gemäß Koordinatensystem-Definition) Koordinatenwert zur Geo-Koordinate des Umrings der Beobachtung. -[https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinaten{00}/x](https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinaten{00}/x) +[https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinate/x](https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinate/x) ### y (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Zweiter (gemäß Koordinatensystem-Definition) Koordinatenwert zur Geo-Koordinate des Umrings der Beobachtung. -[https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinaten{00}/y](https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinaten{00}/y) +[https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinate/y](https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinate/y) ### alt (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Höhenangabe über N.N. zur Geo-Koordinate des Umrings der Beobachtung. -[https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinaten{00}/alt](https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinaten{00}/alt) +[https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinate/alt](https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinate/alt) ### crs (SubmodelElement) -TODO add description here +Verwendetes Koordinatensystem zur Geo-Koordinate des Umrings der Beobachtung. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#crs--enum-). -[https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinaten{00}/crs](https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinaten{00}/crs) +[https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinate/crs](https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Umring/Koordinaten/Koordinate/crs) ### Position (SubmodelElementCollection) -TODO add description here - -Basiert auf externer Definition: - +Position der Beobachtung. [https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Position](https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Position) ### Koordinate (SubmodelElementCollection) -TODO add description here - -Basiert auf externer Definition: - +Lage der Beobachtung in Geo-Koordinaten. [https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Position/Koordinate](https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Position/Koordinate) ### x (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Erster (gemäß Koordinatensystem-Definition) Koordinatenwert zur Lage der Beobachtung. [https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Position/Koordinate/x](https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Position/Koordinate/x) ### y (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Zweiter (gemäß Koordinatensystem-Definition) Koordinatenwert zur Lage der Beobachtung. [https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Position/Koordinate/y](https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Position/Koordinate/y) ### alt (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Höhenangabe über N.N. zur Lage der Beobachtung. [https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Position/Koordinate/alt](https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Position/Koordinate/alt) ### crs (SubmodelElement) -TODO add description here +Verwendetes Koordinatensystem zur Beschreibung der Lage der Beobachtung. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#crs--enum-). [https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Position/Koordinate/crs](https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Position/Koordinate/crs) ### Notiz (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Notiz zur Beschreibung der Lage der Beobachtung, Freitext. [https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Position/Notiz](https://admin-shell.io/kwh40/forestml40/Beobachtung/0/1/Position/Notiz) ## ZuFaellendeBaeume (Submodel Template) -TODO add description here +Zusammenstellung der Bäume die im Waldbestand zum Fällen ausgewählt wurden. [https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume) -### Name (SubmodelElement) - -TODO add description here - -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Name](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Name) - ### Beschreibung (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Beschreibung der Auswahl von Bäumen, die im Waldbestand zum Fällen ausgewählt wurden. [https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Beschreibung](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Beschreibung) ### Umring (SubmodelElementCollection) -TODO add description here - -Basiert auf externer Definition: - +Geometrischer Umring der Auswahl von Bäumen, die im Waldbestand zum Fällen ausgewählt wurden. [https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring) ### Name (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Name des geometrischen Umrings der Auswahl von Bäumen, die im Waldbestand zum Fällen ausgewählt wurden. [https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Name](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Name) ### Beschreibung (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Beschreibung des geometrischen Umrings der Auswahl von Bäumen, die im Waldbestand zum Fällen ausgewählt wurden. [https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Beschreibung](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Beschreibung) ### Koordinaten (SubmodelElementList) -TODO add description here - -Basiert auf externer Definition: - +Koordinatenliste des Umrings der zu fällenden Bäume. [https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten) -### Koordinaten (SubmodelElementCollection) - -TODO add description here +### Koordinate (SubmodelElementCollection) -Basiert auf externer Definition: - +Einzelne Geo-Koordinate des Umrings der zu fällenden Bäume. -[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinaten{00}](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinaten{00}) +[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinate](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinate) ### x (SubmodelElement) -TODO add description here +Erster (gemäß Koordinatensystem-Definition) Koordinatenwert zur Geo-Koordinate des Umrings der zu fällenden Bäume. -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinaten{00}/x](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinaten{00}/x) +[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinate/x](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinate/x) ### y (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Zweiter (gemäß Koordinatensystem-Definition) Koordinatenwert zur Geo-Koordinate des Umrings der zu fällenden Bäume. -[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinaten{00}/y](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinaten{00}/y) +[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinate/y](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinate/y) ### alt (SubmodelElement) -TODO add description here +Höhenangabe über N.N. zur Geo-Koordinate des Umrings der zu fällenden Bäume. -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinaten{00}/alt](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinaten{00}/alt) +[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinate/alt](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinate/alt) ### crs (SubmodelElement) -TODO add description here +Verwendetes Koordinatensystem zur Geo-Koordinate des Umrings der zu fällenden Bäume. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#crs--enum-). -[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinaten{00}/crs](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinaten{00}/crs) +[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinate/crs](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Umring/Koordinaten/Koordinate/crs) ### Position (SubmodelElementCollection) -TODO add description here - -Basiert auf externer Definition: - +Position der zu fällenden Bäume. [https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Position](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Position) ### Koordinate (SubmodelElementCollection) -TODO add description here - -Basiert auf externer Definition: - +Geo-Koordinaten der Position der zu fällenden Bäume. [https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Position/Koordinate](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Position/Koordinate) ### x (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Erster (gemäß Koordinatensystem-Definition) Koordinatenwert der Position der zu fällenden Bäume. [https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Position/Koordinate/x](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Position/Koordinate/x) ### y (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Zweiter (gemäß Koordinatensystem-Definition) Koordinatenwert der Position der zu fällenden Bäume. [https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Position/Koordinate/y](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Position/Koordinate/y) ### alt (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Höhenangabe über N.N. der Position der zu fällenden Bäume. [https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Position/Koordinate/alt](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Position/Koordinate/alt) ### crs (SubmodelElement) -TODO add description here +Verwendetes Koordinatensystem der Position der zu fällenden Bäume. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#crs--enum-). [https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Position/Koordinate/crs](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Position/Koordinate/crs) ### Notiz (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Notiz zur Beschreibung der Position der zu fällenden Bäume, Freitext. [https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Position/Notiz](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Position/Notiz) ### Baumliste (SubmodelElementList) -TODO add description here - -Basiert auf externer Definition: - +Liste zu fällender Bäume. [https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste) -### Baumliste (SubmodelElementCollection) +### Baum (SubmodelElementCollection) -TODO add description here - -Basiert auf externer Definition: - +Einzelner zu fällender Baum. -[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baumliste{00}](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baumliste{00}) +[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baum](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baum) ### Hoehe (SubmodelElement) -TODO add description here +Höhe in m eines Baums in der Liste der zu fällenden Bäume. -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baumliste{00}/Hoehe](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baumliste{00}/Hoehe) +[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baum/Hoehe](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baum/Hoehe) ### BHD (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Brusthöhendurchmesser in cm eines Baums in der Liste der zu fällenden Bäume. -[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baumliste{00}/BHD](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baumliste{00}/BHD) +[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baum/BHD](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baum/BHD) ### Baumart (SubmodelElement) -TODO add description here +Baumart eines Baums in der Liste der zu fällenden Bäume. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#holzart--enum-). -[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baumliste{00}/Baumart](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baumliste{00}/Baumart) +[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baum/Baumart](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baum/Baumart) ### Position (SubmodelElementCollection) -TODO add description here - -Basiert auf externer Definition: - +Position eines Baums in der Liste der zu fällenden Bäume. -[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baumliste{00}/Position](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baumliste{00}/Position) +[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baum/Position](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baum/Position) ### Koordinate (SubmodelElementCollection) -TODO add description here - -Basiert auf externer Definition: - +Geo-Koordinaten zur Position eines Baums in der Liste der zu fällenden Bäume. -[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baumliste{00}/Position/Koordinate](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baumliste{00}/Position/Koordinate) +[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baum/Position/Koordinate](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baum/Position/Koordinate) ### x (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Erster (gemäß Koordinatensystem-Definition) Koordinatenwert zur Position eines Baums in der Liste der zu fällenden Bäume. -[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baumliste{00}/Position/Koordinate/x](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baumliste{00}/Position/Koordinate/x) +[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baum/Position/Koordinate/x](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baum/Position/Koordinate/x) ### y (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Zweiter (gemäß Koordinatensystem-Definition) Koordinatenwert zur Position eines Baums in der Liste der zu fällenden Bäume. -[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baumliste{00}/Position/Koordinate/y](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baumliste{00}/Position/Koordinate/y) +[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baum/Position/Koordinate/y](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baum/Position/Koordinate/y) ### alt (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Höhenangabe über N.N. zur Position eines Baums in der Liste der zu fällenden Bäume. -[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baumliste{00}/Position/Koordinate/alt](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baumliste{00}/Position/Koordinate/alt) +[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baum/Position/Koordinate/alt](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baum/Position/Koordinate/alt) ### crs (SubmodelElement) -TODO add description here +Verwendetes Koordinatensystem zur Position eines Baums in der Liste der zu fällenden Bäume. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#crs--enum-). -[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baumliste{00}/Position/Koordinate/crs](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baumliste{00}/Position/Koordinate/crs) +[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baum/Position/Koordinate/crs](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baum/Position/Koordinate/crs) ### Notiz (SubmodelElement) -TODO add description here +Notiz zur Beschreibung der Position eines Baums in der Liste der zu fällenden Bäume, Freitext. -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baumliste{00}/Position/Notiz](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baumliste{00}/Position/Notiz) +[https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baum/Position/Notiz](https://admin-shell.io/kwh40/forestml40/ZuFaellendeBaeume/0/1/Baumliste/Baum/Position/Notiz) ## Verkaufslos (Submodel Template) -TODO add description here +Zusammenstellung von Holzlisten, die zum Verkauf angeboten werden. [https://admin-shell.io/kwh40/forestml40/Verkaufslos](https://admin-shell.io/kwh40/forestml40/Verkaufslos) -### Holzlisten (SubmodelElement) +### Holzlisten (SubmodelElementList) -TODO add description here - -Basiert auf externer Definition: - +Holzlisten, die dem Verkaufslos zugeordnet wurden. [https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Holzlisten](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Holzlisten) -### Holzlisten (SubmodelElement) - -TODO add description here +### Holzliste (SubmodelElement) -Basiert auf externer Definition: - +Einzelne Holzliste, die dem Verkaufslos zugeordnet wurde. -[https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Holzlisten/Holzlisten{00}](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Holzlisten/Holzlisten{00}) +[https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Holzlisten/Holzliste](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Holzlisten/Holzliste) ### Preismatrix (SubmodelElementList) -TODO add description here - -Basiert auf externer Definition: - +Matrix zur Herleitung von Holzpreisen auf Basis verschiedener Durchmesser- und Güteklassengruppen für das Verkaufslos. [https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix) -### Preismatrix (SubmodelElementCollection) - -TODO add description here +### Preismatrixeintrag (SubmodelElementCollection) -Basiert auf externer Definition: - +Einzelner Eintrag in der Matrix zur Herleitung von Holzpreisen im Verkauflos. -[https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrix{00}](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrix{00}) +[https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag) ### Preis (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Resultierender Holzpreis in EUR pro fm ohne Rinde zur gewählten Kombination aus Durchmesser- und Güteklassengruppe sowie Sortimentstyp und Sorte in diesem Preismatrixeintrag im Verkauflos -[https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrix{00}/Preis](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrix{00}/Preis) +[https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag/Preis](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag/Preis) ### MittendurchmesserVon (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Minimaler Mittendurchmesser in cm ohne Rinde zur gewählten Kombination von Durchmesser- und Güteklassengruppe in diesem Preismatrixeintrag im Verkauflos -[https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrix{00}/MittendurchmesserVon](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrix{00}/MittendurchmesserVon) +[https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag/MittendurchmesserVon](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag/MittendurchmesserVon) ### MittendurchmesserBis (SubmodelElement) -TODO add description here +Maximaler Mittendurchmesser in cm ohne Rinde zur gewählten Kombination von Durchmesser- und Güteklassengruppe in diesem Preismatrixeintrag im Verkauflos -Basiert auf externer Definition: - +[https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag/MittendurchmesserBis](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag/MittendurchmesserBis) -[https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrix{00}/MittendurchmesserBis](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrix{00}/MittendurchmesserBis) +### GueteklasseVon (SubmodelElement) -### Gueteklasse (SubmodelElement) +Güteklasse (Minimum einschl.) zur gewählten Kombination von Eingangsgrößen in diesem Preismatrixeintrag im Verkauflos. -TODO add description here +Wertebereich siehe [hier](#gueteklasse--enum-). -Basiert auf externer Definition: - +[https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag/Gueteklasse](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag/Gueteklasse) + +### GueteklasseBis (SubmodelElement) + +Güteklasse (Maximum einschl.) zur gewählten Kombination von Eingangsgrößen in diesem Preismatrixeintrag im Verkauflos. + +Wertebereich siehe [hier](#gueteklasse--enum-). + +[https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag/Gueteklasse](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag/Gueteklasse) + +### Sortimentstyp (SubmodelElement) -[https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrix{00}/Gueteklasse](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrix{00}/Gueteklasse) +Typ des Sortiments. + +Wertebereich siehe [hier](#sortimentstyp--enum-). + +[https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag/Sortimentstyp](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag/Sortimentstyp) + +### Sorte (SubmodelElement) + +Sorte des Sortiments. + +Wertebereich siehe [hier](#sorte--enum-). + +[https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag/Sorte](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Preismatrix/Preismatrixeintrag/Sorte) ### Verkaufsstatus (SubmodelElement) -TODO add description here +Verkaufsstatus des Verkaufslos. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#verkaufsstatus--enum-). [https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaufsstatus](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaufsstatus) ### Abrechnungsmass (SubmodelElement) -TODO add description here +Abrechnungsmaß des Verkaufslos. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#abrechnungsmass--enum-). [https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Abrechnungsmass](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Abrechnungsmass) ### Bereitstellungsart (SubmodelElement) -TODO add description here +Bereitsstellungsart des Verkaufslos. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#bereitstellungsart--enum-). [https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Bereitstellungsart](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Bereitstellungsart) ### VerfuegbarAb (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Früheste Verfügbarkeit des Verkaufslos (Datum) [https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/VerfuegbarAb](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/VerfuegbarAb) ### VerfuegbarBis (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Späteste Verfügbarkeit des Verkaufslos (Datum) [https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/VerfuegbarBis](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/VerfuegbarBis) ### Verkaeufer (SubmodelElementCollection) -TODO add description here - -Basiert auf externer Definition: - +Verkäufer des Verkaufslos. [https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer) -### Kontaktrolle (SubmodelElement) - -TODO add description here - -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Kontaktrolle](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Kontaktrolle) - ### Firmenname (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Name der Firma des Verkäufers des Verkaufslos. [https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Firmenname](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Firmenname) ### Anrede (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Anrede des Verkäufers des Verkaufslos. [https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Anrede](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Anrede) ### Vorname (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Vorname des Verkäufers des Verkaufslos. [https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Vorname](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Vorname) ### Nachname (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Nachname des Verkäufers des Verkaufslos. [https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Nachname](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Nachname) ### Adresse (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Adresse des Verkäufers des Verkaufslos. [https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Adresse](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Adresse) -### Telefonnummern (SubmodelElement) - -TODO add description here +### Telefonnummern (SubmodelElementList) -Basiert auf externer Definition: - +Liste von Telefonnnummern des Verkäufers des Verkaufslos. [https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Telefonnummern](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Telefonnummern) -### Telefonnummern (SubmodelElement) - -TODO add description here - -Basiert auf externer Definition: - +### Telefonnummer (SubmodelElement) -[https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Telefonnummern/Telefonnummern{00}](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Telefonnummern/Telefonnummern{00}) +Einzelne Telefonnummer des Verkäufers des Verkaufslos. -### Emailadressen (SubmodelElement) +[https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Telefonnummern/Telefonnummer](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Telefonnummern/Telefonnummer) -TODO add description here +### Emailadressen (SubmodelElementList) -Basiert auf externer Definition: - +Liste von E-Mail-Adressen des Verkäufers des Verkaufslos. [https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Emailadressen](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Emailadressen) -### Emailadressen (SubmodelElement) - -TODO add description here +### Emailadresse (SubmodelElement) -Basiert auf externer Definition: - +Einzelne E-Mail-Adresse des Verkäufers des Verkaufslos. -[https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Emailadressen/Emailadressen{00}](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Emailadressen/Emailadressen{00}) +[https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Emailadressen/Emailadresse](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Emailadressen/Emailadresse) ### Umsatzbesteuerung (SubmodelElement) -TODO add description here +Hinterlegter Steuersatz des Verkäufers des Verkaufslos, der für die Steuerberechnung bei Verkäufen benötigt wird. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#umsatzbesteuerung--enum-). [https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Umsatzbesteuerung](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Umsatzbesteuerung) ### IBAN (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +IBAN des Verkäufers des Verkaufslos. [https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/IBAN](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/IBAN) ### Steuernummer (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Umsatzsteuer-ID des Verkäufers des Verkaufslos. [https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Steuernummer](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Verkaeufer/Steuernummer) ### Notiz (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Notiz zum Verkaufslos. [https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Notiz](https://admin-shell.io/kwh40/forestml40/Verkaufslos/0/1/Notiz) ## Arbeitsauftrag (Submodel Template) -TODO add description here +Beschreibung eines Arbeitsauftrags für einen Einsatz im Waldbestand. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag) ### Hiebsnummer (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Nummer des Hiebs - Alphanummerischer Identifikator [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Hiebsnummer](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Hiebsnummer) ### Ansprechpartner (SubmodelElementCollection) -TODO add description here - -Basiert auf externer Definition: - +Ansprechpartner für diesen Arbeitsauftrag. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner) -### Kontaktrolle (SubmodelElement) - -TODO add description here - -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Kontaktrolle](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Kontaktrolle) ### Firmenname (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Firmenname des Ansprechpartners zum Arbeitsauftrag. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Firmenname](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Firmenname) ### Anrede (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Anrede des Ansprechpartners zum Arbeitsauftrag. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Anrede](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Anrede) ### Vorname (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Vorname des Ansprechpartners zum Arbeitsauftrag. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Vorname](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Vorname) ### Nachname (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Nachname des Ansprechpartners zum Arbeitsauftrag. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Nachname](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Nachname) ### Adresse (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Adresse des Ansprechpartners zum Arbeitsauftrag. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Adresse](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Adresse) -### Telefonnummern (SubmodelElement) - -TODO add description here +### Telefonnummern (SubmodelElementList) -Basiert auf externer Definition: - +Liste von Telefonnummern des Ansprechpartners zum Arbeitsauftrag. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Telefonnummern](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Telefonnummern) -### Telefonnummern (SubmodelElement) +### Telefonnummer (SubmodelElement) -TODO add description here +Einzelne Telefonnummer des Ansprechpartners zum Arbeitsauftrag.. -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Telefonnummern/Telefonnummern{00}](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Telefonnummern/Telefonnummern{00}) - -### Emailadressen (SubmodelElement) +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Telefonnummern/Telefonnummer](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Telefonnummern/Telefonnummer) -TODO add description here +### Emailadressen (SubmodelElementList) -Basiert auf externer Definition: - +Liste von E-Mail-Adressen des Ansprechpartners zum Arbeitsauftrag. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Emailadressen](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Emailadressen) -### Emailadressen (SubmodelElement) - -TODO add description here +### Emailadresse (SubmodelElement) -Basiert auf externer Definition: - +Einzelne E-Mail-Adresse des Ansprechpartners zum Arbeitsauftrag. -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Emailadressen/Emailadressen{00}](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Emailadressen/Emailadressen{00}) +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Emailadressen/Emailadresse](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Emailadressen/Emailadresse) ### Umsatzbesteuerung (SubmodelElement) -TODO add description here +Hinterlegter Steuersatz des Ansprechpartners zum Arbeitsauftrag, der für die Steuerberechnung bei Verkäufen benötigt wird. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#umsatzbesteuerung--enum-). [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Umsatzbesteuerung](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Umsatzbesteuerung) ### IBAN (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +IBAN des Ansprechpartners zum Arbeitsauftrag. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/IBAN](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/IBAN) ### Steuernummer (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Umsatzsteuer-ID des Ansprechpartners zum Arbeitsauftrag. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Steuernummer](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Ansprechpartner/Steuernummer) ### UnternehmerHolzernte (SubmodelElementCollection) -TODO add description here - -Basiert auf externer Definition: - +Beschreibung des Unternehmers für die Holzernte zum Arbeitsauftrag. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte) -### Kontaktrolle (SubmodelElement) - -TODO add description here - -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Kontaktrolle](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Kontaktrolle) - ### Firmenname (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Firmenname des Unternehmers für die Holzernte zum Arbeitsauftrag. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Firmenname](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Firmenname) ### Anrede (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Anrede des Unternehmers für die Holzernte zum Arbeitsauftrag. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Anrede](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Anrede) ### Vorname (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Vorname des Unternehmers für die Holzernte zum Arbeitsauftrag. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Vorname](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Vorname) ### Nachname (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Nachname des Unternehmers für die Holzernte zum Arbeitsauftrag. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Nachname](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Nachname) ### Adresse (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Adresse des Unternehmers für die Holzernte zum Arbeitsauftrag. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Adresse](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Adresse) -### Telefonnummern (SubmodelElement) - -TODO add description here +### Telefonnummern (SubmodelElementList) -Basiert auf externer Definition: - +Liste von Telefonnnummern des Unternehmers für die Holzernte zum Arbeitsauftrag. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Telefonnummern](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Telefonnummern) -### Telefonnummern (SubmodelElement) - -TODO add description here - -Basiert auf externer Definition: - +### Telefonnummer (SubmodelElement) -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Telefonnummern/Telefonnummern{00}](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Telefonnummern/Telefonnummern{00}) +Einzelne Telefonnummer des Unternehmers für die Holzernte zum Arbeitsauftrag. -### Emailadressen (SubmodelElement) +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Telefonnummern/Telefonnummer](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Telefonnummern/Telefonnummer) -TODO add description here +### Emailadressen (SubmodelElementList) -Basiert auf externer Definition: - +Liste von E-Mail-Adressen des Unternehmers für die Holzernte zum Arbeitsauftrag. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Emailadressen](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Emailadressen) -### Emailadressen (SubmodelElement) - -TODO add description here +### Emailadresse (SubmodelElement) -Basiert auf externer Definition: - +Einzelne E-Mail-Adresse des Unternehmers für die Holzernte zum Arbeitsauftrag. -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Emailadressen/Emailadressen{00}](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Emailadressen/Emailadressen{00}) +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Emailadressen/Emailadresse](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Emailadressen/Emailadresse) ### Umsatzbesteuerung (SubmodelElement) -TODO add description here +Hinterlegter Steuersatz des Unternehmers für die Holzernte zum Arbeitsauftrag, der für die Steuerberechnung bei Verkäufen benötigt wird. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#umsatzbesteuerung--enum-). [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Umsatzbesteuerung](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Umsatzbesteuerung) ### IBAN (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +IBAN des Unternehmers für die Holzernte zum Arbeitsauftrag. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/IBAN](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/IBAN) ### Steuernummer (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Umsatzsteuer-ID des Unternehmers für die Holzernte zum Arbeitsauftrag. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Steuernummer](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzernte/Steuernummer) ### UnternehmerHolzrueckung (SubmodelElementCollection) -TODO add description here - -Basiert auf externer Definition: - +Beschreibung des Unternehmers für die Holzrückung zum Arbeitsauftrag [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung) -### Kontaktrolle (SubmodelElement) - -TODO add description here - -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Kontaktrolle](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Kontaktrolle) - ### Firmenname (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Firmenname des Unternehmers für die Rückung zum Arbeitsauftrag. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Firmenname](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Firmenname) ### Anrede (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Anrede des Unternehmers für die Rückung zum Arbeitsauftrag. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Anrede](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Anrede) ### Vorname (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Vorname des Unternehmers für die Rückung zum Arbeitsauftrag. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Vorname](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Vorname) ### Nachname (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Nachname des Unternehmers für die Rückung zum Arbeitsauftrag. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Nachname](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Nachname) ### Adresse (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Adresse des Unternehmers für die Rückung zum Arbeitsauftrag. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Adresse](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Adresse) -### Telefonnummern (SubmodelElement) - -TODO add description here +### Telefonnummern (SubmodelElementList) -Basiert auf externer Definition: - +Liste von Telefonnummern des Unternehmers für die Rückung zum Arbeitsauftrag. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Telefonnummern](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Telefonnummern) -### Telefonnummern (SubmodelElement) - -TODO add description here - -Basiert auf externer Definition: - +### Telefonnummer (SubmodelElement) -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Telefonnummern/Telefonnummern{00}](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Telefonnummern/Telefonnummern{00}) +Einzelne Telefonnummer des Unternehmers für die Rückung zum Arbeitsauftrag. -### Emailadressen (SubmodelElement) +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Telefonnummern/Telefonnummer](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Telefonnummern/Telefonnummer) -TODO add description here +### Emailadressen (SubmodelElementList) -Basiert auf externer Definition: - +Liste von E-Mail-Adressen des Unternehmers für die Rückung zum Arbeitsauftrag. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Emailadressen](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Emailadressen) -### Emailadressen (SubmodelElement) +### Emailadresse (SubmodelElement) -TODO add description here +Einzelne E-Mail-Adresse des Unternehmers für die Rückung zum Arbeitsauftrag. -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Emailadressen/Emailadressen{00}](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Emailadressen/Emailadressen{00}) +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Emailadressen/Emailadresse](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Emailadressen/Emailadresse) ### Umsatzbesteuerung (SubmodelElement) -TODO add description here +Hinterlegter Steuersatz des Unternehmers für die Rückung zum Arbeitsauftrag, der für die Steuerberechnung bei Verkäufen benötigt wird. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#umsatzbesteuerung--enum-). [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Umsatzbesteuerung](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Umsatzbesteuerung) ### IBAN (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +IBAN des Unternehmers für die Rückung zum Arbeitsauftrag. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/IBAN](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/IBAN) ### Steuernummer (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Umsatzsteuer-ID des Unternehmers für die Rückung zum Arbeitsauftrag. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Steuernummer](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/UnternehmerHolzrueckung/Steuernummer) ### Kurzbeschreibung (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Kurzbeschreibung des Arbeitsauftrags. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Kurzbeschreibung](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Kurzbeschreibung) ### Sicherheitshinweise (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Sicherheitshinweise zum Arbeitsauftrag, Freitext. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sicherheitshinweise](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sicherheitshinweise) ### Naturschutzhinweise (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Naturschutzhinweise zum Arbeitsauftrag, Freitext. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Naturschutzhinweise](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Naturschutzhinweise) ### Sortimente (SubmodelElementList) -TODO add description here - -Basiert auf externer Definition: - +Lsite der Sortimente für diesen Arbeitsauftrag. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente) -### Sortimente (SubmodelElementCollection) +### Sortiment (SubmodelElementCollection) -TODO add description here +Einzelnes Sortiment für einen Arbeitsauftrag. -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}) +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment) ### Nummer (SubmodelElementCollection) -TODO add description here - -Basiert auf externer Definition: - +Nummer des Sortiments im Arbeitsauftrag (eindeutig innerhalb des Arbeitsauftrags). -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Nummer](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Nummer) +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Nummer](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Nummer) ### Sortimentstyp (SubmodelElement) -TODO add description here +Typ des Sortiments. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#sortimentstyp--enum-). -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Sortimentstyp](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Sortimentstyp) +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Sortimentstyp](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Sortimentstyp) ### Sorte (SubmodelElement) -TODO add description here +Sorte des Sortiments. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#sorte--enum-). -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Sorte](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Sorte) +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Sorte](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Sorte) ### Holzart (SubmodelElement) -TODO add description here +Holzart des Sortiments. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#holzart--enum-). -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Holzart](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Holzart) +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Holzart](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Holzart) ### Gueteklasse (SubmodelElement) -TODO add description here +Güteklasse des Sortiments. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#gueteklasse--enum-). -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Gueteklasse](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Gueteklasse) +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Gueteklasse](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Gueteklasse) ### LaengeVon (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Das Sortiment dieses Arbeitsauftrags enthält Stämme ab dieser Länge, in m -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/LaengeVon](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/LaengeVon) +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/LaengeVon](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/LaengeVon) ### LaengeBis (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Das Sortiment dieses Arbeitsauftrags enthält Stämme bis zu dieser Länge, in m -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/LaengeBis](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/LaengeBis) +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/LaengeBis](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/LaengeBis) ### Mindestzopf (SubmodelElement) -TODO add description here +Mindestdurchmesser des Zopfs in diesem Sortiment dieses Arbeitsauftrags, in cm ohne Rinde -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Mindestzopf](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Mindestzopf) +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Mindestzopf](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Mindestzopf) ### MaxDurchmesser (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Maximaler Durchmesser der Stämme in diesem Sortiment dieses Arbeitsauftrags, in cm ohne Rinde -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/MaxDurchmesser](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/MaxDurchmesser) +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/MaxDurchmesser](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/MaxDurchmesser) ### Kaeufer (SubmodelElementCollection) -TODO add description here - -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Kaeufer](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Kaeufer) - -### Kontaktrolle (SubmodelElement) +Beschreibung des Käufers dieses Sortiments dieses Arbeitsauftrags. -TODO add description here - -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Kaeufer/Kontaktrolle](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Kaeufer/Kontaktrolle) +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer) ### Firmenname (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Firmenname des Käufers des Sortiments im Arbeitsauftrag. -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Kaeufer/Firmenname](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Kaeufer/Firmenname) +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Firmenname](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Firmenname) ### Anrede (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Anrede des Käufers des Sortiments im Arbeitsauftrag. -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Kaeufer/Anrede](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Kaeufer/Anrede) +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Anrede](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Anrede) ### Vorname (SubmodelElement) -TODO add description here +Vorname des Käufers des Sortiments im Arbeitsauftrag. -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Kaeufer/Vorname](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Kaeufer/Vorname) +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Vorname](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Vorname) ### Nachname (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Nachname des Käufers des Sortiments im Arbeitsauftrag. -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Kaeufer/Nachname](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Kaeufer/Nachname) +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Nachname](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Nachname) ### Adresse (SubmodelElement) -TODO add description here +Adresse des Käufers des Sortiments im Arbeitsauftrag. -Basiert auf externer Definition: - +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Adresse](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Adresse) -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Kaeufer/Adresse](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Kaeufer/Adresse) +### Telefonnummern (SubmodelElementList) -### Telefonnummern (SubmodelElement) +Liste von Telefonnummern des Käufers des Sortiments im Arbeitsauftrag. -TODO add description here +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Telefonnummern](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Telefonnummern) -Basiert auf externer Definition: - +### Telefonnummer (SubmodelElement) -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Kaeufer/Telefonnummern](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Kaeufer/Telefonnummern) +Einzelne Telefonnummer des Käufers des Sortiments im Arbeitsauftrag. -### Telefonnummern (SubmodelElement) +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Telefonnummern/Telefonnummer](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Telefonnummern/Telefonnummer) -TODO add description here +### Emailadressen (SubmodelElementList) -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Kaeufer/Telefonnummern/Telefonnummern{00}](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Kaeufer/Telefonnummern/Telefonnummern{00}) - -### Emailadressen (SubmodelElement) +Liste von E-Mail-Adressen des Käufers des Sortiments im Arbeitsauftrag. -TODO add description here +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Emailadressen](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Emailadressen) -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Kaeufer/Emailadressen](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Kaeufer/Emailadressen) +### Emailadresse (SubmodelElement) -### Emailadressen (SubmodelElement) +Einzelne E-Mail-Adresse des Käufers des Sortiments im Arbeitsauftrag. -TODO add description here - -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Kaeufer/Emailadressen/Emailadressen{00}](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Kaeufer/Emailadressen/Emailadressen{00}) +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Emailadressen/Emailadresse](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Emailadressen/Emailadresse) ### Umsatzbesteuerung (SubmodelElement) -TODO add description here +Hinterlegter Steuersatz des Käufers des Sortiments im Arbeitsauftrag, der für die Steuerberechnung bei Verkäufen benötigt wird. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#umsatzbesteuerung--enum-). -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Kaeufer/Umsatzbesteuerung](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Kaeufer/Umsatzbesteuerung) +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Umsatzbesteuerung](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Umsatzbesteuerung) ### IBAN (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +IBAN des Käufers des Sortiments im Arbeitsauftrag. -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Kaeufer/IBAN](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Kaeufer/IBAN) +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/IBAN](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/IBAN) ### Steuernummer (SubmodelElement) -TODO add description here +Umsatzsteuer-ID des Käufers des Sortiments im Arbeitsauftrag. -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Kaeufer/Steuernummer](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Kaeufer/Steuernummer) +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Steuernummer](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Kaeufer/Steuernummer) ### Laengenzugabe (SubmodelElement) -TODO add description here +Optionale Eintragung des Übermaßes von Stammlängen Basiert auf externer Definition: - -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Laengenzugabe](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Laengenzugabe) +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Laengenzugabe](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Laengenzugabe) ### Mengenschaetzung (SubmodelElement) -TODO add description here +Einschätzung der Menge ohne vorhergehende detaillierte Vermessung Basiert auf externer Definition: - -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Mengenschaetzung](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Mengenschaetzung) +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Mengenschaetzung](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Mengenschaetzung) ### Bemerkung (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Bemerkung](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Bemerkung) - -### Ergebnis (SubmodelElement) +Bemerkung zu Sortiment eines Arbeitsauftrags. -TODO add description here +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Bemerkung](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Bemerkung) -Basiert auf externer Definition: - +### Ergebnis (SubmodelElementList) -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Ergebnis](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Ergebnis) +Beschreibung des Ergebnisses eines Arbeitsauftrags in Form einer Liste entstandener Holzlisten. -### Ergebnis (SubmodelElement) +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Ergebnis](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Ergebnis) -TODO add description here +### Holzliste (SubmodelElement) -Basiert auf externer Definition: - +Einzelnes Ergebnis eines Arbeitsauftrags in Form einer entstandenen Holzliste. -[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Ergebnis/Ergebnis{00}](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortimente{00}/Ergebnis/Ergebnis{00}) +[https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Ergebnis/Holzliste](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Sortimente/Sortiment/Ergebnis/Holzliste) ### Karte (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Karte (URL oder BASE64-kodierte Bilddaten) zur Beschreibung des Arbeitsauftrags. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Karte](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Karte) ### Auftragsstatus (SubmodelElement) -TODO add description here +Status des Arbeitsauftrags. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#auftragsstatus--enum-). [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Auftragsstatus](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/Auftragsstatus) ### ZuFaellendeBaeume (SubmodelElementCollection) -TODO add description here - -Basiert auf externer Definition: - +Beschreibung der im Rahmen des Arbeitsauftrags zu fällenden Bäume. [https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/ZuFaellendeBaeume](https://admin-shell.io/kwh40/forestml40/Arbeitsauftrag/0/1/ZuFaellendeBaeume) ## Holzliste (Submodel Template) -TODO add description here +Beschreibung einer Holzliste, d.h. einer Auflistung geschlagenen Holzes. [https://admin-shell.io/kwh40/forestml40/Holzliste](https://admin-shell.io/kwh40/forestml40/Holzliste) ### Kopfdaten (SubmodelElementCollection) -TODO add description here - -Basiert auf externer Definition: - +Kopfdaten der Holzliste. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten) ### Projekt (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Projektbezeichnung für die Holzliste, Freitextfeld. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Projekt](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Projekt) ### Hieb (SubmodelElement) -TODO add description here +Informationen zum Hieb. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#hieb--enum-). [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Hieb](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Hieb) ### Ernte (SubmodelElementCollection) -TODO add description here - -Basiert auf externer Definition: - +Informationen zur Ernte, Freitextfeld. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Ernte](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Ernte) ### Lieferant (SubmodelElementCollection) -TODO add description here - -Basiert auf externer Definition: - +Beschreibung des Lieferanten der Holzliste. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant) -### Kontaktrolle (SubmodelElement) - -TODO add description here - -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Kontaktrolle](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Kontaktrolle) - ### Firmenname (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Firmenname des Lieferanten der Holzliste. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Firmenname](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Firmenname) ### Anrede (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Anrede des Lieferanten der Holzliste. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Anrede](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Anrede) ### Vorname (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Vorname des Lieferanten der Holzliste. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Vorname](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Vorname) ### Nachname (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Nachname des Lieferanten der Holzliste. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Nachname](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Nachname) ### Adresse (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Adresse des Lieferanten der Holzliste. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Adresse](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Adresse) -### Telefonnummern (SubmodelElement) - -TODO add description here +### Telefonnummern (SubmodelElementList) -Basiert auf externer Definition: - +Liste von Telefonnummern des Lieferanten der Holzliste. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Telefonnummern](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Telefonnummern) -### Telefonnummern (SubmodelElement) - -TODO add description here +### Telefonnummer (SubmodelElement) -Basiert auf externer Definition: - +Einzelne Telefonnummer des Lieferanten der Holzliste. -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Telefonnummern/Telefonnummern{00}](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Telefonnummern/Telefonnummern{00}) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Telefonnummern/Telefonnummer](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Telefonnummern/Telefonnummer) -### Emailadressen (SubmodelElement) +### Emailadressen (SubmodelElementList) -TODO add description here - -Basiert auf externer Definition: - +Liste von E-Mail-Adressen des Lieferanten der Holzliste. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Emailadressen](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Emailadressen) -### Emailadressen (SubmodelElement) +### Emailadresse (SubmodelElement) -TODO add description here +Einzelne E-Mail-Adresse des Lieferanten der Holzliste. -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Emailadressen/Emailadressen{00}](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Emailadressen/Emailadressen{00}) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Emailadressen/Emailadresse](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Emailadressen/Emailadresse) ### Umsatzbesteuerung (SubmodelElement) -TODO add description here +Hinterlegter Steuersatz des Lieferanten der Holzliste, der für die Steuerberechnung bei Verkäufen benötigt wird. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#umsatzbesteuerung--enum-). [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Umsatzbesteuerung](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Umsatzbesteuerung) ### IBAN (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +IBAN des Lieferanten der Holzliste. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/IBAN](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/IBAN) ### Steuernummer (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Umsatzsteuer-ID des Lieferanten der Holzliste. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Steuernummer](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Lieferant/Steuernummer) ### Kaeufer (SubmodelElementCollection) -TODO add description here - -Basiert auf externer Definition: - +Beschreibung des Käufders der Holzliste. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer) -### Kontaktrolle (SubmodelElement) - -TODO add description here - -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Kontaktrolle](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Kontaktrolle) - ### Firmenname (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Firmenname des Käufers der Holzliste. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Firmenname](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Firmenname) ### Anrede (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Anrede des Käufers der Holzliste. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Anrede](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Anrede) ### Vorname (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Vorname des Käufers der Holzliste. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Vorname](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Vorname) ### Nachname (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Nachname des Käufers der Holzliste. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Nachname](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Nachname) ### Adresse (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Adresse des Käufers der Holzliste. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Adresse](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Adresse) -### Telefonnummern (SubmodelElement) +### Telefonnummern (SubmodelElementList) -TODO add description here - -Basiert auf externer Definition: - +Liste von Telefonnummern des Käufers der Holzliste. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Telefonnummern](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Telefonnummern) -### Telefonnummern (SubmodelElement) +### Telefonnummer (SubmodelElement) -TODO add description here +Einzelne Telefonnummer des Käufers der Holzliste. -Basiert auf externer Definition: - +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Telefonnummern/Telefonnummer](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Telefonnummern/Telefonnummer) -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Telefonnummern/Telefonnummern{00}](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Telefonnummern/Telefonnummern{00}) +### Emailadressen (SubmodelElementList) -### Emailadressen (SubmodelElement) - -TODO add description here - -Basiert auf externer Definition: - +Liste von E-Mail-Adressen des Käufers der Holzliste. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Emailadressen](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Emailadressen) -### Emailadressen (SubmodelElement) +### Emailadresse (SubmodelElement) -TODO add description here +Einzelne E-Mail-Adresse des Käufers der Holzliste. -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Emailadressen/Emailadressen{00}](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Emailadressen/Emailadressen{00}) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Emailadressen/Emailadresse](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Emailadressen/Emailadresse) ### Umsatzbesteuerung (SubmodelElement) -TODO add description here +Hinterlegter Steuersatz des Käufers der Holzliste, der für die Steuerberechnung bei Verkäufen benötigt wird. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#umsatzbesteuerung--enum-). [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Umsatzbesteuerung](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Umsatzbesteuerung) ### IBAN (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +IBAN des Käufers der Holzliste. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/IBAN](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/IBAN) ### Steuernummer (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Umsatzsteuer-ID des Käufers der Holzliste. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Steuernummer](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Kaeufer/Steuernummer) ### Fuhrmann (SubmodelElementCollection) -TODO add description here - -Basiert auf externer Definition: - +Beschreibung des Fuhrmanns der Holzliste. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann) -### Kontaktrolle (SubmodelElement) - -TODO add description here - -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Kontaktrolle](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Kontaktrolle) - ### Firmenname (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Firmenname des Fuhrmanns der Holzliste. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Firmenname](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Firmenname) ### Anrede (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Anrede des Fuhrmanns der Holzliste. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Anrede](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Anrede) ### Vorname (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Vorname des Fuhrmanns der Holzliste. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Vorname](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Vorname) ### Nachname (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Nachname des Fuhrmanns der Holzliste. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Nachname](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Nachname) ### Adresse (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Adresse des Fuhrmanns der Holzliste. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Adresse](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Adresse) -### Telefonnummern (SubmodelElement) - -TODO add description here +### Telefonnummern (SubmodelElementList) -Basiert auf externer Definition: - +Liste von Telefonnummern des Fuhrmanns der Holzliste. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Telefonnummern](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Telefonnummern) -### Telefonnummern (SubmodelElement) +### Telefonnummer (SubmodelElement) -TODO add description here +Einzelne Telefonnummer des Fuhrmanns der Holzliste. -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Telefonnummern/Telefonnummern{00}](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Telefonnummern/Telefonnummern{00}) - -### Emailadressen (SubmodelElement) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Telefonnummern/Telefonnummer](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Telefonnummern/Telefonnummer) -TODO add description here +### Emailadressen (SubmodelElementList) -Basiert auf externer Definition: - +Liste von E-Mail-Adressen des Fuhrmanns der Holzliste. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Emailadressen](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Emailadressen) -### Emailadressen (SubmodelElement) - -TODO add description here +### Emailadresse (SubmodelElement) -Basiert auf externer Definition: - +Einzelne E-Mail-Adresse des Fuhrmanns der Holzliste. -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Emailadressen/Emailadressen{00}](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Emailadressen/Emailadressen{00}) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Emailadressen/Emailadresse](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Emailadressen/Emailadresse) ### Umsatzbesteuerung (SubmodelElement) -TODO add description here +Hinterlegter Steuersatz des Fuhrmanns der Holzliste, der für die Steuerberechnung bei Verkäufen benötigt wird. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#umsatzbesteuerung--enum-). [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Umsatzbesteuerung](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Umsatzbesteuerung) ### IBAN (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +IBAN des Fuhrmanns der Holzliste. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/IBAN](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/IBAN) ### Steuernummer (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Umsatzsteuer-ID des Fuhrmanns der Holzliste. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Steuernummer](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Fuhrmann/Steuernummer) ### Notiz (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Notizen zur Holzliste, Freitextfeld. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Notiz](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Kopfdaten/Notiz) ### PolterListe (SubmodelElementList) -TODO add description here - -Basiert auf externer Definition: - +Liste von Poltern, welche die Holzliste umfasst. [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe) -### PolterListe (SubmodelElementCollection) +### Polter (SubmodelElementCollection) -TODO add description here +Beschreibung eines Polters in der Holzliste. -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter) ### Standort (SubmodelElementCollection) -TODO add description here +Beschreibung des Standorts des Polters. -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Standort](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Standort) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Standort](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Standort) ### Koordinate (SubmodelElementCollection) -TODO add description here - -Basiert auf externer Definition: - +Lage des Polters in Geo-Koordinaten. -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Standort/Koordinate](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Standort/Koordinate) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Standort/Koordinate](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Standort/Koordinate) ### x (SubmodelElement) -TODO add description here +Erster (gemäß Koordinatensystem-Definition) Koordinatenwert zur Lage des Polters. -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Standort/Koordinate/x](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Standort/Koordinate/x) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Standort/Koordinate/x](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Standort/Koordinate/x) ### y (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Zweiter (gemäß Koordinatensystem-Definition) Koordinatenwert zur Lage des Polters. -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Standort/Koordinate/y](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Standort/Koordinate/y) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Standort/Koordinate/y](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Standort/Koordinate/y) ### alt (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Höhenangabe über N.N. zur Lage des Polters. -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Standort/Koordinate/alt](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Standort/Koordinate/alt) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Standort/Koordinate/alt](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Standort/Koordinate/alt) ### crs (SubmodelElement) -TODO add description here +Verwendetes Koordinatensystem zur Beschreibung der Lage des Polters. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#crs--enum-). -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Standort/Koordinate/crs](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Standort/Koordinate/crs) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Standort/Koordinate/crs](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Standort/Koordinate/crs) ### Notiz (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Notiz zur Beschreibung der Lage des Polters, Freitext. -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Standort/Notiz](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Standort/Notiz) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Standort/Notiz](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Standort/Notiz) ### Polternummer (SubmodelElement) -TODO add description here +Identifier für den Polter, einzigartig innerhalb der Holzliste. -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Polternummer](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Polternummer) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Polternummer](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Polternummer) ### Vermessungsverfahren (SubmodelElement) -TODO add description here +Definition des für den Polter verwendeten Vermessungsverfahrens. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#vermessungsverfahren--enum-). -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Vermessungsverfahren](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Vermessungsverfahren) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Vermessungsverfahren](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Vermessungsverfahren) ### Messergebnis_EinzelstammListe (SubmodelElementCollection) -TODO add description here +Beschreibung eines Polters auf Basis einzelner vermessener Stämme. -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Messergebnis_EinzelstammListe](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Messergebnis_EinzelstammListe) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe) ### Einzelstaemme (SubmodelElementList) -TODO add description here +Liste an einzelnen Stämmen die im Polter gemessen wurden. -Basiert auf externer Definition: - +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme) -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Messergebnis_EinzelstammListe/Einzelstaemme](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Messergebnis_EinzelstammListe/Einzelstaemme) +### Einzelstamm (SubmodelElementCollection) -### Einzelstaemme (SubmodelElementCollection) +Einzelner Stamm, der im Polter gemessen wurde, und seine Eigenschaften. -TODO add description here - -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstaemme{00}](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstaemme{00}) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm) ### Menge (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Volumen des Einzelstamms in X,XXX Fm o. R. (Festmeter ohne Rinde). -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstaemme{00}/Menge](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstaemme{00}/Menge) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Menge](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Menge) ### Stammlaenge (SubmodelElement) -TODO add description here +Länge des Stamms in X,XX m. -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstaemme{00}/Stammlaenge](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstaemme{00}/Stammlaenge) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Stammlaenge](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Stammlaenge) ### Stammnummer (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Numerischer Identifier für einen Stamm in der Holzliste, eindeutig pro Polter. -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstaemme{00}/Stammnummer](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstaemme{00}/Stammnummer) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Stammnummer](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Stammnummer) ### Gueteklasse (SubmodelElement) -TODO add description here +Beschreibt die Güteklasse des einzelnen Stamms im Polter. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#gueteklasse--enum-). -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstaemme{00}/Gueteklasse](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstaemme{00}/Gueteklasse) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Gueteklasse](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Gueteklasse) ### Mittendurchmesser (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Mittendurchmesser des Stamms in X cm. -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstaemme{00}/Mittendurchmesser](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstaemme{00}/Mittendurchmesser) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Mittendurchmesser](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Mittendurchmesser) ### Klammerstammabschnittsnummer (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Numerischer Identifier für den Abschnitt eines Einzelstamms, wird als Zahl X hinter der Stammnummer hinzugefügt (z.B. 1.X). -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstaemme{00}/Klammerstammabschnittsnummer](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstaemme{00}/Klammerstammabschnittsnummer) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Klammerstammabschnittsnummer](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_EinzelstammListe/Einzelstaemme/Einzelstamm/Klammerstammabschnittsnummer) ### Messergebnis_RaummassIndustrieholz (SubmodelElementCollection) -TODO add description here +Beschreibung eines Polters zur Industrieholz-Nutzung in Form von Menge und Stammlänge. -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Messergebnis_RaummassIndustrieholz](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Messergebnis_RaummassIndustrieholz) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_RaummassIndustrieholz](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_RaummassIndustrieholz) ### Menge (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Menge im Industrieholz-Polter in X,XX Fm o. R. (Festmeter ohne Rinde). -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Messergebnis_RaummassIndustrieholz/Menge](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Messergebnis_RaummassIndustrieholz/Menge) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_RaummassIndustrieholz/Menge](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_RaummassIndustrieholz/Menge) ### Stammlaenge (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Stammlänge im Industrieholz-Polter in X,XX Metern. -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Messergebnis_RaummassIndustrieholz/Stammlaenge](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Messergebnis_RaummassIndustrieholz/Stammlaenge) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_RaummassIndustrieholz/Stammlaenge](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_RaummassIndustrieholz/Stammlaenge) ### Stammanzahl (SubmodelElementCollection) -TODO add description here +Menge im Industrieholz-Polter in X,XX Fm o. R. (Festmeter ohne Rinde). -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Messergebnis_RaummassIndustrieholz/Stammanzahl](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Messergebnis_RaummassIndustrieholz/Stammanzahl) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_RaummassIndustrieholz/Stammanzahl](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_RaummassIndustrieholz/Stammanzahl) ### Messergebnis_RaummassEnergieholz (SubmodelElementCollection) -TODO add description here - -Basiert auf externer Definition: - +Beschreibung eines Polters zur Energieholz-Nutzung in Form von Menge und Stammlänge. -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Messergebnis_RaummassEnergieholz](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Messergebnis_RaummassEnergieholz) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_RaummassEnergieholz](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_RaummassEnergieholz) ### Menge (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Menge im Energieholz-Polter in X,XX Fm o. R. (Festmeter ohne Rinde). -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Messergebnis_RaummassEnergieholz/Menge](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Messergebnis_RaummassEnergieholz/Menge) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_RaummassEnergieholz/Menge](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_RaummassEnergieholz/Menge) ### Stammlaenge (SubmodelElement) -TODO add description here +Stammlänge im Energieholz-Polter in X,XX Metern. -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Messergebnis_RaummassEnergieholz/Stammlaenge](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Messergebnis_RaummassEnergieholz/Stammlaenge) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_RaummassEnergieholz/Stammlaenge](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Messergebnis_RaummassEnergieholz/Stammlaenge) ### Polterstatus (SubmodelElement) -TODO add description here +Status des Polters, um Logistikprozess abzubilden (z. B. In Planung, Bereitgestellt, Verladen ...). -Basiert auf externer Definition: - +Wertebereich siehe [hier](#polterstatus--enum-). -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Polterstatus](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Polterstatus) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Polterstatus](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Polterstatus) -### Fotos (SubmodelElement) +### Fotos (SubmodelElementList) -TODO add description here +Fotos des Polters (Liste von URLs). -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Fotos](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Fotos) - -### Fotos (SubmodelElement) - -TODO add description here - -Basiert auf externer Definition: - +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Fotos](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Fotos) -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Fotos/Fotos{00}](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Fotos/Fotos{00}) +### Foto (SubmodelElement) -### Videos (SubmodelElement) +Foto des Polters (URL) -TODO add description here +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Fotos/Foto](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Fotos/Foto) -Basiert auf externer Definition: - +### Videos (SubmodelElementList) -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Videos](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Videos) +Videos des Polters (Liste von URLs) -### Videos (SubmodelElement) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Videos](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Videos) -TODO add description here +### Video (SubmodelElement) -Basiert auf externer Definition: - +Video des Polters (URL). -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Videos/Videos{00}](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/PolterListe{00}/Videos/Videos{00}) +[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Videos/Video](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/PolterListe/Polter/Videos/Video) ### Sortimentstyp (SubmodelElement) -TODO add description here +Beschreibung des Sortiments der Holzliste (Stammholz, Industrieholz, Energieholz). -Basiert auf externer Definition: - +Wertebereich siehe [hier](#sortimentstyp--enum-). [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Sortimentstyp](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Sortimentstyp) ### Sorte (SubmodelElement) -TODO add description here +Beschreibung der Sorte der Holzliste (lang, kurz, Abschnitte ...). -Basiert auf externer Definition: - +Wertebereich siehe [hier](#sorte--enum-). [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Sorte](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Sorte) ### Holzart (SubmodelElement) -TODO add description here +Name der Holzart. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#holzart--enum-). [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Holzart](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Holzart) ### Holzlistenstatus (SubmodelElement) -TODO add description here +Status der Holzliste. -Basiert auf externer Definition: - +Wertebereich siehe [hier](#holzlistenstatus--enum-). [https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Holzlistenstatus](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Holzlistenstatus) -### Preismatrix (SubmodelElementList) - -TODO add description here - -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Preismatrix](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Preismatrix) - -### Preismatrix (SubmodelElementCollection) - -TODO add description here - -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Preismatrix/Preismatrix{00}](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Preismatrix/Preismatrix{00}) - -### Preis (SubmodelElement) - -TODO add description here - -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Preismatrix/Preismatrix{00}/Preis](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Preismatrix/Preismatrix{00}/Preis) - -### MittendurchmesserVon (SubmodelElement) - -TODO add description here - -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Preismatrix/Preismatrix{00}/MittendurchmesserVon](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Preismatrix/Preismatrix{00}/MittendurchmesserVon) - -### MittendurchmesserBis (SubmodelElement) - -TODO add description here - -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Preismatrix/Preismatrix{00}/MittendurchmesserBis](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Preismatrix/Preismatrix{00}/MittendurchmesserBis) - -### Gueteklasse (SubmodelElement) - -TODO add description here - -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Preismatrix/Preismatrix{00}/Gueteklasse](https://admin-shell.io/kwh40/forestml40/Holzliste/0/1/Preismatrix/Preismatrix{00}/Gueteklasse) - ## Holzpreisbereiche (Submodel Template) -TODO add description here +Bestimmung des Holzpreises je nach Stärkeklasse und Güteklasse. [https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche](https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche) ### Holzpreisbereiche (SubmodelElementList) -TODO add description here - -Basiert auf externer Definition: - +Liste der Holzpreise je nach Stärkeklasse und Güteklasse. [https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche](https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche) -### Holzpreisbereiche (SubmodelElementCollection) - -TODO add description here +### Holzpreisbereich (SubmodelElementCollection) -Basiert auf externer Definition: - +Bestimmung des Holzpreises je nach Stärkeklasse und Güteklasse. -[https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereiche{00}](https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereiche{00}) +[https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereich](https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereich) ### Baumart (SubmodelElement) -TODO add description here +Bestimmung der Baumart, die für den Holzpreisbereich gilt -Basiert auf externer Definition: - +Wertebereich siehe [hier](#holzart--enum-). -[https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereiche{00}/Baumart](https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereiche{00}/Baumart) +[https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereich/Baumart](https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereich/Baumart) ### PreisVon (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Bestimmung Minimum-Preis der für den Holzpreisbereich gilt -[https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereiche{00}/PreisVon](https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereiche{00}/PreisVon) +[https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereich/PreisVon](https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereich/PreisVon) ### PreisBis (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Bestimmung Maximum-Preis der für den Holzpreisbereich gilt -[https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereiche{00}/PreisBis](https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereiche{00}/PreisBis) +[https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereich/PreisBis](https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereich/PreisBis) ### Sorte (SubmodelElement) -TODO add description here +Bestimmung der Sorte, die für den Holzpreisbereich gilt -Basiert auf externer Definition: - +Wertebereich siehe [hier](#sorte--enum-). -[https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereiche{00}/Sorte](https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereiche{00}/Sorte) +[https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereich/Sorte](https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereich/Sorte) ### Gueteklasse (SubmodelElement) -TODO add description here +Bestimmung der Güteklasse, die für den Holzpreisbereich gilt -Basiert auf externer Definition: - +Wertebereich siehe [hier](#gueteklasse--enum-). -[https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereiche{00}/Gueteklasse](https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereiche{00}/Gueteklasse) +[https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereich/Gueteklasse](https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereich/Gueteklasse) ### MittendurchmesserVon (SubmodelElement) -TODO add description here +Bestimmung des Minimum Durchmessers der für den Holzpreisbereich gilt -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereiche{00}/MittendurchmesserVon](https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereiche{00}/MittendurchmesserVon) +[https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereich/MittendurchmesserVon](https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereich/MittendurchmesserVon) ### MittendurchmesserBis (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - +Bestimmung des Maximum Durchmessers der für den Holzpreisbereich gilt -[https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereiche{00}/MittendurchmesserBis](https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereiche{00}/MittendurchmesserBis) +[https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereich/MittendurchmesserBis](https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereich/MittendurchmesserBis) ### Holzliste (SubmodelElement) -TODO add description here +Angehängte Holzliste, die für den Holzpreisbereich gilt -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereiche{00}/Holzliste](https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereiche{00}/Holzliste) +[https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereich/Holzliste](https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereich/Holzliste) ### Datum (SubmodelElement) -TODO add description here +Zeitpunkt der Bestimmung des Holzpreisbereichs -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereiche{00}/Datum](https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereiche{00}/Datum) +[https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereich/Datum](https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereich/Datum) ### Quelle (SubmodelElement) -TODO add description here - -Basiert auf externer Definition: - - -[https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereiche{00}/Quelle](https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereiche{00}/Quelle) - +Bestimmung der Herkunft/Quelle der Anfrage des Holzpreisbereichs + +[https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereich/Quelle](https://admin-shell.io/kwh40/forestml40/Holzpreisbereiche/0/1/Holzpreisbereiche/Holzpreisbereich/Quelle) + +# Enumerationen + +## Sortimentstyp (Enum) + +Enumerationstyp zur Definition des Typs des Holzsortiments, basierend auf https://eldatstandard.de/dokumentation/1.0.2/grade (dortige Definitionen aufgetrennt nach Typ (z.B. ‚Stammholz‘) und Sorte (z.B. ‚lang‘) des Sortiments. + + * st - Stammholz + * en - Energieholz + * in - Industrieholz + * so - Sondersortimente + +## Sorte (Enum) + +Enumerationstyp zur Definition der Sorte des Holzsortiments, basierend auf https://eldatstandard.de/dokumentation/1.0.2/grade (dortige Definitionen aufgetrennt nach Typ (z.B. ‚Stammholz‘) und Sorte (z.B. ‚lang‘) des Sortiments. + + * lg - lang + * kz - kurz + * ab - Abschnitte + * hs - Hackschnitzel + +## Holzart (Enum) + +Enumerationstyp zur Definition der verschiedenen Holzarten bzw. Baumarten übernommen von https://eldatstandard.de/dokumentation/1.0.2/species. + + * xy - Keine + * ndh - Nadelholz + * fi - Fichte + * gfi - Gemeine Fichte + * ofi - Omorikafichte + * sfi - Sitkafichte + * swfi - Schwarzfichte + * bfi - Blaufichte Stechfichte + * efi - Engelmannsfichte + * wfi - Weißfichte + * sofi - Sonstige Fichten + * kie - Kiefer + * ki - Gemeine Kiefer + * bki - Bergkiefer + * ski - Schwarzkiefer + * rki - Rumelische Kiefer + * zki - Zirbelkiefer + * wki - Weymouthskiefer + * mki - Murraykiefer + * gki - Gelbkiefer + * soki - Sonstige Kiefer + * ta - Tanne + * wta - Weißtanne + * ata - Amerikanische Edeltanne + * cta - Coloradotanne + * kta - Küstentanne + * nita - Nikkotanne + * nota - Nordmannstanne + * vta - Veitchtanne + * sota - Sonstige Tannen + * dgl - Douglasie + * la - Lärche + * ela - Europäische Lärche + * jla - Japanische Lärche (+Hybrid) + * sla - Sonstige Lärchen + * sonb - Sonstige Nadelbäume + * lb - Lebensbaum + * ht - Hemlockstanne + * mam - Mammutbaum + * eib - Eibe + * sz - Lawsonszypresse + * bu - Buche + * sei - Stieleiche + * tei - Traubeneiche + * rei - Roteiche + * zei - Zerreiche + * suei - Sumpfeiche, + * ei - Eiche + * que - sonstige Eichen + * es - Esche + * ges - Gemeine Esche + * wes - Weißesche + * fra - Sonstige Eschen + * hbu - Hainbuche (Weißbuche) + * ah - Ahorn + * bah - Bergahorn + * sah - Spitzahorn + * fah - Feldahorn + * eah - Eschenblättriger Ahorn + * siah - Silberahorn + * ace - Sonstige Ahorne + * li - Linde + * wli - Winterlinde + * sli - Sommerlinde + * til - Sonstige Linden + * rob - Robinie + * akz - Akazie + * ul - Ulme + * bul - Bergulme + * ful - Feldulme + * flu - Flatterulme + * ulm - Sonstige Ulmen + * rka - Rosskastanie + * eka - Edelkastanie + * ka - Kastanie + * mau - Weißer Maulbeerbaum + * nus - Nussbaum + * wnu - Walnuss + * snu - Schwarznuss (+Hybriden) + * jug - Sonstige Nussbäume + * ste - Stechpalme + * pla - Platane + * apl - Ahornblättrige Platane + * solh - Sonstige Laubbäume mit hoher Lebensdauer + * gbi - Gemeine Birke + * mbi - Moorbirke (+Karpatenbirke) + * bi - Birke + * erl - Erle + * ser - Schwarzerle + * wer - Weißerle Grauerle + * ger - Grünerle + * aln - Sonstige Erlen + * pap - Pappel + * zpa - Aspe Zitterpappel + * spa - Europäische Schwarzpappel + * spah - Schwarzpappel Hypriden + * gpa - Graupappel (+Hybriden) + * wpa - Silberpappel Weißpappel + * bpa - Balsampappel + * bpah - Balsampappel Hybriden + * pop - Sonstige Pappeln + * sor - Sorbusarten + * sso - Sonstige Sorbusarten + * vb - Vogelbeere + * els - Elsbeere + * spe - Speierling + * meb - Echte Mehlbeere + * wei - Weide + * swei - Salweide + * kir - Kirsche + * gtk - Gewöhnliche Traubenkirsche + * vk - Vogelkirsche + * stk - Spätblühende Traubenkirsche + * pru - Sonstige Kirschen + * zwe - Zwetschge + * hic - Hickory + * soln - Sonstige Laubbäume mit niedriger Lebensdauer + * fau - Gemeiner Faulbaum Pulverholz + * wob - Wildobst (unbestimmt) + * wap - Holzapfel Wildapfel + * wbi - Holzbirne Wildbirne + * has - Baumhasel + * got - Gemeiner Götterbaum + * slbh - Sonstiges Hartlaubholz + * lbh - Laubholz + * slbw - Sonstiges Weichlaubholz + * str - Strauch (unbestimmt) + * fita - Mischsortiment Fichte/Tanne + +## Vermessungsverfahren (Enum) + +Enumerationstyp zur Definition der Vermessungsart, d.h. dem Verfahren das zur Vermessung verwendet wurde (gegebenenfalls nicht abrechnungsrelevant), übernommen von https://eldatstandard.de/dokumentation/1.0.2/measuring_medium. + + * mit - Mittenstärkenvermessung + * mis - Mittenstärkenstichprobenverfahren + * arm - Raummaßverfahren allgemein + * srm - Sektionsraummaßverfahren + * krm - Konventionelles Raummaßverfahren + * stf - Stirnflächenverfahren + * zae - Zählung + * stz - Schätzung + * wev - Werkvermessung + * gwm - Gewichtsmaßermittlung + * gwa - Gewichtsmaßermittlung atro + * gwl - Gewichtsmaßermittlung lutro + * stg - Stangenvermessung + * zsv - Zopfstärkenvermessung + * fra - Fremdvermessung + * lfm - Laufmeter + * son - Sonstiges + * hvm - Harvestermaß + * opv - optische Poltervermessung + * wam - Waldmaß + * xy - Keins + +## Gueteklasse (Enum) + +Enumerationstyp zur Definition der Güteklasse (Qualität) des Holzes, übernommen von https://eldatstandard.de/dokumentation/1.0.2/qual_type. + + * o - Ohne Qualität + * in - Normale Qualität + * if - Fehlerhafte Qualität + * ik - Krank + * fk - Qualität fehlerhaft/krank + * nf - Qualität normal/fehlerhaft + * nfk - Qualität normal/fehlerhaft/krank + * b - Qualität B + * bk - Qualität B Rotkern + * c - Qualität C + * d - Qualität D + * oa - Ohne Qualitätsausscheidung + * bc - B/C Mischqualität + * cd - C/D Mischqualität + * bcd - B/C/D Mischqualität + * a - Qualität A + * ak - Qualität A Rotkern + +In Deutschland keine Anwendung finden dabei: + + * a_fu - Furnierholz (ÖNORM L 2021) + * a_is - Schleifholz (ÖNORM L 2021) + * a_if - Faserholz (ÖNORM L 2021) + * a_i2 - Sekunda (ÖNORM L 2021) + * a_id - Industriedünnholz (ÖNORM L 2021) + * a_im - Manipulationsholz (ÖNORM L 2021) + * a_sp - Splitterholz (ÖNORM L 2021) + * a_y - Braunbloche (ÖNORM L 2021) + * a_x - C-Kreuz (noch sägefähiger Ausschuss) (ÖNORM L 2021) + * a_z - Ausschuss (ÖNORM L 2021) + * a_bh - Brennholz (ÖNORM L 2021) + * ch_k - Qualität Käferholz + * ch_ab - Qualität AB + * ch_bc - Qualität BC + * ch_cd - Qualität CD + * ch_abc - Qualität ABC + * ch_r - Qualität Rotholz + * ch_1 - Qualität 1. Klasse + * ch_2 - Qualität 2. Klasse + * ch_bk - Braunkern + * ch_sk - Spritzkern + +## CRS (Enum) + + * EPSG:25832 - ETRS89 / UTM zone 32N + * ... + +Enumerationstyp zur Definition von Codes für Geokoordinatensysteme (Coordinate Reference System, CRS) basierend auf https://spatialreference.org/. + +## Verkaufsstatus (Enum) + +Enumerationstyp zur Definition des Status im Verkaufsprozess. + + * Entwurf + * Veroeffentlicht + * HatPreisvorschlaege + * Verkauft + * Archiviert + +## Auftragsstatus (Enum) + +Enumerationstyp zur Definition des Auftragsstatus, übernommen von https://eldatstandard.de/dokumentation/1.0.2/statusid. + + * 10 - Erstellt + * 20 - Geändert + * 30 - Storniert + * 40 - Gesendet + * 50 - Angenommen + * 60 - Abgelehnt + * 70 - Disponiert + * 80 - Auftragsbeginn + * 90 - Unterbrochen + * 100 - Abgebrochen + * 110 - Fahre ins Revier + * 120 - Lieferschein erstellt + * 130 - Verlasse Revier + * 140 - Am Lieferort angekommen + * 150 - Auftragsende + +## Hieb (Enum) + + * sh - Sammelhieb + * df - Durchforstung + * kl - Kalamität + +Eigendefinition. + +## Bereitstellungsart (Enum) + +Enumerationstyp zur Definition der Bereitstellungsart des Holzes, übernommen von https://eldatstandard.de/dokumentation/1.0.2/delivery_term. + + * uws - Unfrei Waldstraße + * uwe - Unfrei Werk + * uzw - Unfrei Zwischenlager + * uwa - Unfrei Waggon + * usc - Unfrei Schiff + * exw - Frei Stock / Ab Werk incoterm + * fca - Frei Waldstraße / Frei Frachtführer incoterm + * fob - Frei Schiff/Waggon / Frei an Bord incoterm + * dat - Frei Zwischenlager / Geliefert frei Terminal incoterm + * ddp - Frei Werk / Geliefert verzollt incoterm + * cpt - Frachtfrei bis incoterm + * cip - Frachtfrei versichert bis incoterm + * dap - Geliefert benannter Ort incoterm + * fas - Frei längsseits Schiff incoterm + * cfr - Kosten und Fracht incoterm + * cif - Frachtfrei incoterm + +## Abrechnungsmass (Enum) + +Enumerationstyp zur Definition des Abrechnungsmaßes im Sinne des abrechnungsrelevanten Vermessungsverfahrens („Angabe des Vermessungsverfahrens nach dem abgerechnet wird“), übernommen von https://eldatstandard.de/dokumentation/1.0.2/measurement_method. + + * mit - Mittenstärkenvermessung + * mis - Mittenstärkenstichprobenverfahren + * arm - Raummaßverfahren allgemein + * srm - Sektionsraummaßverfahren + * krm - Konventionelles Raummaßverfahren + * stf - Stirnflächenverfahren + * zae - Zählung + * stz - Schätzung + * wev - Werkvermessung + * gwm - Gewichtsmaßermittlung + * gwa - Gewichtsmaßermittlung atro + * gwl - Gewichtsmaßermittlung lutro + * stg - Stangenvermessung + * zsv - Zopfstärkenvermessung + * fra - Fremdvermessung + * lfm - Laufmeter + * son - Sonstiges + * hvm - Harvestermaß + * opv - optische Poltervermessung + * wam - Waldmaß + * xy - Keins + +## Umsatzbesteuerung (Enum) + + * regelbesteuert + * pauschalbesteuert + * sortimentsbezogen + +Eigendefinition. + +## Polterstatus (Enum) + +Beschreibung logistische Aspekte. Für zukünftige Nutzung reserviert. + +## Holzlistenstatus (Enum) + +Beschreibung kaufmännische Aspekte. Für zukünftige Nutzung reserviert. diff --git a/modellierung/holzliste.puml b/modellierung/holzliste.puml index a34bd8fade4ecbfb4c2dcf954d133cf6d4f3fdb3..55da882d5bed032f4dd912ce0481a1dc4624381c 100644 --- a/modellierung/holzliste.puml +++ b/modellierung/holzliste.puml @@ -58,7 +58,6 @@ class Beobachtung <<Submodel>>{ } class ZuFaellendeBaeume <<Submodel>>{ - Name: String [1] Beschreibung: String [1] Umring: SEC.Umring [1] Position: SEC.Standort [0..1] @@ -92,7 +91,10 @@ class Preismatrixeintrag <<SubmodelElementCollection>>{ Preis: Float [1] MittendurchmesserVon: Float [0..1] MittendurchmesserBis: Float [0..1] - Gueteklasse: ENUM.Gueteklasse [0..1] + GueteklasseVon: ENUM.Gueteklasse [0..1] + GueteklasseBis: ENUM.Gueteklasse [0..1] + Sortimentstyp: ENUM.Sortimentstyp [0..1] + Sorte: ENUM.Sorte [0..1] } Verkaufslos *--> "0..*" Preismatrixeintrag @@ -154,7 +156,6 @@ class Holzliste <<Submodel>>{ Holzart: ENUM.Holzart [1] ' https://eldatstandard.de/dokumentation/1.0.2/species Holzlistenstatus: ENUM.Holzlistenstatus[1] - Preismatrix: SEList.SEC.Preismatrixeintrag [0..n] } class Kopfdaten <<SubmodelElementCollection>>{ @@ -174,7 +175,6 @@ class Kopfdaten <<SubmodelElementCollection>>{ class Kontakt <<SubmodelElementCollection>>{ 'https://eldatstandard.de/dokumentation/1.0.2/consumer - Kontaktrolle: ENUM.Kontaktrolle [1] Firmenname: String [0..1] Anrede: String [0..1] Vorname: String [0..1] @@ -195,9 +195,8 @@ class Polter <<SubmodelElementCollection>> { Messergebnis_RaummassIndustrieholz : SEC.RaummassIndustrieholz [0..1] Messergebnis_RaummassEnergieholz : SEC.RaummassEnergieholz [0..1] Polterstatus: ENUM.Polterstatus [1] - Fotos: SEList.URL|Base64 [0..*] + Fotos: SEList.URL [0..*] Videos: SEList.URL [0..*] - 'Foto TBD } class Standort <<SubmodelElementCollection>> { @@ -246,7 +245,6 @@ class RaummassEnergieholz <<SubmodelElementCollection>> { Holzliste *-> Kopfdaten 'Kopfdaten --> Kontakt -Holzliste --> "0..*" Preismatrixeintrag Holzliste *-- "*" Polter Polter *-- "0..1" RaummassIndustrieholz Polter *-- "0..1" RaummassEnergieholz diff --git a/modellierung/holzliste_enums.puml b/modellierung/holzliste_enums.puml index 8f6b6073ba453073a3bdf1271acd2a4bc95a2c0b..002fb6d193d2d9fef9995a6060770ceb8875d4be 100644 --- a/modellierung/holzliste_enums.puml +++ b/modellierung/holzliste_enums.puml @@ -262,17 +262,6 @@ enum Hieb{ } note top #FF0000: TODO Eigendefinition? -enum Kontaktrolle{ - Waldbesitzer - Lieferant - Verkaeufer - Kaeufer - Fuhrmann - UnternehmerHolzernte - UnternehmerHolzrueckung -} -note top: Eigendefinition - enum Bereitstellungsart{ uws - Unfrei Waldstraße uwe - Unfrei Werk