Exemplo n.º 1
0
        public static List <Construction> UpdateConstructions(this Building building, IEnumerable <Construction> constructions, MaterialLibrary materialLibrary)
        {
            if (constructions == null || building == null)
            {
                return(null);
            }

            List <Construction> result = new List <Construction>();

            foreach (Construction construction in constructions)
            {
                if (construction == null)
                {
                    continue;
                }

                string uniqueName = construction.UniqueName();
                if (string.IsNullOrWhiteSpace(uniqueName))
                {
                    continue;
                }

                List <ConstructionLayer> constructionLayers = construction.ConstructionLayers;
                if (constructionLayers == null || constructionLayers.Count == 0)
                {
                    continue;
                }

                TBD.Construction construction_TBD = building.GetConstructionByName(uniqueName);
                if (construction_TBD == null)
                {
                    construction_TBD      = building.AddConstruction(null);
                    construction_TBD.name = uniqueName;
                }

                construction_TBD.type = Query.ConstructionTypes(constructionLayers, materialLibrary);

                if (construction_TBD.UpdateConstruction(constructionLayers, materialLibrary))
                {
                    result.Add(construction);
                }
            }

            return(result);
        }
Exemplo n.º 2
0
        public static List <ApertureConstruction> UpdateConstructions(this Building building, IEnumerable <ApertureConstruction> apertureConstructions, MaterialLibrary materialLibrary)
        {
            if (apertureConstructions == null || building == null)
            {
                return(null);
            }

            List <ApertureConstruction> result = new List <ApertureConstruction>();

            foreach (ApertureConstruction apertureConstruction in apertureConstructions)
            {
                if (apertureConstruction == null)
                {
                    continue;
                }

                string uniqueName = apertureConstruction.UniqueName();
                if (string.IsNullOrWhiteSpace(uniqueName))
                {
                    continue;
                }

                TBD.Construction         construction_TBD   = null;
                List <ConstructionLayer> constructionLayers = null;
                ConstructionTypes        constructionTypes;


                //Pane Construction
                string paneApertureConstructionUniqueName = apertureConstruction.PaneApertureConstructionUniqueName();
                construction_TBD = building.GetConstructionByName(paneApertureConstructionUniqueName);
                if (construction_TBD == null)
                {
                    construction_TBD      = building.AddConstruction(null);
                    construction_TBD.name = paneApertureConstructionUniqueName;
                }

                constructionTypes  = ConstructionTypes.tcdTransparentConstruction;
                constructionLayers = apertureConstruction.PaneConstructionLayers;
                if (constructionLayers != null && constructionLayers.Count != 0)
                {
                    constructionTypes = Query.ConstructionTypes(constructionLayers, materialLibrary);
                }

                construction_TBD.type = constructionTypes;

                if (construction_TBD.UpdateConstruction(constructionLayers, materialLibrary))
                {
                    result.Add(apertureConstruction);
                }


                //Frame Construction
                string frameApertureConstructionUniqueName = apertureConstruction.FrameApertureConstructionUniqueName();
                construction_TBD = building.GetConstructionByName(frameApertureConstructionUniqueName);
                if (construction_TBD == null)
                {
                    construction_TBD      = building.AddConstruction(null);
                    construction_TBD.name = frameApertureConstructionUniqueName;
                }

                constructionTypes  = ConstructionTypes.tcdOpaqueConstruction;
                constructionLayers = apertureConstruction.FrameConstructionLayers;

                //Frame TBD.Construction cannot be empty
                if (constructionLayers == null || constructionLayers.Count == 0)
                {
                    constructionLayers = apertureConstruction.PaneConstructionLayers;
                }

                if (constructionLayers != null && constructionLayers.Count != 0)
                {
                    constructionTypes = Query.ConstructionTypes(constructionLayers, materialLibrary);
                }

                construction_TBD.type = constructionTypes;

                if (construction_TBD.UpdateConstruction(constructionLayers, materialLibrary))
                {
                    result.Add(apertureConstruction);
                }
            }

            return(result);
        }