public void CanCountNumberOfBooksInLibrary()
        {
            // Arrange - create a library and add 2 books
            Library <Book> testLibrary = new Library <Book>();

            Book testBookOne = new Book()
            {
                Title  = "The Great Book",
                Author = new Author()
                {
                    FirstName = "Jane", LastName = "Smith"
                },
                Genre = Genre.Romance
            };

            Book testBookTwo = new Book()
            {
                Title  = "Second Greatest Book",
                Author = new Author()
                {
                    FirstName = "Jane", LastName = "Smith"
                },
                Genre = Genre.Romance
            };

            testLibrary.Add(testBookOne);
            testLibrary.Add(testBookTwo);

            // Act - count the number of books in the library
            int count = testLibrary.Count();

            // Assert - does library contain 2 books?
            Assert.Equal(count, testLibrary.Count());
        }
示例#2
0
    static void Main(string[] args)
    {
        Book firstBook = new Book("C#", "Svetlin Nakov");
        Book secondBook = new Book("Java", "Svetlin Nakov");
        Book thirdBook = new Book(".NET", "Svetlin Nakov");
        Book fourthBook = new Book("Ice and fire", "George Martin");

        Library telerikLib = new Library("Telerik Library");
        
        
        telerikLib.Add(firstBook);
        telerikLib.Add(secondBook);
        telerikLib.Add(thirdBook);
        telerikLib.Add(fourthBook);
        Console.WriteLine("Display library :");
        telerikLib.DisplayAll();

        int startIndx = 0;
        int indxFound;

        while (telerikLib.IndexOf("Svetlin Nakov", startIndx, SearchOption.Author) != -1)
        {
            indxFound = telerikLib.IndexOf("Svetlin Nakov", startIndx, SearchOption.Author);
            telerikLib.DeleteAt(indxFound);
        }
        Console.WriteLine("\nAfter deleting :");
        telerikLib.DisplayAll();
    }
        public void CanRemoveABookFromTheLibrary()
        {
            // Arrange - create a library and add 2 books
            Library <Book> testLibrary = new Library <Book>();

            Book testBookOne = new Book()
            {
                Title  = "The Great Book",
                Author = new Author()
                {
                    FirstName = "Jane", LastName = "Smith"
                },
                Genre = Genre.Romance
            };

            Book testBookTwo = new Book()
            {
                Title  = "Second Greatest Book",
                Author = new Author()
                {
                    FirstName = "Jane", LastName = "Smith"
                },
                Genre = Genre.Romance
            };

            testLibrary.Add(testBookOne);
            testLibrary.Add(testBookTwo);

            // Act - Remove a book from the library
            Book removedBook = testLibrary.Remove(testBookOne);

            // Assert - does library contain new Book obj?
            Assert.Equal(testBookOne, removedBook);
        }
        public void RemoveABookFromLibrary()
        {
            //Arrange
            Library <Book> testLibrary = new Library <Book>();

            Author firstAuthor = new Author("Kazuo", "Ishiguro");
            Book   firstBook   = new Book("The Remains of the Day", firstAuthor);

            Author secondAuthor = new Author("Gunter", "Grass");
            Book   secondBook   = new Book("The Tin Drum", secondAuthor);

            Author thirdAuthor = new Author("Virginia", "Woolf");
            Book   thirdBook   = new Book("To the Lighthouse", thirdAuthor);

            testLibrary.Add(firstBook);
            testLibrary.Add(secondBook);
            testLibrary.Add(thirdBook);

            //Act
            Book result = testLibrary.Remove(secondBook.Title);

            //Assert
            Assert.Equal(2, testLibrary.Count());
            Assert.Equal(secondBook, result);
        }
示例#5
0
        public void Library_can_store()
        {
            Library <string> storeLibrary = new Library <string>();

            storeLibrary.Add("book");
            storeLibrary.Add("GoT");

            Assert.Equal(new[] { "book", "GoT" }, storeLibrary);
        }
示例#6
0
        public void TestLibraryCount()
        {
            Library <Book> library = new Library <Book>();
            Book           book1   = new Book();
            Book           book2   = new Book();

            library.Add(book1);
            library.Add(book2);

            Assert.Equal(2, library.Count());
        }
示例#7
0
        public void TestIfYouCanAddABookToLibrary()
        {
            myLibrary.Add(new Book("Catmunism", new Author("Meow", "Zedong"), Genre.Historical));
            Book lastBook = null;

            foreach (Book book in myLibrary)
            {
                lastBook = book;
            }
            Assert.Equal("Catmunism", lastBook.Title);
        }
示例#8
0
        private void AddSongsToLibrary(Library lib)
        {
            var song = new Song(@"Songs\empty10sec.mp3");

            song.Rating = 3;
            lib.Add(song);

            song        = new Song(@"Songs\empty10sec2.mp3");
            song.Rating = 1;
            lib.Add(song);
        }
示例#9
0
        public void Can_add_to_library()
        {
            Library <string> library2 = new Library <string>();


            library2.Add("Hi");
            library2.Add("how");
            library2.Add("are");
            library2.Add("you");

            Assert.Equal(new[] { "Hi", "how", "are", "you" }, library2);
        }
        public void CannotRemoveABookThatDoesntExist()
        {
            Library <Book> Library = new Library <Book>();

            Library.Add(new Book("Mission Impossible", "Peter", "Barsocchini", (Genre)1));
            Library.Add(new Book("Short Victorious War", "David", "Webb", (Genre)5));
            Library.Add(new Book("Lord Of Chaos", "Robert", "Jordan", (Genre)4));

            Exception e = Assert.Throws <System.Exception>(() => Library.Remove(4));

            string expected = "That book does not exist";

            Assert.Equal(expected, e.Message);
        }
示例#11
0
        public void Add_to_List()
        {
            // Arrange
            Library <int> myList = new Library <int>();

            myList.Add(4);
            myList.Add(1);
            myList.Add(6);
            // Act
            myList.Add(2);

            // Assert
            Assert.Equal(4, myList.Count);
        }
示例#12
0
        public void Library_can_remove()
        {
            // Arange
            Library <string> removeLibrary = new Library <string>();

            removeLibrary.Add("book");
            removeLibrary.Add("GoT");
            // Act
            bool result = removeLibrary.RemoveBook(0);

            // Assert
            Assert.True(result);
            Assert.Equal(new[] { "GoT" }, removeLibrary);
        }
        public void AccurateCoutOfBooksInLibrary()
        {
            Library <Book> Library = new Library <Book>();

            Library.Add(new Book("Mission Impossible", "Peter", "Barsocchini", (Genre)1));
            Library.Add(new Book("Short Victorious War", "David", "Webb", (Genre)5));
            Library.Add(new Book("Lord Of Chaos", "Robert", "Jordan", (Genre)4));

            int expected = 3;

            int outputFromMethod = Library.Count();

            Assert.Equal(expected, outputFromMethod);
        }
示例#14
0
        public void Can_Add_Beyond_Capacity()
        {
            //arrange
            int           capacity       = 1;
            Library <int> testCollection = new Library <int>(capacity);

            testCollection.Add(21);

            //act
            testCollection.Add(87);

            //assert
            Assert.Equal(2, testCollection.Count);
            Assert.Equal(87, testCollection[1]);
        }
        public void CountBooks()
        {
            Library <Book> library = new Library <Book>();

            Assert.Equal(0, library.Count());
            Book book = new Book(new Author {
                Name = "Test"
            }, "Test", Genre.Science);
            Book otherBook = new Book(new Author {
                Name = "Not The Book"
            }, "Not The Book", Genre.Science);

            library.Add(book);
            library.Add(otherBook);
            Assert.Equal(2, library.Count());
        }
示例#16
0
        public static void Register(Library l, DriverCollection d)
        {
            l.Add(mans);

            d.Add(OutputDriver.Instance);
            d.SetDefault(OutputDriver.Instance);
        }
示例#17
0
        internal static Stream PrepareStreamed(Uri uri, HTTPResponse response)
        {
            if (!IsSupported)
            {
                return(null);
            }
            lock (Library)
            {
                if (!Library.TryGetValue(uri, out HTTPCacheFileInfo value))
                {
                    Library.Add(uri, value = new HTTPCacheFileInfo(uri));
                    UsedIndexes.Add(value.MappedNameIDX, value);
                }
                try
                {
                    return(value.GetSaveStream(response));

IL_005b:
                    Stream result;
                    return(result);
                }
                catch
                {
                    DeleteEntity(uri);
                    throw;
IL_006b:
                    Stream result;
                    return(result);
                }
            }
        }
示例#18
0
 static void scanner_OnBookFound(object sender, BookFoundEventArgs e)
 {
     if (Library.Add(e.Book))
     {
         if (e.Book.BookType == BookType.FB2)
         {
             _fb2Count++;
         }
         else
         {
             _epubCount++;
         }
     }
     else
     {
         _duplicates++;
     }
     if (Library.Count % 500 == 0)
     {
         Library.Save();
     }
     if (Library.Count % 20000 == 0)
     {
         GC.Collect();
     }
     UpdateInfo();
 }
示例#19
0
 private async void Add_Click(object sender, RoutedEventArgs e)
 {
     if (await library.Add(Add, App.Current.Resources))
     {
         Display.ItemsSource = await library.ListAsync((DateTimeOffset)Picker.Date);
     }
 }
        public ActionResult _Insert(ExpensesRequest data, GridCommand command, bool isNew = false)
        {
            try {
                // Validate entity object.
                ValidateEntity(data);

                // Model is valid.
                if (ModelState.IsValid)
                {
                    // Using transaction.
                    using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions {
                        IsolationLevel = IsolationLevel.ReadCommitted
                    })) {
                        data = Library.Add(data);
                        data.Reference_ID = data.ID;
                        Library.Modify(data, new string[] { "Paid_Party_To", "Payment", "Invoice" });
                        scope.Complete();
                    }
                }
            }
            catch (Exception ex) {
                // Duplicate exception occured.
                if (ex.GetBaseException() is smART.Common.DuplicateException)
                {
                    ModelState.AddModelError("Error", ex.GetBaseException().Message);
                }
                else
                {
                    ModelState.AddModelError("Error", ex.Message);
                }
            }
            return(Display(command));
        }
示例#21
0
 public Watcher(string path = "")
 {
     DirectoryToWatch      = path;
     _booksManager         = new BackgroundWorker();
     _booksManager.DoWork += _booksManager_DoWork;
     _scanner              = new FileScanner(false);
     _scanner.OnBookFound += (object s, BookFoundEventArgs be) =>
     {
         if (Library.Add(be.Book))
         {
             //Library.Append(be.Book);
             if (OnBookAdded != null)
             {
                 OnBookAdded(this, new BookAddedEventArgs(be.Book.FileName));
             }
         }
     };
     _scanner.OnInvalidBook += (object _sender, InvalidBookEventArgs _e) => { if (OnInvalidBook != null)
                                                                              {
                                                                                  OnInvalidBook(_sender, _e);
                                                                              }
     };
     _scanner.OnFileSkipped += (object _sender, FileSkippedEventArgs _e) => { if (OnFileSkipped != null)
                                                                              {
                                                                                  OnFileSkipped(_sender, _e);
                                                                              }
     };
 }
 private async void Add_Click(object sender, RoutedEventArgs e)
 {
     if (await library.Add(Add))
     {
         Display.ItemsSource = await library.ListAsync();
     }
 }
        internal static Stream PrepareStreamed(Uri uri, HTTPResponse response)
        {
            lock (Library)
            {
                if (!Library.TryGetValue(uri, out HTTPCacheFileInfo value))
                {
                    Library.Add(uri, value = new HTTPCacheFileInfo(uri));
                }
                try
                {
                    return(value.GetSaveStream(response));

IL_003e:
                    Stream result;
                    return(result);
                }
                catch (Exception ex)
                {
                    DeleteEntity(uri);
                    throw ex;
IL_004c:
                    Stream result;
                    return(result);
                }
            }
        }
示例#24
0
        internal static HTTPCacheFileInfo Store(Uri uri, HTTPMethods method, HTTPResponse response)
        {
            if (response == null || response.Data == null || response.Data.Length == 0)
            {
                return(null);
            }

            HTTPCacheFileInfo info = null;

            lock (Library)
            {
                if (!Library.TryGetValue(uri, out info))
                {
                    Library.Add(uri, info = new HTTPCacheFileInfo(uri));
                }

                try
                {
                    info.Store(response);
                }
                catch
                {
                    // If something happens while we write out the response, than we will delete it becouse it might be in an invalid state.
                    DeleteEntity(uri);

                    throw;
                }
            }

            return(info);
        }
示例#25
0
        internal static System.IO.Stream PrepareStreamed(Uri uri, HTTPResponse response)
        {
            if (!IsSupported)
            {
                return(null);
            }

            HTTPCacheFileInfo info;

            lock (Library)
            {
                if (!Library.TryGetValue(uri, out info))
                {
                    Library.Add(uri, info = new HTTPCacheFileInfo(uri));
                    UsedIndexes.Add(info.MappedNameIDX, info);
                }

                try
                {
                    return(info.GetSaveStream(response));
                }
                catch
                {
                    // If something happens while we write out the response, than we will delete it because it might be in an invalid state.
                    DeleteEntity(uri);

                    throw;
                }
            }
        }
示例#26
0
        internal static HTTPCacheFileInfo Store(Uri uri, HTTPMethods method, HTTPResponse response)
        {
            if (response == null || response.Data == null || response.Data.Length == 0)
            {
                return(null);
            }
            if (!IsSupported)
            {
                return(null);
            }
            HTTPCacheFileInfo value = null;

            lock (Library)
            {
                if (!Library.TryGetValue(uri, out value))
                {
                    Library.Add(uri, value = new HTTPCacheFileInfo(uri));
                    UsedIndexes.Add(value.MappedNameIDX, value);
                }
                try
                {
                    value.Store(response);
                    return(value);
                }
                catch
                {
                    DeleteEntity(uri);
                    throw;
IL_0087:
                    return(value);
                }
            }
        }
示例#27
0
        void SaveAs()
        {
            PromptDialog diag = new PromptDialog();

            diag.Title = "Engineering Preset";
            diag.Label = "Provide a name for this preset:";
            if (diag.ShowDialog() == true)
            {
                string f = null;
                if (diag.Text.EndsWith(".dat", StringComparison.OrdinalIgnoreCase))
                {
                    f = diag.Text;
                }
                else
                {
                    f = diag.Text + ".dat";
                }
                if (IsAlreadyInLibrary(f))
                {
                    if (Locations.MessageBoxShow("File is already in library.\r\n\r\nOverwrite?", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.No)
                    {
                        return;
                    }
                }
                else
                {
                    string file = System.IO.Path.Combine(LibraryPath, f);
                    EngineeringHelper.WritePresetFile(file, PresetItems);
                    CurrentFile = f;
                    Library.Add(f);
                }
            }
        }
示例#28
0
        public async Task Run(MessageCreateEventArgs e)
        {
            string valueToAdd = e.Message.Content.Substring(9 + _libraryType.ToString().Length);
            int    newKey     = await _library.Add(valueToAdd);

            await e.Message.RespondAsync($"{_libraryType} added to library id:{newKey}");
        }
        async Task ExecuteLoadItemsCommand()
        {
            if (IsBusy)
            {
                return;
            }

            IsBusy = true;

            try
            {
                _manager = new ServiceManager();
                var ret = await _manager.GetAllBooksAsync();

                Library?.Clear();

                //Oder by Title
                var sorted = ret.OrderBy(t => t.Title);
                foreach (var item in sorted)
                {
                    item.LineItem = $"{item.Title} - {item.Author}";
                    Library.Add(item);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }
            finally
            {
                IsBusy = false;
            }
        }
        public void CanAddBookToLibrary()
        {
            // arrange
            Library <Book> library = new Library <Book>();

            Book book1 = new Book()
            {
                Author = new Author()
                {
                    FirstName = "John",
                    LastName  = "Tolkien",
                    DOB       = new DateTime(1892, 1, 03)
                },
                Genre         = genre.Fantasy,
                Title         = "Fellowship of the Ring",
                NumberOfPages = 350,
            };

            library.Add(book1);

            // act
            bool inLibrary = library.InLibrary(book1);

            // assert
            Assert.True(inLibrary);
        }
        public static void AddABook(string title, string firstName, string lastName, int numberOfPages, Genre genre)
        {
            Book book = new Book()
            {
                Title  = title,
                Author = new Author()
                {
                    FirstName = firstName,
                    LastName  = lastName
                },
                NumberOfPages = numberOfPages,
                Genre         = genre
            };

            Library.Add(book);
        }
示例#32
0
        //NOTE: To reuse code, in this project there add the project CSharpCourse.ClassInterfacesAndStructs
        static void Main(string[] args)
        {
            Library<IVideoMedia> videoLibrary = new Library<IVideoMedia>();

            VHSVideo jurasicPark = new VHSVideo(TimeSpan.FromMinutes(80));
            BetaVideo madMax = new BetaVideo(TimeSpan.FromMinutes(74));
            CasetteMedia rock80 = new CasetteMedia();

            videoLibrary.Add(jurasicPark);
            videoLibrary.Add(madMax);

            //We instance a generic Library with type IVideoMedia interface, then, we only include objects with this interface.
            videoLibrary.Add(rock80);

            Console.WriteLine(videoLibrary.CountOfTitles);
            Console.WriteLine(videoLibrary.LastTitleAdded);

            Console.ReadKey();
        }
        public static OpaqueConstruction QuickConstruction(string name, ConstructionTypes type, string[] layers, double[] thickness, string category, string source,  ref Library Library)
        {

            OpaqueConstruction oc = new OpaqueConstruction();
            for (int i = 0; i < layers.Length; i++)
            {
                try
                {
                    if (Library.OpaqueMaterials.Any(x => x.Name == layers[i]))
                    {
                        var mat = Library.OpaqueMaterials.First(o => o.Name == layers[i]);
                        Layer<OpaqueMaterial> layer = new Layer<OpaqueMaterial>(thickness[i], mat);
                        oc.Layers.Add(layer);
                    }
                    else
                    {

                        Debug.WriteLine("ERROR: " + "Could not find " + layers[i]);
                        Logger.WriteLine("ERROR: " + "Could not find " + layers[i]);
                        return null;

                    }
                }
                catch(Exception e) {
                    Debug.WriteLine( e.Message);
                }

            }

            oc.Name = name;
            oc.Type = type;
            oc.Category = category;
            oc.DataSource = source;


            Library.Add(oc);
            return oc;

        }
示例#34
0
        public static void Load(Library targetLib)
        {
            try
            {
                CheckLibs();//check if exist
                string[] chn = System.IO.File.ReadAllLines(chnPath);
                string[] eng = System.IO.File.ReadAllLines(engPath); ;
                string[] frequencyString = System.IO.File.ReadAllLines(frequencyPath);

                for (int i = 0; i < chn.Length; i++)//convert to Entry and add
                {
                    if (chn[i].Length == 0 || eng[i].Length == 0 || frequencyString[i] == "0")
                    {
                        break;
                    }//skip loading while reaching the end

                    Entry entryToAdd = new Entry(chn[i], eng[i], int.Parse(frequencyString[i]));
                    targetLib.Add(entryToAdd);
                }
            }//prevent empty entry, null/outOfBound
            catch { }
        }
示例#35
0
        public static void Main(string[] args)
        {
            var separators = new char[] { ' ', ',', '!', '-', '.', '–', '?' };
            var dictionary = new Dictionary<string, int>();

            using (StreamReader streamReader = new StreamReader(@"..\..\words.txt"))
            {
                string line;
                while ((line = streamReader.ReadLine()) != null)
                {
                    var words = line.Split(separators, StringSplitOptions.RemoveEmptyEntries);
                    foreach (var word in words)
                    {
                        var wordToLower = word.ToLower();
                        if (!dictionary.ContainsKey(wordToLower))
                        {
                            dictionary[wordToLower] = 0;
                        }

                        dictionary[wordToLower] += 1;
                    }
                }
            }

            var wordsSortedByApearence = dictionary.OrderBy(i => i.Value);
            foreach (var word in wordsSortedByApearence)
            {
                Console.WriteLine("{0} -> {1}", word.Key, word.Value);
            }

            // SerializableSortedList<int, LibraryItem> dict = new SerializableSortedList<int, LibraryItem>();
            // var libraryItem1 = new LibraryItem("Pesho", "Peshov", PhoneType.Home, "09999999");
            // dict.Add(libraryItem1);
            // var libraryItem2 = new LibraryItem("Peshob", "Peshov", PhoneType.Home, "08888888");
            // dict.Add(libraryItem2);
            // var libraryItem3 = new LibraryItem("Peshoc", "Peshova", PhoneType.Home, "07777777");
            // dict.Add(libraryItem3);
            // var libraryItem4 = new LibraryItem("Peshoa", "Peshovc", PhoneType.Home, "06666666");
            // dict.Add(libraryItem4);
            // var libraryItem5 = new LibraryItem("Peshob", "Peshov", PhoneType.Home, "05555555");
            // dict.Add(libraryItem5);
            // IFormatter formatter = new BinaryFormatter();
            // string fileLocation = "../../SerializableDictionary/dictionary.bin";
            // Stream stream = new FileStream(fileLocation, FileMode.Create, FileAccess.Write, FileShare.None);
            // formatter.Serialize(stream, dict);
            // stream.Close();
            // formatter = new BinaryFormatter();
            // stream = new FileStream(fileLocation, FileMode.Open, FileAccess.Read, FileShare.Read);
            // var desirializedDict = (SerializableSortedList<int, LibraryItem>)formatter.Deserialize(stream);
            // stream.Close();
            // foreach (var item in desirializedDict)
            // {
            // Console.WriteLine(item);
            // }
            // Console.WriteLine();
            // var sortedByLastName = desirializedDict.OrderBy(i => i.Value.LastName);
            // foreach (var item in sortedByLastName)
            // {
            // Console.WriteLine(item);
            // }
            var library = new Library();
            library.Add(new LibraryItem("B", "A", PhoneType.Cellphone, "0999"));
            library.Add(new LibraryItem("A", "B", PhoneType.Cellphone, "0888"));
            library.Add(new LibraryItem("B", "C", PhoneType.Cellphone, "0777"));
            library.Add(new LibraryItem("A", "B", PhoneType.Cellphone, "0666"));

            IFormatter formatter = new BinaryFormatter();
            string fileLocation = "../../SerializableDictionary/library.bin";
            Stream stream = new FileStream(fileLocation, FileMode.Create, FileAccess.Write, FileShare.None);
            formatter.Serialize(stream, library);
            stream.Close();

            formatter = new BinaryFormatter();
            stream = new FileStream(fileLocation, FileMode.Open, FileAccess.Read, FileShare.Read);
            var desirializedDict = (Library)formatter.Deserialize(stream);
            stream.Close();

            foreach (var item in desirializedDict)
            {
                Console.WriteLine(item);
            }
        }
示例#36
0
        public static YearSchedule QuickSchedule(string Name, double[] dayArray, double[] weArray, string category, string dataSource, ref Library Library)
        {


            int[] MonthFrom = { 1 };
            int[] DayFrom = { 1 };
            int[] MonthTo = { 12 };
            int[] DayTo = { 31 };

            DaySchedule someDaySchedule = new DaySchedule(Name, "Fraction", dayArray.ToList());
            someDaySchedule.DataSource = dataSource;
            someDaySchedule.Category = category;
            someDaySchedule = Library.Add(someDaySchedule);

            DaySchedule weSchedule = new DaySchedule(Name + "WeekEnd", "Fraction", dayArray.ToList());
            weSchedule.DataSource = dataSource;
            weSchedule.Category = category;
            weSchedule = Library.Add(weSchedule);

            DaySchedule[] daySchedulesArray = { someDaySchedule, someDaySchedule, someDaySchedule, someDaySchedule, someDaySchedule, weSchedule, weSchedule };
            WeekSchedule someWeekSchedule = new WeekSchedule(Name, daySchedulesArray, "Fraction");
            someWeekSchedule.DataSource = dataSource;
            someWeekSchedule.Category = category;
            someWeekSchedule = Library.Add(someWeekSchedule);

            WeekSchedule[] weekSchedulesArray = { someWeekSchedule };
            YearSchedule someYearSchedule = new YearSchedule(Name, "Fraction", weekSchedulesArray.ToList(), MonthFrom.ToList(), DayFrom.ToList(), MonthTo.ToList(), DayTo.ToList());
            someYearSchedule.DataSource = dataSource;
            someYearSchedule.Category = category;

            Library.Add(someYearSchedule);
            return someYearSchedule;

        }
        // hardcoded default library
        public static Library getHardCodedDefaultLib()
        {
            Library Library = new Library();

            #region DEFAULTS - MUST BE IN LIBRARY

            OpaqueMaterial defaultMat = new OpaqueMaterial() {
            Name ="defaultMat",
            Category ="Concrete",
                Conductivity= 2.30,
                Density =2400,
                SpecificHeat=840,
                ThermalEmittance=0.9,
                SolarAbsorptance= 0.7,
                VisibleAbsorptance=0.7
            };
            Library.Add(defaultMat);

            GlazingMaterial defaultGMat = new GlazingMaterial() {
           Name = "defaultGlazingMat",
                Type=  "Uncoated",
                Conductivity = 0.9,
                Density= 2500,
                SolarTransmittance =0.68,
                SolarReflectanceFront =0.09,
                SolarReflectanceBack=0.10,
                VisibleTransmittance=0.81,
                VisibleReflectanceFront=0.11,
                VisibleReflectanceBack=0.12,
                IRTransmittance=0.00,
                IREmissivityFront=0.84,
                IREmissivityBack=0.20
           };
            Library.Add( defaultGMat);



            Layer<OpaqueMaterial> defaultLay = new Layer<OpaqueMaterial>(0.25, defaultMat);
            OpaqueConstruction defaultConstruction = new OpaqueConstruction();
            defaultConstruction.Layers.Add(defaultLay);
            defaultConstruction.Name = "defaultConstruction";
            defaultConstruction.Type = ConstructionTypes.Facade;// "Facade";
            Library.Add( defaultConstruction);


            Layer<WindowMaterialBase> defaultGLay = new Layer<WindowMaterialBase>(0.006, defaultGMat);
            GlazingConstruction defaultGlazing = new GlazingConstruction();
            defaultGlazing.Layers.Add(defaultGLay);
            defaultGlazing.Name = "defaultGlazing";
            defaultGlazing.Type = GlazingConstructionTypes.Single;// "Single";
            Library.Add( defaultGlazing);


            //AIRWALL
            GlazingMaterial AirWallMat = new GlazingMaterial()
            {
                Name = "100TRANS",
                Type = "uncoated",
                Conductivity = 5,
                Density = 0.0001,
                SolarTransmittance = 0.99,
                SolarReflectanceFront = 0.005,
                SolarReflectanceBack = 0.005,
                VisibleTransmittance = 0.99,
                VisibleReflectanceFront = 0.005,
                VisibleReflectanceBack = 0.005,
                IRTransmittance = 0.99,
                IREmissivityFront = 0.005,
                IREmissivityBack = 0.005
            };
            Library.Add(AirWallMat);
            Layer<WindowMaterialBase> airwallLayer = new Layer<WindowMaterialBase>(0.003, AirWallMat);
            GlazingConstruction airWall = new GlazingConstruction();
            airWall.Layers.Add(airwallLayer);
            airWall.Name = "Airwall";
            airWall.Type = GlazingConstructionTypes.Other;// "Other";
            Library.Add( airWall);




            //---------------------------------------------------------------------------------gases

            // add all possible gas materials to GasMaterials
           // string[] gases = { "AIR", "ARGON", "KRYPTON", "XENON", "SF6" };
            Library.GasMaterials.Clear();
            foreach (var s in Enum.GetValues(typeof(GasTypes)).Cast<GasTypes>())
            {
                Library.GasMaterials.Add(new GasMaterial(s));
            }



            int[] MonthFrom = { 1 };
            int[] DayFrom = { 1 };
            int[] MonthTo = { 12 };
            int[] DayTo = { 31 };


            double[] hourlyAllOnArr = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
            YearSchedule.QuickSchedule("AllOn", hourlyAllOnArr, "Fraction", "Default Library", ref Library);


            double[] hourlyAllOffArr = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
            YearSchedule.QuickSchedule("AllOff", hourlyAllOffArr, "Fraction", "Default Library", ref Library);


            Library.Add(new ZoneLoad() { Name = "Off", PeopleIsOn = false, EquipmentIsOn = false , LightsIsOn = false, PeopleDensity = 0, IlluminanceTarget = 0, LightingPowerDensity = 0, EquipmentPowerDensity = 0, OccupancySchedule = "AllOn", EquipmentAvailibilitySchedule = "AllOn", LightsAvailibilitySchedule = "AllOn", Category = "Default", DataSource = "Default" });
            Library.Add(new ZoneConditioning() { Name = "Off", HeatIsOn=false, CoolIsOn =false, MechVentIsOn = false, HeatingSetpoint = 19, CoolingSetpoint = 26,  MinFreshAirPerson = 0, MinFreshAirArea = 0, Category = "Default" });
            Library.Add(new ZoneVentilation() { Name = "Off", InfiltrationIsOn = false, InfiltrationAch = 0.15, InfiltrationModel = InfiltrationModel.Wind, Category = "Infiltration" });
            Library.Add(new DomHotWater() { Name = "Off", IsOn = false, FlowRatePerFloorArea = 0, WaterSchedule = "AllOn", WaterTemperatureInlet = 10, WaterSupplyTemperature = 60 });
            Library.Add(new ZoneConstruction() { Name = "Default", RoofConstruction = "defaultConstruction", FacadeConstruction = "defaultConstruction", SlabConstruction = "defaultConstruction", GroundConstruction = "defaultConstruction", PartitionConstruction = "defaultConstruction" });




            #endregion









            #region  OpaqueMaterialsWithEEIndicators


            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Pine wood", Category = @"Timber", Conductivity = 0.13, Density = 520, SpecificHeat = 1600, ThermalEmittance = 0.9, SolarAbsorptance = 0.7, VisibleAbsorptance = 0.7, EmbodiedEnergy = 10, EmbodiedCarbon = 0.71, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net][LCA  ICE (0.31fos + 0.41bio-embodied cabon emissions)]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Douglas fir", Category = @"Timber", Conductivity = 0.12, Density = 530, SpecificHeat = 1600, ThermalEmittance = 0.9, SolarAbsorptance = 0.7, VisibleAbsorptance = 0.7, EmbodiedEnergy = 10, EmbodiedCarbon = 0.71, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net][LCA  ICE (0.31fos + 0.41bio-embodied cabon emissions)]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Oak", Category = @"Timber", Conductivity = 0.18, Density = 690, SpecificHeat = 2400, ThermalEmittance = 0.9, SolarAbsorptance = 0.7, VisibleAbsorptance = 0.7, EmbodiedEnergy = 10, EmbodiedCarbon = 0.71, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net][LCA  ICE (0.31fos + 0.41bio-embodied cabon emissions)]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Spruce", Category = @"Timber", Conductivity = 0.13, Density = 450, SpecificHeat = 1600, ThermalEmittance = 0.9, SolarAbsorptance = 0.7, VisibleAbsorptance = 0.7, EmbodiedEnergy = 10, EmbodiedCarbon = 0.71, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net][LCA  ICE (0.31fos + 0.41bio-embodied cabon emissions)]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Larch", Category = @"Timber", Conductivity = 0.13, Density = 460, SpecificHeat = 1600, ThermalEmittance = 0.9, SolarAbsorptance = 0.7, VisibleAbsorptance = 0.7, EmbodiedEnergy = 10, EmbodiedCarbon = 0.71, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net][LCA  ICE (0.31fos + 0.41bio-embodied cabon emissions)]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Oriented strand board", Category = @"Timber", Conductivity = 0.13, Density = 650, SpecificHeat = 1700, ThermalEmittance = 0.9, SolarAbsorptance = 0.7, VisibleAbsorptance = 0.7, EmbodiedEnergy = 15, EmbodiedCarbon = 0.96, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net][LCA  ICE (0.45fos + 0.54 bio- embodied carbon emissions)]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Medium density fiberboard", Category = @"Timber", Conductivity = 0.09, Density = 500, SpecificHeat = 1700, ThermalEmittance = 0.9, SolarAbsorptance = 0.7, VisibleAbsorptance = 0.7, EmbodiedEnergy = 11, EmbodiedCarbon = 0.72, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net][LCA  ICE (0.39fos + 0.35bio- embodied carbon emissions)]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Chipboard", Category = @"Timber", Conductivity = 0.14, Density = 650, SpecificHeat = 1800, ThermalEmittance = 0.9, SolarAbsorptance = 0.7, VisibleAbsorptance = 0.7, EmbodiedEnergy = 10, EmbodiedCarbon = 0.71, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net][LCA  ICE (0.39fos + 0.35bio- embodied carbon emissions)]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"General Concrete", Category = @"Concrete", Conductivity = 2, Density = 2400, SpecificHeat = 950, ThermalEmittance = 0.9, SolarAbsorptance = 0.7, VisibleAbsorptance = 0.7, EmbodiedEnergy = 0.75, EmbodiedCarbon = 0.1, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net][LCA  ICE, General Concrete data]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Concrete reinforced 20-30 MPa", Category = @"Concrete", Conductivity = 2, Density = 2400, SpecificHeat = 950, ThermalEmittance = 0.9, SolarAbsorptance = 0.7, VisibleAbsorptance = 0.7, EmbodiedEnergy = 0.75, EmbodiedCarbon = 0.1, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net] General concrete data used for density through visible absorptance. Data averaged for embodied enegy, embodied carbon and embodied carbon emissions." });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Concrete reinforced 30-50 MPa", Category = @"Concrete", Conductivity = 2, Density = 2400, SpecificHeat = 950, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 0.74, EmbodiedCarbon = 0.099, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net]General concrete data used for density through visible absorptance. Data averaged for embodied enegy, embodied carbon and embodied carbon emissions." });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Asphalt low binder content", Category = @"Screed", Conductivity = 0.75, Density = 2350, SpecificHeat = 920, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 3.39, EmbodiedCarbon = 0.191, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net] General asphalt data used for density through visible absorptance, averaged data for embodied energy through embodied carbon emissions" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Asphalt high binder content", Category = @"Screed", Conductivity = 0.75, Density = 2350, SpecificHeat = 920, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 4.46, EmbodiedCarbon = 0.216, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net] General asphalt data used for density through visible absorptance, averaged data for embodied energy through embodied carbon emissions" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Lightweight concrete", Category = @"Concrete", Conductivity = 1.3, Density = 1800, SpecificHeat = 1000, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 0.78, EmbodiedCarbon = 0.106, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net] [LCA, ICE Concrete 20/25 Mpa]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Cement screed", Category = @"Screed", Conductivity = 1.4, Density = 2000, SpecificHeat = 1000, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 1.33, EmbodiedCarbon = 0.221, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net] [ LCA ICE, Mortar (1:3 cement:sand mix) ]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Basalt", Category = @"Masonry", Conductivity = 3.5, Density = 2850, SpecificHeat = 1000, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 1.26, EmbodiedCarbon = 0.073, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net] [LCA, ICE General Stone]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Granite", Category = @"Masonry", Conductivity = 2.8, Density = 2600, SpecificHeat = 790, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 11, EmbodiedCarbon = 0.64, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net] [LCA, ICE Granite]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Lime stone", Category = @"Masonry", Conductivity = 1.4, Density = 2000, SpecificHeat = 1000, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 1.5, EmbodiedCarbon = 0.087, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net] [LCA, ICE, Limestone]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Adobe 1500kg_m3", Category = @"Masonry", Conductivity = 0.66, Density = 1500, SpecificHeat = 1000, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 3, EmbodiedCarbon = 0.23, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net] [LCA ICE,  General Clay data]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Sand stone", Category = @"Masonry", Conductivity = 2.3, Density = 2600, SpecificHeat = 710, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 1, EmbodiedCarbon = 0.058, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net] [LCA, ICE Sandstone]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Clinker brick 1400kg_m3", Category = @"Masonry", Conductivity = 0.58, Density = 1400, SpecificHeat = 1000, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 3, EmbodiedCarbon = 0.23, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net] [LCA, ICE General (Common Brick)]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Clinker brick 1600kg_m3", Category = @"Masonry", Conductivity = 0.68, Density = 1600, SpecificHeat = 1000, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 3, EmbodiedCarbon = 0.23, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net]  [LCA, ICE General (Common Brick)]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Clinker brick 1800kg_m3", Category = @"Masonry", Conductivity = 0.81, Density = 1800, SpecificHeat = 1000, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 3, EmbodiedCarbon = 0.23, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net]  [LCA, ICE General (Common Brick)]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Clinker brick 2000kg_m3", Category = @"Masonry", Conductivity = 0.96, Density = 2000, SpecificHeat = 1000, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 3, EmbodiedCarbon = 0.23, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net]  [LCA, ICE General (Common Brick)]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Aerated concrete 350kg_m3", Category = @"Masonry", Conductivity = 0.09, Density = 350, SpecificHeat = 1000, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 3.5, EmbodiedCarbon = 0.3075, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net] [LCA, ICE Autoclaved Aerated Blocks (ACC's)]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Aerated concrete 500kg_m3", Category = @"Masonry", Conductivity = 0.12, Density = 500, SpecificHeat = 1000, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 3.5, EmbodiedCarbon = 0.3075, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net] [LCA, ICE Autoclaved Aerated Blocks (ACC's)]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Ytong block W PP 1.6-0.30", Category = @"Masonry", Conductivity = 0.08, Density = 300, SpecificHeat = 1000, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 3.5, EmbodiedCarbon = 0.31, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net] [LCA, ICE Autoclaved Aerated Blocks (ACC's)]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Poroton Plan-T10", Category = @"Masonry", Conductivity = 0.1, Density = 650, SpecificHeat = 1000, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 3, EmbodiedCarbon = 0.23, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net] [LCA, ICE General Common Brick]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Rigid foam  EPS 035", Category = @"Insulation", Conductivity = 0.035, Density = 30, SpecificHeat = 1500, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 101.5, EmbodiedCarbon = 3.48, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net] [LCA, ICE Polyurethane Rigid Foam]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Rigid foam PUR no coating", Category = @"Insulation", Conductivity = 0.03, Density = 30, SpecificHeat = 1400, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 101.5, EmbodiedCarbon = 3.48, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net] [LCA, ICE Polyurethane Rigid Foam]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Rigid foam PUR alu coating", Category = @"Insulation", Conductivity = 0.025, Density = 30, SpecificHeat = 1400, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 101.5, EmbodiedCarbon = 3.48, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net] [LCA, ICE Polyurethane Rigid Foam]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Rigid foam PUR fleece coating", Category = @"Insulation", Conductivity = 0.028, Density = 30, SpecificHeat = 1400, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 101.5, EmbodiedCarbon = 3.48, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net] [LCA, ICE Polyurethane Rigid Foam]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Wood fiber insulating board", Category = @"Insulation", Conductivity = 0.042, Density = 160, SpecificHeat = 2100, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 45, EmbodiedCarbon = 1.86, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net] [LCA, ICE General Insulation]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Styrofoam", Category = @"Insulation", Conductivity = 0.04, Density = 20, SpecificHeat = 1500, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 101.5, EmbodiedCarbon = 3.48, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net] No data found" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Vacuum insulation panel Variotec", Category = @"Insulation", Conductivity = 0.007, Density = 205, SpecificHeat = 900, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 45, EmbodiedCarbon = 1.86, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net] [LCA, ICE, General Insulation]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Wood wool board 15mm", Category = @"Timber", Conductivity = 0.09, Density = 570, SpecificHeat = 2100, ThermalEmittance = 0.9, SolarAbsorptance = 0.7, VisibleAbsorptance = 0.7, EmbodiedEnergy = 20, EmbodiedCarbon = 0.98, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net] [LCA, ICE, Woodwool (Board)]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Wood wool board 25mm", Category = @"Timber", Conductivity = 0.09, Density = 460, SpecificHeat = 2100, ThermalEmittance = 0.9, SolarAbsorptance = 0.7, VisibleAbsorptance = 0.7, EmbodiedEnergy = 20, EmbodiedCarbon = 0.98, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net] [LCA, ICE, Woodwool (Board)]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Wood wool board 35mm", Category = @"Timber", Conductivity = 0.09, Density = 415, SpecificHeat = 2100, ThermalEmittance = 0.9, SolarAbsorptance = 0.7, VisibleAbsorptance = 0.7, EmbodiedEnergy = 20, EmbodiedCarbon = 0.98, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net][LCA, ICE, Woodwool (Board)]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Wood wool board 50mm", Category = @"Timber", Conductivity = 0.09, Density = 390, SpecificHeat = 2100, ThermalEmittance = 0.9, SolarAbsorptance = 0.7, VisibleAbsorptance = 0.7, EmbodiedEnergy = 20, EmbodiedCarbon = 0.98, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net] [LCA, ICE, Woodwool (Board)]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Light adobe NF 700", Category = @"Masonry", Conductivity = 0.21, Density = 700, SpecificHeat = 1200, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 3, EmbodiedCarbon = 0.23, Cost = 0, Comment = @"U-Wert.net [LCA, ICE General (Simple Clay Baked Products)" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Light adobe NF 1200", Category = @"Masonry", Conductivity = 0.47, Density = 1200, SpecificHeat = 1200, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 3, EmbodiedCarbon = 0.23, Cost = 0, Comment = @"U-Wert.net [LCA, ICE General (Simple Clay Baked Products)" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Light adobe NF 1800", Category = @"Masonry", Conductivity = 0.91, Density = 1800, SpecificHeat = 1200, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 3, EmbodiedCarbon = 0.23, Cost = 0, Comment = @"U-Wert.net [LCA, ICE General (Simple Clay Baked Products)" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Shale", Category = @"Masonry", Conductivity = 2.2, Density = 2400, SpecificHeat = 760, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 0.03, EmbodiedCarbon = 0.002, Cost = 0, Comment = @"U-Wert.net [LCA, ICE Shale]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Clinker brick", Category = @"Masonry", Conductivity = 0.96, Density = 2000, SpecificHeat = 1000, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 3, EmbodiedCarbon = 0.23, Cost = 0, Comment = @"U-Wert.net [LCA, ICE General Common Bricks]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Ytong block W PP 2-0.35", Category = @"Masonry", Conductivity = 0.09, Density = 350, SpecificHeat = 1000, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 3.5, EmbodiedCarbon = 0.31, Cost = 0, Comment = @"U-Wert.net [LCA, ICE Autoclaved Aerated Blocks (AAC's)]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Ytong block W PP 2-0.40", Category = @"Masonry", Conductivity = 0.1, Density = 400, SpecificHeat = 1000, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 3.5, EmbodiedCarbon = 0.31, Cost = 0, Comment = @"U-Wert.net [LCA, ICE Autoclaved Aerated Blocks (AAC's)]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Ytong block W PP 4-0.50", Category = @"Masonry", Conductivity = 0.12, Density = 500, SpecificHeat = 1000, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 3.5, EmbodiedCarbon = 0.31, Cost = 0, Comment = @"U-Wert.net [LCA, ICE Autoclaved Aerated Blocks (AAC's)]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Ytong block W PP 4-0.55", Category = @"Masonry", Conductivity = 0.14, Density = 550, SpecificHeat = 1000, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 3.5, EmbodiedCarbon = 0.31, Cost = 0, Comment = @"U-Wert.net [LCA, ICE Autoclaved Aerated Blocks (AAC's)]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Ytong block W PP 4-0.60", Category = @"Masonry", Conductivity = 0.16, Density = 600, SpecificHeat = 1000, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 3.5, EmbodiedCarbon = 0.31, Cost = 0, Comment = @"U-Wert.net [LCA, ICE Autoclaved Aerated Blocks (AAC's)]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Ytong block W PP 6-0.65", Category = @"Masonry", Conductivity = 0.18, Density = 650, SpecificHeat = 1000, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 3.5, EmbodiedCarbon = 0.31, Cost = 0, Comment = @"U-Wert.net [LCA, ICE Autoclaved Aerated Blocks (AAC's)]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Poroton T12", Category = @"Masonry", Conductivity = 0.12, Density = 650, SpecificHeat = 1000, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 3, EmbodiedCarbon = 0.23, Cost = 0, Comment = @"U-Wert.net [LCA, ICE General Common Bricks]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Cork", Category = @"Insulation", Conductivity = 0.05, Density = 160, SpecificHeat = 1800, ThermalEmittance = 0.9, SolarAbsorptance = 0.78, VisibleAbsorptance = 0.78, EmbodiedEnergy = 4, EmbodiedCarbon = 0.19, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net][ThermalEmittance SolarAbsorptance VisibleAbsorptance: DesignBuilderv3] [LCA, ICE Cork]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Ytong Multipor DAA ds", Category = @"Insulation", Conductivity = 0.047, Density = 115, SpecificHeat = 1300, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 45, EmbodiedCarbon = 1.86, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net] [LCA, ICE General Insulation]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Ytong Multipor WI WTR DI", Category = @"Insulation", Conductivity = 0.042, Density = 90, SpecificHeat = 1300, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 45, EmbodiedCarbon = 1.86, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net] [LCA, ICE General Insulation]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Ytong Multipor WAP", Category = @"Insulation", Conductivity = 0.045, Density = 110, SpecificHeat = 1300, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 45, EmbodiedCarbon = 1.86, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net] [LCA, ICE General Insulation]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Foam glass", Category = @"Insulation", Conductivity = 0.056, Density = 130, SpecificHeat = 750, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 27, EmbodiedCarbon = 0, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net] [LCA, ICE, Celular Glass]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Reed", Category = @"Insulation", Conductivity = 0.065, Density = 225, SpecificHeat = 1200, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 0.24, EmbodiedCarbon = 0.01, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net][ LCA, ICE, Straw]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Vacuum insulation panel Vacupor  NT-B2-S", Category = @"Insulation", Conductivity = 0.007, Density = 190, SpecificHeat = 1050, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 45, EmbodiedCarbon = 1.86, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net] [LCA, ICE General Insulation]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Stainless Steel", Category = @"Metal", Conductivity = 45, Density = 7800, SpecificHeat = 480, ThermalEmittance = 0.1, SolarAbsorptance = 0.4, VisibleAbsorptance = 0.4, EmbodiedEnergy = 56.7, EmbodiedCarbon = 6.15, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net] [ LCA ICE, Stainless Steel]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Steel", Category = @"Metal", Conductivity = 45, Density = 7800, SpecificHeat = 480, ThermalEmittance = 0.1, SolarAbsorptance = 0.4, VisibleAbsorptance = 0.4, EmbodiedEnergy = 20.1, EmbodiedCarbon = 1.46, Cost = 0, Comment = @"[lambda  rho c: U-Wert.net] [ LCA ICE, General Steel ]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Rammed Earth", Category = @"Masonry", Conductivity = 0.75, Density = 1730, SpecificHeat = 880, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 0, EmbodiedCarbon = 0, Cost = 0, Comment = @" [lambda  rho c: U-Wert.net] [LCA, ICE Mud] [LCA, ICE, Single Clay Brick]" });


            //double check EE values
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"GypsumFibreBoard", Category = @"Boards", Conductivity = 0.32, Density = 1000, SpecificHeat = 1100, ThermalEmittance = 0.9, SolarAbsorptance = 0.7, VisibleAbsorptance = 0.7, EmbodiedEnergy = 45, EmbodiedCarbon = 1.86, Cost = 0, Comment = @"[lambda  rho c: Saint-Gobain Rigips][LCA  ICE (0.31fos + 0.41bio-embodied cabon emissions)]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Cross Laminated Timber", Category = @"Timber", Conductivity = 0.13, Density = 500, SpecificHeat = 1600, ThermalEmittance = 0.9, SolarAbsorptance = 0.7, VisibleAbsorptance = 0.7, EmbodiedEnergy = 10, EmbodiedCarbon = 0.71, Cost = 0, Comment = @"[lambda  rho c: dataholz.com][LCA  ICE (0.31fos + 0.41bio-embodied cabon emissions)]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Plaster", Category = @"Screed", Conductivity = 1.0, Density = 2000, SpecificHeat = 1130, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 1.33, EmbodiedCarbon = 0.221, Cost = 0, Comment = @"[lambda  rho c: dataholz.com] [ LCA ICE, Mortar (1:3 cement:sand mix) ]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Mineral Wool", Category = @"Insulation", Conductivity = 0.041, Density = 155, SpecificHeat = 1130, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 0, EmbodiedCarbon = 0, Cost = 0, Comment = @"[lambda  rho c: dataholz.com]" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"XPS Board",  Category = "Insulation",  Conductivity = 0.034,  Density = 35,  SpecificHeat = 1400,  ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 87.4,  EmbodiedCarbon = 2.8,  Cost = 0.0,  Comment = "" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Sand-Lime Brick", Category = "Masonry", Conductivity = 0.56, Density = 1200, SpecificHeat = 1000, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 0, EmbodiedCarbon = 0, Cost = 0, Comment = "" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Bonded chippings", Category = @"Screed", Conductivity = 0.7, Density = 1800, SpecificHeat = 1000, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 0, EmbodiedCarbon = 0, Cost = 0, Comment = "" });
            Library.OpaqueMaterials.Add(new OpaqueMaterial() { Name = @"Impact sound insulation", Category = "Insulation", Conductivity = 0.035, Density = 120, SpecificHeat = 1030, ThermalEmittance = 0.9, SolarAbsorptance = 0.6, VisibleAbsorptance = 0.6, EmbodiedEnergy = 0, EmbodiedCarbon = 0, Cost = 0.0, Comment = "" });

            #endregion



            //Basic wall
            OpaqueConstruction.QuickConstruction("120mmInsulation 200mmConcrete", ConstructionTypes.Facade, new string[] { "XPS Board", "General Concrete" }, new double[] { 0.12, 0.20 }, "Concrete", "", ref Library);
            //Basic roof
            OpaqueConstruction.QuickConstruction("300mmInsulation 200mmConcrete", ConstructionTypes.Facade, new string[] { "XPS Board", "General Concrete" }, new double[] { 0.30, 0.20 }, "Concrete", "", ref Library);
            //Basic floor
            OpaqueConstruction.QuickConstruction("200mmConcrete", ConstructionTypes.InteriorFloor, new string[] { "General Concrete" }, new double[] { 0.20 }, "Concrete", "", ref Library);
            //Basic partition
            OpaqueConstruction.QuickConstruction("115mmSandLimeBrick", ConstructionTypes.Partition, new string[] { "Plaster", "Sand-Lime Brick", "Plaster" }, new double[] { 0.005, 0.08, 0.08 }, "Concrete", "", ref Library);
            //Basic ground
            OpaqueConstruction.QuickConstruction("300mmConcrete 80mmInsulation 80mmScreed", ConstructionTypes.Partition, new string[] { "General Concrete", "XPS Board", "Cement screed" }, new double[] { 0.3, 0.115, 0.005 }, "Concrete", "", ref Library);


            //Solid wood constructions
            OpaqueConstruction.QuickConstruction("300mmInsulation 94mmSolidWood 24mmGypsum", ConstructionTypes.Facade, new string[] { "Medium density fiberboard", "Wood fiber insulating board", "Cross Laminated Timber", "Wood fiber insulating board", "GypsumFibreBoard" }, new double[] { 0.015, 0.3 , 0.094, 0.08, 0.0245 },"Timber", "dataholz.com", ref Library);
            OpaqueConstruction.QuickConstruction("120mmInsulation 78mmSolidWood 13mmGypsum", ConstructionTypes.Facade, new string[] { "Plaster", "Mineral Wool", "Cross Laminated Timber",  "GypsumFibreBoard" }, new double[] { 0.004, 0.12, 0.078, 0.013 }, "Timber", "dataholz.com", ref Library);
            OpaqueConstruction.QuickConstruction("160mmInsulation 94mmSolidWood", ConstructionTypes.Facade, new string[] { "Mineral Wool", "Mineral Wool", "Cross Laminated Timber" }, new double[] { 0.08, 0.08, 0.094 }, "Timber", "dataholz.com", ref Library);
            OpaqueConstruction.QuickConstruction("160mmInsulation 94mmSolidWood", ConstructionTypes.Facade, new string[] { "Mineral Wool", "Mineral Wool", "Cross Laminated Timber" }, new double[] { 0.08, 0.08, 0.094 }, "Timber", "dataholz.com", ref Library);

            OpaqueConstruction.QuickConstruction("12mmGypsum 78mmSolidWood 12mmGypsum", ConstructionTypes.Partition, new string[] { "GypsumFibreBoard", "Cross Laminated Timber", "GypsumFibreBoard" }, new double[] { 0.012, 0.78, 0.012 }, "Timber", "dataholz.com", ref Library);
            OpaqueConstruction.QuickConstruction("78mmSolidWood", ConstructionTypes.Partition, new string[] { "Cross Laminated Timber" }, new double[] {  0.78  }, "Timber", "dataholz.com", ref Library);

            OpaqueConstruction.QuickConstruction("150mmScreedWithImpactSoundInsulation 140mmSolidWood", ConstructionTypes.InteriorFloor, new string[] { "Cross Laminated Timber", "Bonded chippings", "Impact sound insulation" , "Cement screed" }, new double[] { 0.14, 0.06, 0.03, 0.06 }, "Timber", "dataholz.com, gdmnxn02-00", ref Library);



            //List of premade basic glazing materials/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


            GlazingMaterial gm1 = new GlazingMaterial()
            {
                Name = "Generic Clear Glass 6mm",
                Type = "Uncoated",
                Conductivity = 0.9,
                Density = 2500,
                EmbodiedEnergy = 15,
                EmbodiedCarbon = 0.85,
                Cost = 0.0,
                Comment = "",
                SolarTransmittance = 0.68,
                SolarReflectanceFront = 0.09,
                SolarReflectanceBack = 0.10,
                VisibleTransmittance = 0.81,
                VisibleReflectanceFront = 0.11,
                VisibleReflectanceBack = 0.12,
                IRTransmittance = 0.00,
                IREmissivityFront = 0.84,
                IREmissivityBack = 0.20
            };
            Library.Add(gm1);
                        
            //List of premade basic glazing constructions/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

            //Basic double glazing
            Layer<WindowMaterialBase> go1 = new Layer<WindowMaterialBase>(0.006, gm1);
            Layer<WindowMaterialBase> go2 = new Layer<WindowMaterialBase>(0.0013, Library.GasMaterials.Single(o=>o.Name == "ARGON"));

            GlazingConstruction gc1 = new GlazingConstruction();

            gc1.Layers.Add(go1);
            gc1.Layers.Add(go2);
            gc1.Layers.Add(go1);
            gc1.Name = "DblClear Air 6_13_6";
            gc1.Type = GlazingConstructionTypes.Double;// "Double";

            Library.Add( gc1);




            #region schedules

            //--------------------------------------------------------------------------------schedules


            YearSchedule.QuickSchedule("occBedroom", new double[] { 1, 1, 1, 1, 1, 1, 0.8, 0.6, 0.4, 0.4, 0.4, 0.6, 0.8, 0.6, 0.4, 0.4, 0.6, 0.8, 0.8, 0.8, 0.8, 1, 1, 1 },  "Residential" , "SIA Merkblatt 2024", ref Library);
            YearSchedule.QuickSchedule("equipBedroom", new double[] { 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.5, 1, 0.5, 0.5, 0.5, 1, 1, 0.5, 0.5, 0.5, 1, 1, 1, 1, 0.5, 0.5, 0.5, 0.1 }, "Residential" , "SIA Merkblatt 2024", ref Library);
            YearSchedule.QuickSchedule("lightsBedroom", new double[] { 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0 }, "Residential", "based on SIA Merkblatt 2024 Occ Schedule", ref Library);


            YearSchedule.QuickSchedule("occKitchen", new double[] { 0, 0, 0, 0, 0, 0, 0.4, 0.8, 0.4, 0, 0, 0.4, 0.8, 0.4, 0, 0, 0.4, 1, 0.6, 0.4, 0, 0, 0, 0 }, "Residential" , "SIA Merkblatt 2024", ref Library);
            YearSchedule.QuickSchedule("equipKitchen", new double[] { 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.4, 0.8, 0.4, 0.2, 0.2, 0.4, 1, 0.4, 0.2, 0.2, 0.4, 1, 0.4, 0.2, 0.2, 0.2, 0.2, 0.2 }, "Residential",  "SIA Merkblatt 2024", ref Library);
            YearSchedule.QuickSchedule("lightsKitchen", new double[] { 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0 }, "Residential", "based on SIA Merkblatt 2024 Occ Schedule", ref Library);


            YearSchedule.QuickSchedule("occOffice", new double[] { 0, 0, 0, 0, 0, 0, 0, 0.2, 0.4, 0.6, 0.8, 0.8, 0.4, 0.6, 0.8, 0.8, 0.4, 0.2, 0, 0, 0, 0, 0, 0 }, new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, "Office","SIA Merkblatt 2024", ref Library);
            YearSchedule.QuickSchedule("equipOffice", new double[] { 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.2, 0.4, 0.6, 0.8, 0.8, 0.4, 0.6, 0.8, 0.8, 0.4, 0.2, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1 }, new double[] { 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1 } , "Office", "SIA Merkblatt 2024", ref Library);
            YearSchedule.QuickSchedule("lightsOffice", new double[] { 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 }, new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, "Office", "based on SIA Merkblatt 2024 Occ Schedule", ref Library);
 

            YearSchedule.QuickSchedule("occMeetingRoom", new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.6, 1, 0.4, 0, 0, 0.6, 1, 0.4, 0, 0, 0, 0, 0, 0, 0 }, new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, "Office",  "SIA Merkblatt 2024", ref Library);
            YearSchedule.QuickSchedule("equipMeetingRoom", new double[] { 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.2, 0.4, 0.6, 0.8, 0.8, 0.4, 0.6, 0.8, 0.8, 0.4, 0.2, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1 }, new double[] { 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1 }, "Office", "SIA Merkblatt 2024", ref Library);
            YearSchedule.QuickSchedule("lightsMeetingRoom", new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 }, new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, "Office", "based on SIA Merkblatt 2024 Occ Schedule", ref Library);


            YearSchedule.QuickSchedule("occLibrary", new double[] { 0, 0, 0, 0, 0, 0, 0, 0.2, 0.6, 1, 1, 0.2, 0.2, 1, 1, 0.6, 0.2, 0, 0, 0, 0, 0, 0, 0 }, "Education", "SIA Merkblatt 2024", ref Library);
            YearSchedule.QuickSchedule("equipLibrary", new double[] { 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.2, 0.6, 1, 1, 0.2, 0.2, 1, 1, 0.6, 0.4, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1 }, "Education", "SIA Merkblatt 2024", ref Library);
            YearSchedule.QuickSchedule("lightsLibrary", new double[] { 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 }, "Education", "based on SIA Merkblatt 2024 Occ Schedule", ref Library);
 

            YearSchedule.QuickSchedule("occLectureHall", new double[] { 0, 0, 0, 0, 0, 0, 0, 0.2, 0.6, 1, 1, 0.2, 0.2, 1, 1, 0.6, 0.2, 0, 0, 0, 0, 0, 0, 0 }, new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, "Education", "SIA Merkblatt 2024", ref Library);
            YearSchedule.QuickSchedule("equipLectureHall", new double[] { 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.2, 0.6, 1, 1, 0.2, 0.2, 1, 1, 0.6, 0.4, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1 }, new double[] { 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1 }, "Education", "SIA Merkblatt 2024", ref Library);
            YearSchedule.QuickSchedule("lightsLectureHall", new double[] { 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 }, new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, "Education", "based on SIA Merkblatt 2024 Occ Schedule", ref Library);


            YearSchedule.QuickSchedule("occSuperMarket", new double[] { 0, 0, 0, 0, 0, 0, 0, 0.2, 0.4, 0.4, 0.4, 0.6, 0.6, 0.6, 0.4, 0.4, 0.6, 0.8, 0.6, 0, 0, 0, 0, 0 }, "Commercial", "SIA Merkblatt 2024", ref Library);
            YearSchedule.QuickSchedule("equipSuperMarket", new double[] { 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.1, 0.1, 0.1, 0.1, 0.1 }, "Commercial", "SIA Merkblatt 2024", ref Library);
            YearSchedule.QuickSchedule("lightsSuperMarket", new double[] { 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 }, "Commercial", "based on SIA Merkblatt 2024 Occ Schedule", ref Library);


            YearSchedule.QuickSchedule("occShopping", new double[] { 0, 0, 0, 0, 0, 0, 0, 0.2, 0.4, 0.4, 0.4, 0.6, 0.6, 0.6, 0.4, 0.4, 0.6, 0.8, 0.6, 0, 0, 0, 0, 0 }, "Commercial", "SIA Merkblatt 2024", ref Library);
            YearSchedule.QuickSchedule("equipShopping", new double[] { 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.1, 0.1, 0.1, 0.1, 0.1 }, "Commercial", "SIA Merkblatt 2024", ref Library);
            YearSchedule.QuickSchedule("lightsShopping", new double[] { 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 }, "Commercial", "based on SIA Merkblatt 2024 Occ Schedule", ref Library);




            Random r = new Random();
            var Values = new double[8760];
            for (int i = 0; i < 8760; i++) { Values[i] = (double)r.Next(1, 100) / 100.0; }

            Library.Add(new ScheduleArray() { Name = "RandomBehavior", Category = "Random", Values = Values });
            //Library.ArraySchedules.Add(new ScheduleArray() { Name = "RandomBehavior2", Category = "Random", Values = Values });


            #endregion


            Library.Add(new ZoneLoad() { Name = "BedroomLoads", PeopleDensity = 1.0 / 40.0, IlluminanceTarget = 200, LightingPowerDensity = 9.5, EquipmentPowerDensity = 2, OccupancySchedule = "occBedroom", EquipmentAvailibilitySchedule = "equipBedroom", LightsAvailibilitySchedule = "lightsBedroom", Category = "Residential" ,DataSource = "SIA Merkblatt 2024" });
            Library.Add(new ZoneLoad() { Name = "KitchenLoads", PeopleDensity = 1.0 / 5.0, IlluminanceTarget = 500, LightingPowerDensity = 17, EquipmentPowerDensity = 40, OccupancySchedule = "occKitchen", EquipmentAvailibilitySchedule = "equipKitchen", LightsAvailibilitySchedule = "lightsKitchen", Category = "Residential" ,DataSource = "SIA Merkblatt 2024" });
            Library.Add(new ZoneLoad() { Name = "SingleOfficeLoads", PeopleDensity = 1.0 / 14.0, IlluminanceTarget = 500, LightingPowerDensity = 16, EquipmentPowerDensity = 7, OccupancySchedule = "occOffice", EquipmentAvailibilitySchedule = "equipOffice", LightsAvailibilitySchedule = "lightsOffice", Category = "Office", DataSource = "SIA Merkblatt 2024" });
            Library.Add(new ZoneLoad() { Name = "MeetingRoomLoads", PeopleDensity = 1.0 / 3.0, IlluminanceTarget = 500, LightingPowerDensity = 16, EquipmentPowerDensity = 2, OccupancySchedule = "occMeetingRoom", EquipmentAvailibilitySchedule = "equipMeetingRoom", LightsAvailibilitySchedule = "lightsMeetingRoom", Category = "Office", DataSource = "SIA Merkblatt 2024" });

            Library.Add(new ZoneConditioning() { Name = "BedroomHeatingCoolingMechVent", HeatingSetpoint = 19, CoolingSetpoint = 26,  MechVentIsOn = true, MinFreshAirPerson = 2.5, MinFreshAirArea = 0.3, Category = "Residential" });
            Library.Add(new ZoneConditioning() { Name = "KitchenHeatingCoolingMechVent", HeatingSetpoint = 20, CoolingSetpoint = 26, MechVentIsOn = true, MinFreshAirPerson = 3.9, MinFreshAirArea = 0.9, Category = "Residential" });
            Library.Add(new ZoneConditioning() { Name = "OfficeHeatingCoolingMechVent", HeatingSetpoint = 20, CoolingSetpoint = 26, MechVentIsOn = true, MinFreshAirPerson = 2.5, MinFreshAirArea = 0.3, Category = "Office" });
            Library.Add(new ZoneConditioning() { Name = "MeetingRoomHeatingCoolingMechVent", HeatingSetpoint = 20, CoolingSetpoint = 26, MechVentIsOn = true, MinFreshAirPerson = 3.8, MinFreshAirArea = 0.3, Category = "Office" });
            Library.Add(new ZoneConditioning() { Name = "LectureHallHeatingCoolingMechVent", HeatingSetpoint = 20, CoolingSetpoint = 26, MechVentIsOn = true, MinFreshAirPerson = 3.8, MinFreshAirArea = 0.3, Category = "Education" });

            Library.Add(new ZoneVentilation() { Name = "PoorAirTightness", InfiltrationIsOn = true,  InfiltrationAch = 1.2, InfiltrationModel = InfiltrationModel.Wind, Category = "Infiltration" });
            Library.Add(new ZoneVentilation() { Name = "ModerateAirTightness", InfiltrationIsOn = true, InfiltrationAch = 0.5, InfiltrationModel = InfiltrationModel.Wind, Category = "Infiltration" });
            Library.Add(new ZoneVentilation() { Name = "GoodAirTightness", InfiltrationIsOn = true, InfiltrationAch = 0.15, InfiltrationModel = InfiltrationModel.Wind, Category = "Infiltration" });


            Library.Add(new DomHotWater() { Name = "House" , FlowRatePerFloorArea =0.03 , WaterSchedule = "AllOn" , WaterTemperatureInlet = 10, WaterSupplyTemperature = 60 });


            Library.Add(new ZoneConstruction() { Name = "SolidWood", RoofConstruction = "300mmInsulation 94mmSolidWood 24mmGypsum", FacadeConstruction = "300mmInsulation 94mmSolidWood 24mmGypsum", SlabConstruction = "150mmScreedWithImpactSoundInsulation 140mmSolidWood", GroundConstruction = "120mmInsulation 200mmConcrete", PartitionConstruction = "12mmGypsum 78mmSolidWood 12mmGypsum" });


            #region SimpleGlass

            Library.Add(new GlazingConstructionSimple("SinglePaneClr", "Single pane", "Standard clear", 0.913, 5.894, 0.905));
            Library.Add(new GlazingConstructionSimple("DoublePaneClr", "Double pane", "Standard clear", 0.812, 2.720, 0.764));
            Library.Add(new GlazingConstructionSimple("DoublePaneLoEe2", "Double pane", "Low emissivity coating on layer e2", 0.444, 1.493, 0.373));
            Library.Add(new GlazingConstructionSimple("DoublePaneLoEe3", "Double pane", "Low emissivity coating on layer e3", 0.769, 1.507, 0.649));
            Library.Add(new GlazingConstructionSimple("TriplePaneLoE", "Triple pane", "Low emissivity coating on layer e2 and e5", 0.661, 0.785, 0.764));


            #endregion


            #region ZoneDefTemplates



            Library.Add(new WindowSettings());



            Library.Add(new ZoneDefinition());


            var fl1 = Library.Add(new FloorDefinition() { BuildingID ="Default", Type =  "INT", Name= "Default_INT"});
            var fl2 = Library.Add(new FloorDefinition() { BuildingID = "Default", Type = "B"  , Name= "Default_B"  });
            var fl3 = Library.Add(new FloorDefinition() { BuildingID = "Default", Type = "G"  , Name= "Default_G"  });
            var fl4 = Library.Add(new FloorDefinition() { BuildingID = "Default", Type = "R"  , Name= "Default_R" });



            BuildingDefinition b = new BuildingDefinition { Name = "Default" };
            b.Floors.Add(fl1);
            b.Floors.Add(fl2);
            b.Floors.Add(fl3);
            b.Floors.Add(fl4);

            Library.Add(b);


            #endregion

            ////--------------------------------------------------------------------------------serialization test

            //string xml = SerializeDeserialize.Serialize(Library);

            //SerializeDeserialize.Deserialize(xml, typeof(ArchsimLib.Lib));

            ////--------------------------------------------------------------------------------out

            return Library;
        }
示例#38
0
 private Library Convert(SokobanLibrary xmlLib)
 {
     var lib = new Library();
     foreach (var puzzle in xmlLib.Puzzles)
     {
         var map = puzzle.Maps.FirstOrDefault();
         if (map != null && map.Row != null)
         {
             lib.Add(Convert(puzzle, map));
         }
     }
     return lib;
 }
示例#39
0
        /// <summary>
        /// Initialized the test terrain library.
        /// </summary>
        private void CreateTestLibrary()
        {
            testLibrary = new Library();
            Descriptor desc = new Descriptor();
            desc.Name = "Small Scale Landscape";
            desc.Description = "Terrain library suitable for small scale maps.";
            testLibrary.Descriptor = desc;

            Terrain t = new Terrain();
            desc = new Descriptor();
            t.Descriptor = desc;
            desc.Name = "Grasslands";
            desc.Description = "Grasslands or open plains";
            t.SurfaceColor = new ColorARGB("#ffb5cf7c");
            testLibrary.Add(t);

            t = new Terrain();
            desc = new Descriptor();
            t.Descriptor = desc;
            desc.Name = "Forest";
            desc.Description = "Forested area populated with mostly deciduous trees";
            t.SurfaceColor = new ColorARGB("#ff879959");
            testLibrary.Add(t);
            PngImage surfaceFeature = new PngImage(File.ReadAllBytes(@"Assets\set00-trn01-ftr01.png"));
            t.AddSurfaceFeature(new Terrain.SurfaceFeature(surfaceFeature));

            t = new Terrain();
            desc = new Descriptor();
            t.Descriptor = desc;
            desc.Name = "Dense Forest";
            desc.Description = "Dense, old growth forest with deciduous trees";
            t.SurfaceColor = new ColorARGB("#ff556332");
            testLibrary.Add(t);
            surfaceFeature = new PngImage(File.ReadAllBytes(@"Assets\DenseForest-001.png"));
            t.AddSurfaceFeature(new Terrain.SurfaceFeature(surfaceFeature));

            t = new Terrain();
            desc = new Descriptor();
            t.Descriptor = desc;
            desc.Name = "Mountains";
            desc.Description = "Mountains with little or, no vegitation.";
            t.SurfaceColor = new ColorARGB("#ffa67048");
            testLibrary.Add(t);

            t = new Terrain();
            desc = new Descriptor();
            t.Descriptor = desc;
            desc.Name = "Marsh";
            desc.Description = "Temperate climate marsh or moors.";
            t.SurfaceColor = new ColorARGB("#ff8bd4cb");
            testLibrary.Add(t);
            surfaceFeature = new PngImage(File.ReadAllBytes(@"Assets\set00-trn03-ftr01.png"));
            t.AddSurfaceFeature(new Terrain.SurfaceFeature(surfaceFeature));

            t = new Terrain();
            desc = new Descriptor();
            t.Descriptor = desc;
            desc.Name = "Desert";
            desc.Description = "Sandy desert with little or, no vegitation.";
            t.SurfaceColor = new ColorARGB("#ffd1c0a1");
            testLibrary.Add(t);

            t = new Terrain();
            desc = new Descriptor();
            t.Descriptor = desc;
            desc.Name = "Water";
            desc.Description = "Water. Typically shallow with a depth of less than 50 meters";
            t.SurfaceColor = new ColorARGB("#ff6ccdf1");
            testLibrary.Add(t);

            t = new Terrain();
            desc = new Descriptor();
            t.Descriptor = desc;
            desc.Name = "Deep Water";
            desc.Description = "Water, typically with a depth of more than 50 meters";
            t.SurfaceColor = new ColorARGB("#ff308aab");
            testLibrary.Add(t);
        }