Example #1
0
        public override Container ObjectStructure(List <BIS_GrundObjekt> bisList)
        {
            Container container          = new Container();
            var       containerSofttypes = new List <SoftType>();

            var geografiskaplaceringsreferenser = new List <GeografiskPlaceringsreferensInstances>();
            var anläggningsprodukter            = new List <AnläggningsproduktInstances>();
            var funktionellaanläggningar        = new List <FunktionellAnläggningInstances>();
            var styckevaror = new List <StyckevaraInstances>();

            foreach (BIS_SpårSpärr bisSpårSpärr in bisList)
            {
                var suffix = bisSpårSpärr.ObjektTypNummer + bisSpårSpärr.ObjektNummer + ExtraCounter;

                //Noterings Fix
                bisSpårSpärr.Notering = string.IsNullOrEmpty(bisSpårSpärr.Notering)
          ? "Ingen Notering"
          : bisSpårSpärr.Notering;

                var spårspärr                 = CreateSpårSpärr(bisSpårSpärr, suffix);
                var funktionellspårspärr      = CreateFunktionellSPårSpärr(bisSpårSpärr, suffix);
                var spårrspärrindivid         = CreateSpårspärrindivid(bisSpårSpärr, suffix);
                var spårspärrprodukt          = CreateSpårSpärrProdukt(bisSpårSpärr, suffix);
                var spårspärrklotsindivid     = CreateSpårSpärrKlotIndivid(bisSpårSpärr, suffix);
                var spårspärrklotsprodukt     = CreateSpårSpärrKlotProdukt(bisSpårSpärr, suffix);
                var spårspärrdrivindivid      = CreateSpårSpärrDrivindivid(bisSpårSpärr, suffix);
                var spårspärrdrivprodukt      = CreateSpårspärdrivProdukt(bisSpårSpärr, suffix);
                var elmotorindivid            = CreateElmotorIndivid(bisSpårSpärr, suffix);
                var elmotorprodukt            = CreateElmotorProdukt(bisSpårSpärr, suffix);
                var växelställindivid         = CreateVäxelställindivid(bisSpårSpärr, suffix);
                var växelställprodukt         = Createväxelställprodukt(bisSpårSpärr, suffix);
                var kontrollanordningsindivid = CreateKontrollanordningsindivid(bisSpårSpärr, suffix);
                var kontrollanordningsprodukt = Createkontrollannordningsprodukt(bisSpårSpärr, suffix);
                var staggropsvärmeindivid     = CreateStaggropsvärmeindivid(bisSpårSpärr, suffix);
                var staggropsvärmeprodukt     = CreateStaggropsvärmeprodukt(bisSpårSpärr, suffix);

                //ENTRY INSTANCEs
                var spårspärrEntry = new GeografiskPlaceringsreferensEntrydefaultIn
                {
                    Array          = true,
                    inputSchemaRef = _InputSchemaRef,
                    id             = "Spårspärr" + suffix,
                    data           = spårspärr
                };
                geografiskaplaceringsreferenser.Add(spårspärrEntry);

                var funktionellspårspärrEntry = new FunktionellAnläggningEntrydefaultIn
                {
                    Array          = true,
                    inputSchemaRef = _InputSchemaRef,
                    id             = "FunktionellSpårspärr" + suffix,
                    data           = funktionellspårspärr
                };
                funktionellaanläggningar.Add(funktionellspårspärrEntry);

                var spårspärrproduktEntry = new AnläggningsproduktEntrydefaultIn
                {
                    Array          = true,
                    inputSchemaRef = _InputSchemaRef,
                    id             = "Spårspärrprodukt" + suffix,
                    data           = spårspärrprodukt
                };
                anläggningsprodukter.Add(spårspärrproduktEntry);

                var spårspärrklotsproduktEntry = new AnläggningsproduktEntrydefaultIn
                {
                    Array          = true,
                    inputSchemaRef = _InputSchemaRef,
                    id             = "SpårspärrklotsProdukt" + suffix,
                    data           = spårspärrklotsprodukt
                };
                anläggningsprodukter.Add(spårspärrklotsproduktEntry);

                var spårspärrdrivproduktEntry = new AnläggningsproduktEntrydefaultIn
                {
                    Array          = true,
                    inputSchemaRef = _InputSchemaRef,
                    id             = "SpårspärrdrivProdukt" + suffix,
                    data           = spårspärrdrivprodukt
                };
                anläggningsprodukter.Add(spårspärrdrivproduktEntry);

                var elmotorproduktEntry = new AnläggningsproduktEntrydefaultIn
                {
                    Array          = true,
                    inputSchemaRef = _InputSchemaRef,
                    id             = "ElmotorProdukt" + suffix,
                    data           = elmotorprodukt
                };
                anläggningsprodukter.Add(elmotorproduktEntry);

                var växelställproduktEntry = new AnläggningsproduktEntrydefaultIn
                {
                    Array          = true,
                    inputSchemaRef = _InputSchemaRef,
                    id             = "VäxelställProdukt" + suffix,
                    data           = växelställprodukt
                };
                anläggningsprodukter.Add(växelställproduktEntry);

                var kontrollanordningsproduktEntry = new AnläggningsproduktEntrydefaultIn
                {
                    Array          = true,
                    inputSchemaRef = _InputSchemaRef,
                    id             = "KontrollanordningsProdukt" + suffix,
                    data           = kontrollanordningsprodukt
                };
                anläggningsprodukter.Add(kontrollanordningsproduktEntry);

                var staggropsvärmeproduktEntry = new AnläggningsproduktEntrydefaultIn
                {
                    Array          = true,
                    inputSchemaRef = _InputSchemaRef,
                    id             = "StaggropsvärmeProdukt" + suffix,
                    data           = staggropsvärmeprodukt
                };
                anläggningsprodukter.Add(staggropsvärmeproduktEntry);

                var spårspärrklotsindividEntry = new StyckevaraEntrydefaultIn
                {
                    Array          = true,
                    inputSchemaRef = _InputSchemaRef,
                    id             = "SpårspärrklotsIndivid" + suffix,
                    data           = spårspärrklotsindivid
                };
                styckevaror.Add(spårspärrklotsindividEntry);


                var spårrspärrindividEntry = new StyckevaraEntrydefaultIn
                {
                    Array          = true,
                    inputSchemaRef = _InputSchemaRef,
                    id             = "SpårrspärrIndivid" + suffix,
                    data           = spårrspärrindivid
                };
                styckevaror.Add(spårrspärrindividEntry);

                var spårspärrdrivindividEntry = new StyckevaraEntrydefaultIn
                {
                    Array          = true,
                    inputSchemaRef = _InputSchemaRef,
                    id             = "SpårspärrdrivIndivid" + suffix,
                    data           = spårspärrdrivindivid
                };
                styckevaror.Add(spårspärrdrivindividEntry);

                var elmotorindividEntry = new StyckevaraEntrydefaultIn
                {
                    Array          = true,
                    inputSchemaRef = _InputSchemaRef,
                    id             = "ElmotorIndivid" + suffix,
                    data           = elmotorindivid
                };
                styckevaror.Add(elmotorindividEntry);

                var växelställindividEntry = new StyckevaraEntrydefaultIn
                {
                    Array          = true,
                    inputSchemaRef = _InputSchemaRef,
                    id             = "VäxelställIndivid" + suffix,
                    data           = växelställindivid
                };
                styckevaror.Add(växelställindividEntry);

                var kontrollanordningsindividEntry = new StyckevaraEntrydefaultIn
                {
                    Array          = true,
                    inputSchemaRef = _InputSchemaRef,
                    id             = "KontrollanordningsIndivid" + suffix,
                    data           = kontrollanordningsindivid
                };
                styckevaror.Add(kontrollanordningsindividEntry);

                var staggropsvärmeindividEntry = new StyckevaraEntrydefaultIn
                {
                    Array          = true,
                    inputSchemaRef = _InputSchemaRef,
                    id             = "StaggropsvärmeIndivid" + suffix,
                    data           = staggropsvärmeindivid
                };
                styckevaror.Add(staggropsvärmeindividEntry);

                ExtraCounter++;
            }

            //SOFTTYPES
            var anläggningsproduktsofttype = new SoftType_Anläggningsprodukt
            {
                Array     = true,
                id        = "Anläggningsprodukt",
                instances = anläggningsprodukter.ToArray()
            };

            var funktionellanläggningsofttype = new SoftType_FunktionellAnläggning
            {
                Array     = true,
                id        = "FunktionellAnläggning",
                instances = funktionellaanläggningar.ToArray()
            };

            var styckevarasofttype = new SoftType_Styckevara
            {
                Array     = true,
                id        = "Styckevara",
                instances = styckevaror.ToArray()
            };

            var geografiskplaceringsreferenssofttype = new SoftType_GeografiskPlaceringsreferens
            {
                Array     = true,
                id        = "GeografiskPlaceringsreferens",
                instances = geografiskaplaceringsreferenser.ToArray()
            };

            containerSofttypes.Add(anläggningsproduktsofttype);
            containerSofttypes.Add(funktionellanläggningsofttype);
            containerSofttypes.Add(styckevarasofttype);
            containerSofttypes.Add(geografiskplaceringsreferenssofttype);
            containerSofttypes.AddRange(CreateSupplementarySoftypes());
            containerSofttypes.AddRange(CreateFTKeyReferenceSoftTypes());

            container.softTypes = containerSofttypes.ToArray();

            return(container);
        }
Example #2
0
        public override Container ObjectStructure(List <BIS_GrundObjekt> bisList)
        {
            Container container          = new Container();
            var       containerSofttypes = new List <SoftType>();

            var anläggningsprodukter = new List <AnläggningsproduktInstances>();
            var specifikationer      = new List <AnläggningsspecifikationInstances>();
            var styckevaror          = new List <StyckevaraInstances>();

            foreach (BIS_TågOchLokvärmeanläggning bisTåg in bisList)
            {
                var suffix = bisTåg.ObjektTypNummer + bisTåg.ObjektNummer + ExtraCounter;

                bisTåg.Notering = NoteringsFix(bisTåg.Notering);

                var tågvärmepostspecifikation   = CreateTågVärmePostSpecifikation(bisTåg, suffix);
                var tågvärmepostprodukt         = CreateTågvärmepostprodukt(bisTåg, suffix);
                var tågvärmepostindivid         = CreateTågvärmepostindivid(bisTåg, suffix);
                var transformatorbrytareprodukt = CreateTransformatorbrytareprodukt(bisTåg, suffix);

                var tågvärmepostspecifikationEntry = new AnläggningsspecifikationEntrydefaultIn()
                {
                    Array          = true,
                    inputSchemaRef = _InputSchemaRef,
                    id             = "Tågvärmepostspecifikation" + suffix,
                    data           = tågvärmepostspecifikation
                };
                specifikationer.Add(tågvärmepostspecifikationEntry);

                var tågvärmepostproduktEntry = new AnläggningsproduktEntrydefaultIn
                {
                    Array          = true,
                    inputSchemaRef = _InputSchemaRef,
                    id             = "Tågvärmepostprodukt" + suffix,
                    data           = tågvärmepostprodukt
                };
                anläggningsprodukter.Add(tågvärmepostproduktEntry);

                var transformatorbrytareproduktEntry = new AnläggningsproduktEntrydefaultIn
                {
                    Array          = true,
                    inputSchemaRef = _InputSchemaRef,
                    id             = "Transformatorbrytareprodukt" + suffix,
                    data           = transformatorbrytareprodukt
                };
                anläggningsprodukter.Add(transformatorbrytareproduktEntry);

                var tågvärmepostindividEntry = new StyckevaraEntrydefaultIn
                {
                    Array          = true,
                    inputSchemaRef = _InputSchemaRef,
                    id             = "Tågvärmepostindivid" + suffix,
                    data           = tågvärmepostindivid
                };
                styckevaror.Add(tågvärmepostindividEntry);

                ExtraCounter++;
            }

            var anläggningsproduktsofttype = new SoftType_Anläggningsprodukt
            {
                Array     = true,
                id        = "Anläggningsprodukt",
                instances = anläggningsprodukter.ToArray()
            };

            var styckevarasofttype = new SoftType_Styckevara()
            {
                Array     = true,
                id        = "Styckevara",
                instances = styckevaror.ToArray()
            };
            var specifikationsofttype = new SoftType_Anläggningsspecifikation()
            {
                Array     = true,
                id        = "Specifikation",
                instances = specifikationer.ToArray()
            };

            containerSofttypes.Add(anläggningsproduktsofttype);
            containerSofttypes.Add(specifikationsofttype);
            containerSofttypes.Add(styckevarasofttype);
            containerSofttypes.AddRange(CreateSupplementarySoftypes());
            containerSofttypes.AddRange(CreateFTKeyReferenceSoftTypes());

            container.softTypes = containerSofttypes.ToArray();

            return(container);
        }
        public override Container ObjectStructure(List <BIS_GrundObjekt> bisList)
        {
            Container container          = new Container();
            var       containerSofttypes = new List <SoftType>();

            var anläggningsprodukter = new List <AnläggningsproduktInstances>();
            var styckevaror          = new List <StyckevaraInstances>();

            foreach (BIS_Kanalisation bisKanalisation in bisList)
            {
                var suffix = bisKanalisation.ObjektTypNummer + bisKanalisation.ObjektNummer + ExtraCounter;

                //Noterings fix
                bisKanalisation.Notering = string.IsNullOrEmpty(bisKanalisation.Notering)
          ? "Ingen Notering"
          : bisKanalisation.Notering;

                var kanalisationsprodukt = CreateKanalisationProdukt(bisKanalisation, suffix);
                var kanalisationindivid  = CreateKanalisationIndivid(bisKanalisation, suffix);

                var kanalisationproduktEntry = new AnläggningsproduktEntrydefaultIn
                {
                    Array          = true,
                    inputSchemaRef = _InputSchemaRef,
                    id             = "kanalisationsprodukt" + suffix,
                    data           = kanalisationsprodukt
                };
                anläggningsprodukter.Add(kanalisationproduktEntry);

                var kanalisationindividEntry = new StyckevaraEntrydefaultIn
                {
                    Array          = true,
                    inputSchemaRef = _InputSchemaRef,
                    id             = "kanalisationindivid" + suffix,
                    data           = kanalisationindivid
                };
                styckevaror.Add(kanalisationindividEntry);

                ExtraCounter++;
            }

            var anläggningsproduktsofttype = new SoftType_Anläggningsprodukt
            {
                Array     = true,
                id        = "Anläggningsprodukt",
                instances = anläggningsprodukter.ToArray()
            };

            var styckevarasofttype = new SoftType_Styckevara
            {
                Array     = true,
                id        = "Styckevara",
                instances = styckevaror.ToArray()
            };

            containerSofttypes.Add(anläggningsproduktsofttype);
            containerSofttypes.Add(styckevarasofttype);
            containerSofttypes.AddRange(CreateSupplementarySoftypes());
            containerSofttypes.AddRange(CreateFTKeyReferenceSoftTypes());

            container.softTypes = containerSofttypes.ToArray();

            return(container);
        }
Example #4
0
        public override Container ObjectStructure(List <BIS_GrundObjekt> bisList)
        {
            Container container          = new Container();
            var       containerSofttypes = new List <SoftType>();

            var anläggningsprodukter     = new List <AnläggningsproduktInstances>();
            var funktionellaanläggningar = new List <FunktionellAnläggningInstances>();
            var styckevaror = new List <StyckevaraInstances>();
            var GprLista    = new List <GeografiskPlaceringsreferensInstances>();

            foreach (BIS_Trumma bisTrumma in bisList)
            {
                var suffix = bisTrumma.ObjektTypNummer + bisTrumma.ObjektNummer + ExtraCounter;

                bisTrumma.Notering = NoteringsFix(bisTrumma.Notering);

                var trummaprodukt  = CreateTrummaProdukt(bisTrumma, suffix);
                var trummafunktion = CreateTrummaFunktion(bisTrumma, suffix);
                var trummaindivid  = CreateTrummaIndivid(bisTrumma, suffix);

                var trumma = new Trumma
                {
                    name          = "Trumma",
                    notering      = bisTrumma.Notering,
                    versionId     = _VersionId,
                    företeelsetyp = new ClassificationReference_GeografiskPlaceringsreferens_företeelsetyp
                    {
                        startSpecified = false,
                        endSpecified   = false,
                        @class         = new FTGeografiskPlaceringsreferensReference
                        {
                            softType    = "FTGeografiskPlaceringsreferens",
                            instanceRef = "Trumma"
                        }
                    }
                };
                trumma.id = trumma.name + suffix;

                var trummafunktionEntry = new FunktionellAnläggningEntrydefaultIn
                {
                    Array          = true,
                    inputSchemaRef = _InputSchemaRef,
                    id             = "trummafunktionEntry" + suffix,
                    data           = trummafunktion
                };
                funktionellaanläggningar.Add(trummafunktionEntry);

                var trummaproduktEntry = new AnläggningsproduktEntrydefaultIn
                {
                    Array          = true,
                    inputSchemaRef = _InputSchemaRef,
                    id             = "trummaproduktEntry" + suffix,
                    data           = trummaprodukt
                };
                anläggningsprodukter.Add(trummaproduktEntry);

                var trummaindividEntry = new StyckevaraEntrydefaultIn
                {
                    Array          = true,
                    inputSchemaRef = _InputSchemaRef,
                    id             = "trummaindividEntry" + suffix,
                    data           = trummaindivid
                };
                styckevaror.Add(trummaindividEntry);

                ExtraCounter++;
            }
            //SOFTTYPES
            var geografiskPlaceringsReferensSoftType = new SoftType_GeografiskPlaceringsreferens
            {
                Array     = true,
                id        = "GeografiskPlaceringsreferens",
                instances = GprLista.ToArray()
            };

            var anläggningsproduktsofttype = new SoftType_Anläggningsprodukt
            {
                Array     = true,
                id        = "Anläggningsprodukt",
                instances = anläggningsprodukter.ToArray()
            };

            var funktionellanläggningsofttype = new SoftType_FunktionellAnläggning
            {
                Array     = true,
                id        = "FunktionellAnläggning",
                instances = funktionellaanläggningar.ToArray()
            };

            var styckevarasofttype = new SoftType_Styckevara
            {
                Array     = true,
                id        = "Styckevara",
                instances = styckevaror.ToArray()
            };

            containerSofttypes.Add(geografiskPlaceringsReferensSoftType);
            containerSofttypes.Add(anläggningsproduktsofttype);
            containerSofttypes.Add(funktionellanläggningsofttype);
            containerSofttypes.Add(styckevarasofttype);
            containerSofttypes.AddRange(CreateSupplementarySoftypes());
            containerSofttypes.AddRange(CreateFTKeyReferenceSoftTypes());

            container.softTypes = containerSofttypes.ToArray();
            return(container);
        }
        public override Container ObjectStructure(List <BIS_GrundObjekt> bisList)
        {
            Container container          = new Container();
            var       containerSofttypes = new List <SoftType>();

            var geografiskaplaceringsreferenser = new List <GeografiskPlaceringsreferensInstances>();
            var skarvFunktionellaAnläggningar   = new List <FunktionellAnläggningInstances>();
            var skarvAnläggningsProdukter       = new List <AnläggningsproduktInstances>();
            var skarvStyckevara = new List <StyckevaraInstances>();


            foreach (BIS_Skarv bisSkarv in bisList)
            {
                var suffix = bisSkarv.ObjektTypNummer + bisSkarv.ObjektNummer + ExtraCounter;

                //Noterings Fix
                bisSkarv.Notering = string.IsNullOrEmpty(bisSkarv.Notering)
          ? "Ingen Notering"
          : bisSkarv.Notering;

                var isolerskarvsprodukt   = CreateIsolerSkarvsProdukt(bisSkarv, suffix);
                var isolerskarvsindivid   = CreateIsolerSkarvsIndivid(bisSkarv, suffix);
                var partikelmagnetprodukt = CreatePartikelMagnetProdukt(bisSkarv, suffix);
                var partikelmagnetindivid = CreatePartikelMagnetIndivid(bisSkarv, suffix);
                var isolerskarv           = CreateIsolerskarv(bisSkarv, suffix);

                //------------------------------------------------------------------------------Entry
                var isolerskarvEntry = new GeografiskPlaceringsreferensEntrydefaultIn
                {
                    Array          = true,
                    inputSchemaRef = _InputSchemaRef,
                    id             = "Isolerskarv" + suffix,
                    data           = isolerskarv
                };
                geografiskaplaceringsreferenser.Add(isolerskarvEntry);

                var skarvAnläggningsProdukt = new AnläggningsproduktEntrydefaultIn
                {
                    Array          = true,
                    inputSchemaRef = _InputSchemaRef,
                    id             = "skarvAnläggningsProdukt" + suffix,
                    data           = isolerskarvsprodukt
                };
                skarvAnläggningsProdukter.Add(skarvAnläggningsProdukt);

                var isolerskarvsIndivid = new StyckevaraEntrydefaultIn
                {
                    Array          = true,
                    inputSchemaRef = _InputSchemaRef,
                    id             = "IsolerskarvsIndivid" + suffix,
                    data           = isolerskarvsindivid
                };
                skarvStyckevara.Add(isolerskarvsIndivid);

                var partikelmagnetProduktEntry = new AnläggningsproduktEntrydefaultIn
                {
                    Array          = true,
                    inputSchemaRef = _InputSchemaRef,
                    id             = "Partikelmagnetprodukt" + suffix,
                    data           = partikelmagnetprodukt
                };
                skarvAnläggningsProdukter.Add(partikelmagnetProduktEntry);

                var styckevara = new StyckevaraEntrydefaultIn
                {
                    Array          = true,
                    inputSchemaRef = _InputSchemaRef,
                    id             = "Partikelmagnetindivid" + suffix,
                    data           = partikelmagnetindivid
                };
                skarvStyckevara.Add(styckevara);

                ExtraCounter++;
            }

            //------------------------------------------------------------------------------SoftTypes
            var anläggningsProduktSoftType = new SoftType_Anläggningsprodukt
            {
                Array     = true,
                id        = "Anläggningsprodukt",
                instances = skarvAnläggningsProdukter.ToArray()
            };
            var styckSoftType = new SoftType_Styckevara
            {
                Array     = true,
                id        = "Styckevara",
                instances = skarvStyckevara.ToArray()
            };
            var funktionellSoftType = new SoftType_FunktionellAnläggning
            {
                Array     = true,
                id        = "Anläggningsfunktion",
                instances = skarvFunktionellaAnläggningar.ToArray()
            };
            var geografiskplaceringsreferenssofttype = new SoftType_GeografiskPlaceringsreferens
            {
                Array     = true,
                id        = "GeografiskPlaceringsreferens",
                instances = geografiskaplaceringsreferenser.ToArray()
            };

            containerSofttypes.Add(anläggningsProduktSoftType);
            containerSofttypes.Add(styckSoftType);
            //Använder inte funktionellAnläggning för tillfället
            containerSofttypes.Add(funktionellSoftType);
            containerSofttypes.Add(geografiskplaceringsreferenssofttype);
            containerSofttypes.AddRange(CreateSupplementarySoftypes());
            containerSofttypes.AddRange(CreateFTKeyReferenceSoftTypes());

            container.softTypes = containerSofttypes.ToArray();
            return(container);
        }
        public override Container ObjectStructure(List <BIS_GrundObjekt> bisList)
        {
            var       formattedBisList = bisList;
            Container container        = new Container();
            //All softypes must be aggregated before they are added to the container
            var containerSoftTypes = new List <SoftType>();

            //Sort this mess out at some point
            var geoPlaceringar               = new List <GeografiskPlaceringsreferensInstances>();
            var plattformsProdukter          = new List <AnläggningsproduktInstances>();
            var plattformsFunktioner         = new List <FunktionellAnläggningInstances>();
            var plattformVäderskydd          = new List <AnläggningsproduktInstances>();
            var plattformStyckevaror         = new List <StyckevaraInstances>();
            var plattformSkylt               = new List <AnläggningsproduktInstances>();
            var plattformSkyltIndivid        = new List <StyckevaraInstances>();
            var plattformKanalisation        = new List <AnläggningsproduktInstances>();
            var plattformKanalisationIndivid = new List <StyckevaraInstances>();
            var plattformIndivider           = new List <StyckevaraInstances>();

            //Does all the real mapping against ANDA resources
            foreach (BIS_Plattform bisPlattform in formattedBisList)
            {
                var suffix = bisPlattform.ObjektTypNummer + bisPlattform.ObjektNummer + ExtraCounter;

                //Noterings fix
                bisPlattform.Notering = string.IsNullOrEmpty(bisPlattform.Notering)
          ? "Ingen Notering"
          : bisPlattform.Notering;

                var plattform = new Plattform
                {
                    name          = "Plattform",
                    notering      = bisPlattform.Notering,
                    versionId     = _VersionId,
                    företeelsetyp = new ClassificationReference_GeografiskPlaceringsreferens_företeelsetyp
                    {
                        startSpecified = false,
                        endSpecified   = false,
                        @class         = new FTGeografiskPlaceringsreferensReference
                        {
                            softType    = "FTGeografiskPlaceringsreferens",
                            instanceRef = "Plattform"
                        }
                    }
                };
                plattform.id = plattform.name + suffix;
                var plattformGPR = new GeografiskPlaceringsreferensEntrydefaultIn
                {
                    Array          = true,
                    id             = "Plattform" + suffix,
                    inputSchemaRef = _InputSchemaRef,
                    data           = plattform
                };
                geoPlaceringar.Add(plattformGPR);

                var plattformsProduktInstans = new AnläggningsproduktEntrydefaultIn
                {
                    Array          = true,
                    inputSchemaRef = _InputSchemaRef,
                    id             = "PlattformProduktAnläggningsprodukt" + suffix
                };

                var plattformprodukt = new Plattformprodukt
                {
                    notering  = bisPlattform.Notering,
                    name      = "Plattformprodukt",
                    versionId = _VersionId,
                    stringSet = new PlattformproduktStringSet
                    {
                        PlattformBeläggning    = SkapaPlattformBeläggning(bisPlattform, new Plattformprodukt_PlattformBeläggning()),
                        plattformskantMaterial = SkapaPlattformKantMaterial(bisPlattform, new Plattformprodukt_plattformskantMaterial()),
                        nominellHöjd           = new Plattformprodukt_nominellHöjd
                        {
                            generalProperty = new nominellHöjd
                            {
                                instanceRef = "nominellHöjd",
                                softType    = _SoftTypeProperty
                            },
                            value = bisPlattform.Höjd,
                            JSonMapToPropertyName = _JsonMapToValue
                        }
                    },
                    numericSet = new PlattformproduktNumericSet
                    {
                        verkligHöjd = SkapaVerkligHöjd(bisPlattform, new Plattformprodukt_verkligHöjd()),
                        längd       = new Plattformprodukt_längd
                        {
                            generalProperty = new längd
                            {
                                instanceRef = "längd",
                                softType    = _SoftTypeProperty
                            },
                            value = bisPlattform.Längd,
                            JSonMapToPropertyName = _JsonMapToValue,
                            Unit = new m
                            {
                                instanceRef = "m",
                                softType    = "Unit"
                            }
                        },
                        bredd = new Plattformprodukt_bredd
                        {
                            generalProperty = new bredd
                            {
                                instanceRef = "bredd",
                                softType    = _SoftTypeProperty
                            },
                            value = bisPlattform.Bredd,
                            JSonMapToPropertyName = _JsonMapToValue,
                            Unit = new m
                            {
                                instanceRef = "m",
                                softType    = "Unit"
                            }
                        }
                    },
                    företeelsetyp = new ClassificationReference_Anläggningsprodukt_företeelsetyp
                    {
                        startSpecified = false,
                        endSpecified   = false,
                        @class         = new FTAnläggningsproduktReference
                        {
                            softType    = "FTAnläggningsprodukt",
                            instanceRef = "Plattformprodukt"
                        }
                    }
                };
                plattformprodukt.id           = plattformprodukt.name + suffix;
                plattformsProduktInstans.data = plattformprodukt;
                plattformsProdukter.Add(plattformsProduktInstans);

                var plattformsFunktionInstans = new FunktionellAnläggningEntrydefaultIn
                {
                    Array          = true,
                    inputSchemaRef = _InputSchemaRef,
                    id             = "PlattformFunktionFunktionell" + suffix
                };

                var plattformFunktion = new Plattformfunktion
                {
                    notering  = bisPlattform.Notering,
                    name      = "PlattformFunktion",
                    versionId = _VersionId,
                    stringSet = new PlattformfunktionStringSet
                    {
                        harFotsteg = SkapaPlattformFotsteg(bisPlattform, new Plattformfunktion_harFotsteg()),
                        harPlattformsutrustning = SkapaPlattformUtrustning(bisPlattform, new Plattformfunktion_harPlattformsutrustning()),
                        harSkyddsräcken         = SkapaPlattformSkyddsräcken(bisPlattform, new Plattformfunktion_harSkyddsräcken())
                    },
                    numericSet    = new PlattformfunktionNumericSet(),
                    företeelsetyp = new ClassificationReference_FunktionellAnläggning_företeelsetyp
                    {
                        @class = new FTFunktionellAnläggningReference
                        {
                            softType    = "FTFunktionellAnläggning",
                            instanceRef = "Plattformfunktion"
                        }
                    }
                };
                plattformFunktion = SkyddzonOchLedstråk(bisPlattform, plattformFunktion, new Plattformfunktion_harLedstråk(), new Plattformfunktion_harSkyddszon());

                plattformFunktion.id           = plattformFunktion.name + suffix;
                plattformsFunktionInstans.data = plattformFunktion;
                plattformsFunktioner.Add(plattformsFunktionInstans);

                //Skydd eller Tak
                var plattformAnläggningsProduktInstans = new AnläggningsproduktEntrydefaultIn
                {
                    Array          = true,
                    id             = "PlattformVäderskyddOchSkärmtakAnläggningsprodukt" + suffix,
                    inputSchemaRef = _InputSchemaRef
                };

                var plattformStyckevaraInstans = new StyckevaraEntrydefaultIn
                {
                    Array          = true,
                    id             = "PlattformVäderskyddOchSkärmtakStyckevara" + suffix,
                    inputSchemaRef = _InputSchemaRef
                };

                var väderskyddProdukt = new Väderskyddprodukt
                {
                    name          = "Väderskyddprodukt",
                    notering      = bisPlattform.Notering,
                    versionId     = _VersionId,
                    företeelsetyp = new ClassificationReference_Anläggningsprodukt_företeelsetyp
                    {
                        startSpecified = false,
                        endSpecified   = false,
                        @class         = new FTAnläggningsproduktReference
                        {
                            softType    = "FTAnläggningsprodukt",
                            instanceRef = "Väderskyddprodukt"
                        }
                    }
                };
                väderskyddProdukt.id = väderskyddProdukt.name + suffix;

                var väderskyddIndivid = new Väderskyddindivid
                {
                    startSpecified = false,
                    endSpecified   = false,
                    name           = "Väderskyddindivid",
                    notering       = bisPlattform.Notering,
                    versionId      = _VersionId,
                    företeelsetyp  = new ClassificationReference_Styckevara_företeelsetyp
                    {
                        startSpecified = false,
                        endSpecified   = false,
                        @class         = new FTStyckevaraReference
                        {
                            softType    = "FTStyckevara",
                            instanceRef = "Väderskyddindivid"
                        }
                    }
                };
                väderskyddIndivid.id = väderskyddIndivid.name + suffix;

                var skärmtakProdukt = new Skärmtakprodukt
                {
                    name          = "Skärmtakprodukt",
                    notering      = bisPlattform.Notering,
                    versionId     = _VersionId,
                    företeelsetyp = new ClassificationReference_Anläggningsprodukt_företeelsetyp
                    {
                        startSpecified = false,
                        endSpecified   = false,
                        @class         = new FTAnläggningsproduktReference
                        {
                            softType    = "FTAnläggningsprodukt",
                            instanceRef = "Skärmtakprodukt"
                        }
                    }
                };
                skärmtakProdukt.id = skärmtakProdukt.name + suffix;

                var skärmtakIndivid = new Skärmtakindivid
                {
                    startSpecified = false,
                    endSpecified   = false,
                    name           = "Skärmtakindivid",
                    notering       = bisPlattform.Notering,
                    versionId      = _VersionId,
                    företeelsetyp  = new ClassificationReference_Styckevara_företeelsetyp
                    {
                        startSpecified = false,
                        endSpecified   = false,
                        @class         = new FTStyckevaraReference
                        {
                            softType    = "FTStyckevara",
                            instanceRef = "Skärmtakindivid"
                        }
                    }
                };
                skärmtakIndivid.id = skärmtakIndivid.name + suffix;

                switch (bisPlattform.Väderskydd)
                {
                case "Skydd":
                    plattformAnläggningsProduktInstans.data = väderskyddProdukt;
                    plattformStyckevaraInstans.data         = väderskyddIndivid;
                    break;

                case "Tak":
                    plattformAnläggningsProduktInstans.data = skärmtakProdukt;
                    plattformStyckevaraInstans.data         = skärmtakIndivid;
                    break;
                }
                plattformVäderskydd.Add(plattformAnläggningsProduktInstans);
                plattformStyckevaror.Add(plattformStyckevaraInstans);
                //End Väderskydd

                //Skylt
                var skyltProdukt = new Fast_skyltprodukt
                {
                    name          = "Fast_skyltprodukt",
                    notering      = bisPlattform.Notering,
                    versionId     = _VersionId,
                    företeelsetyp = new ClassificationReference_Anläggningsprodukt_företeelsetyp
                    {
                        startSpecified = false,
                        endSpecified   = false,
                        @class         = new FTAnläggningsproduktReference
                        {
                            softType    = "FTAnläggningsprodukt",
                            instanceRef = "Fast_skyltprodukt"
                        }
                    }
                };
                skyltProdukt.id = skyltProdukt.name + suffix;

                var skyltIndivid = new Fast_skyltindivid
                {
                    startSpecified = false,
                    endSpecified   = false,
                    name           = "Fast_skyltindivid",
                    notering       = bisPlattform.Notering,
                    versionId      = _VersionId,
                    företeelsetyp  = new ClassificationReference_Styckevara_företeelsetyp
                    {
                        startSpecified = false,
                        endSpecified   = false,
                        @class         = new FTStyckevaraReference
                        {
                            softType    = "FTStyckevara",
                            instanceRef = "Fast_skyltindivid"
                        }
                    }
                };
                skyltIndivid.id = skyltIndivid.name + suffix;

                var plattformSkyltAnläggningsProdukt = new AnläggningsproduktEntrydefaultIn
                {
                    Array          = true,
                    id             = "PlattformSkyltAnläggningsprodukt" + suffix,
                    inputSchemaRef = _InputSchemaRef,
                    data           = skyltProdukt
                };
                var plattformSkyltStyckevara = new StyckevaraEntrydefaultIn
                {
                    Array          = true,
                    id             = "PlattformSkyltStyckevara" + suffix,
                    inputSchemaRef = _InputSchemaRef,
                    data           = skyltIndivid
                };
                if (bisPlattform.Skylt != "?")
                {
                    plattformSkylt.Add(plattformSkyltAnläggningsProdukt);
                    plattformSkyltIndivid.Add(plattformSkyltStyckevara);
                }

                //Kanalisation (BrunOLock)
                var kanalisationsProdukt = new Kanalisationprodukt
                {
                    name          = "Kanalisationprodukt",
                    notering      = bisPlattform.Notering,
                    versionId     = _VersionId,
                    stringSet     = new KanalisationproduktStringSet(),
                    numericSet    = new KanalisationproduktNumericSet(),
                    företeelsetyp = new ClassificationReference_Anläggningsprodukt_företeelsetyp
                    {
                        startSpecified = false,
                        endSpecified   = false,
                        @class         = new FTAnläggningsproduktReference
                        {
                            softType    = "FTAnläggningsprodukt",
                            instanceRef = "Kanalisationprodukt"
                        }
                    }
                };
                kanalisationsProdukt.id = kanalisationsProdukt.name + suffix;
                var kanalisationsIndivid = new Kanalisationindivid
                {
                    name           = "Kanalisationindivid",
                    notering       = bisPlattform.Notering,
                    versionId      = _VersionId,
                    startSpecified = false,
                    endSpecified   = false,
                    företeelsetyp  = new ClassificationReference_Styckevara_företeelsetyp
                    {
                        startSpecified = false,
                        endSpecified   = false,
                        @class         = new FTStyckevaraReference
                        {
                            softType    = "FTStyckevara",
                            instanceRef = "Kanalisationindivid"
                        }
                    }
                };
                kanalisationsIndivid.id = kanalisationsIndivid.name + suffix;

                var plattformKanalisationProdukt = new AnläggningsproduktEntrydefaultIn
                {
                    Array          = true,
                    id             = "PlattformKanalisationAnläggningsprodukt" + suffix,
                    inputSchemaRef = _InputSchemaRef,
                    data           = kanalisationsProdukt
                };
                var plattformKanalisationStyckevara = new StyckevaraEntrydefaultIn
                {
                    Array          = true,
                    id             = "PlattformKanalisationStyckevara" + suffix,
                    inputSchemaRef = _InputSchemaRef,
                    data           = kanalisationsIndivid
                };
                if (bisPlattform.Brunn_Och_Lock != "?")
                {
                    plattformKanalisation.Add(plattformKanalisationProdukt);
                    plattformKanalisationIndivid.Add(plattformKanalisationStyckevara);
                }

                //PlattformIndivid
                var plattformindivid = new Plattformindivid
                {
                    startSpecified = false,
                    endSpecified   = false,
                    name           = "Plattformindivid",
                    notering       = bisPlattform.Notering,
                    versionId      = _VersionId,
                    företeelsetyp  = new ClassificationReference_Styckevara_företeelsetyp
                    {
                        startSpecified = false,
                        endSpecified   = false,
                        @class         = new FTStyckevaraReference
                        {
                            softType    = "FTStyckevara",
                            instanceRef = "Plattformindivid"
                        }
                    }
                };
                plattformindivid.id = plattformindivid.name + suffix;

                var plattformIndividStyckevara = new StyckevaraEntrydefaultIn
                {
                    Array          = true,
                    id             = "PlattformIndividStyckevara" + suffix,
                    inputSchemaRef = _InputSchemaRef,
                    data           = plattformindivid
                };
                plattformIndivider.Add(plattformIndividStyckevara);

                ExtraCounter++;
            }
            var anläggningsProduktSoftType = new SoftType_Anläggningsprodukt
            {
                Array     = true,
                id        = "Anläggningsprodukt",
                instances = plattformsProdukter.ToArray()
            };
            var funktionellAnläggningsSoftType = new SoftType_FunktionellAnläggning
            {
                Array     = true,
                id        = "FunktionellAnläggning",
                instances = plattformsFunktioner.ToArray()
            };
            var anläggningsProduktSoftTypeSkydd = new SoftType_Anläggningsprodukt
            {
                Array     = true,
                id        = "Anläggningsprodukt",
                instances = plattformVäderskydd.ToArray()
            };
            var styckevaraProduktSoftType = new SoftType_Styckevara
            {
                Array     = true,
                id        = "Styckevara",
                instances = plattformStyckevaror.ToArray()
            };
            var anläggningsProduktSTSkylt = new SoftType_Anläggningsprodukt
            {
                Array     = true,
                id        = "Anläggningsprodukt",
                instances = plattformSkylt.ToArray()
            };
            var styckevaraProduktSTSkylt = new SoftType_Styckevara
            {
                Array     = true,
                id        = "Styckevara",
                instances = plattformSkyltIndivid.ToArray()
            };
            var anläggningsProduktKanalisation = new SoftType_Anläggningsprodukt
            {
                Array     = true,
                id        = "Anläggningsprodukt",
                instances = plattformKanalisation.ToArray()
            };
            var styckevaraProduktKanalisation = new SoftType_Styckevara
            {
                Array     = true,
                id        = "Styckevara",
                instances = plattformKanalisationIndivid.ToArray()
            };
            var plattformIndivid = new SoftType_Styckevara
            {
                Array     = true,
                id        = "Styckevara",
                instances = plattformIndivider.ToArray()
            };
            var geoPlaceringSoftType = new SoftType_GeografiskPlaceringsreferens
            {
                Array     = true,
                id        = "GeografiskPlaceringsreferens",
                instances = geoPlaceringar.ToArray()
            };

            containerSoftTypes.Add(anläggningsProduktSoftType);
            containerSoftTypes.Add(funktionellAnläggningsSoftType);
            containerSoftTypes.Add(anläggningsProduktSoftTypeSkydd);
            containerSoftTypes.Add(styckevaraProduktSoftType);
            containerSoftTypes.Add(anläggningsProduktSTSkylt);
            containerSoftTypes.Add(styckevaraProduktSTSkylt);
            containerSoftTypes.Add(anläggningsProduktKanalisation);
            containerSoftTypes.Add(styckevaraProduktKanalisation);
            containerSoftTypes.Add(plattformIndivid);
            containerSoftTypes.Add(geoPlaceringSoftType);

            //Adds the extra softypes needed
            containerSoftTypes.AddRange(CreateSupplementarySoftypes());
            containerSoftTypes.AddRange(CreateFTKeyReferenceSoftTypes());

            //Last step is to prepare the container for serialization
            container.softTypes = containerSoftTypes.ToArray();
            return(container);
        }