Exemple #1
0
 public MergeTests()
 {
     TaskParams = new MergeParams
     {
         OutputFileName = @"result.pdf"
     };
 }
Exemple #2
0
        public void Program_ParseArgs_WithStructParam_OK()
        {
            MergeParams options = Program.ParseArgs(new string[] { "--struct", "struct.md.xml", "result.md", "text1.md", "text2.md", "text3.md" });

            Assert.AreEqual("struct.md.xml", options.StructPath);
            Assert.AreEqual("result.md", options.ResultPath);
            CollectionAssert.AreEqual(new string[] { "text1.md", "text2.md", "text3.md" }, options.InputPaths);
        }
Exemple #3
0
        public ExecuteTaskResponse Process(MergeParams parameters)
        {
            if (parameters == null)
            {
                parameters = new MergeParams();
            }

            return(base.Process(parameters));
        }
        /// <summary>
        /// Generate a COBieWorkbook from ifc/xbim/xls files
        /// </summary>
        /// <param name="parameters">MergeParams</param>
        /// <returns>COBieWorkbook</returns>
        private COBieWorkbook GetWorkBook(MergeParams parameters)
        {
            string mainFile = parameters.ModelFile;
            string mainExt  = Path.GetExtension(mainFile).ToLower();

            COBieWorkbook workBook = null;

            if (mainExt == ".xls")
            {
                COBieXLSDeserialiser deSerialiser = new COBieXLSDeserialiser(mainFile);
                workBook = deSerialiser.Deserialise();
            }
            else if ((mainExt == ".ifc") || (mainExt == ".xbim"))
            {
                COBieBuilder builder = GenerateCOBieWorkBook(parameters);
                workBook = builder.Workbook;
            }
            return(workBook);
        }
Exemple #5
0
        /// <summary>
        ///     Process the task
        /// </summary>
        /// <returns></returns>
        public ExecuteTaskResponse Process()
        {
            var parameters = new MergeParams();

            return(base.Process(parameters));
        }
        /// <summary>
        /// Merge COBie data files
        /// </summary>
        /// <param name="parameters">MergeParams</param>
        /// <returns>Created file name</returns>
        private string MergeCOBieFiles(MergeParams parameters)
        {
            List <string> mergeList = new List <string>();

            mergeList.AddRange(parameters.MergeItemsList);
            string outputFile = string.Empty;

            if (mergeList.Count > 0)
            {
                Stopwatch timer = new Stopwatch();
                timer.Start();

                string mainFile = mergeList.First();
                mergeList.RemoveAt(0);

                if (!File.Exists(mainFile))
                {
                    LogBackground(String.Format("File {0} doesn't exist. cannot merge as main file not found", mainFile));
                    return(string.Empty);
                }

                outputFile           = Path.GetFileNameWithoutExtension(mainFile) + "-COBieMergeToIFC.ifc";
                outputFile           = Path.GetDirectoryName(mainFile) + "\\" + outputFile;
                parameters.ModelFile = mainFile;
                using (COBieXBimSerialiser xBimSerialiser = new COBieXBimSerialiser(outputFile, _worker.ReportProgress))
                {
                    LogBackground(String.Format("Reading main file {0}....", Path.GetFileName(mainFile)));
                    COBieWorkbook mainWorkBook = GetWorkBook(parameters);

                    LogBackground(String.Format("Writing main file {0} to {1}....", Path.GetFileName(mainFile), Path.GetFileName(outputFile)));
                    xBimSerialiser.Create(mainWorkBook);
                    xBimSerialiser.MergeGeometryOnly = GeoOnlyChkBox.Checked;
                    foreach (string mergeFile in mergeList)
                    {
                        if (File.Exists(mergeFile))
                        {
                            string mergExt = Path.GetExtension(mergeFile).ToLower();
                            LogBackground(String.Format("Reading file to merge {0}....", Path.GetFileName(mergeFile)));
                            parameters.ModelFile = mergeFile;
                            COBieWorkbook mergeWorkBook = GetWorkBook(parameters);
                            LogBackground(String.Format("Writing merge file {0} into {1}....", Path.GetFileName(mergeFile), Path.GetFileName(outputFile)));
                            xBimSerialiser.Merge(mergeWorkBook);
                        }
                        else
                        {
                            LogBackground(String.Format("File {0} doesn't exist. skipping merge on this file", mergeFile));
                        }
                    }

                    timer.Stop();
                    LogBackground(String.Format("Time to generate XBim COBie data = {0} seconds", timer.Elapsed.TotalSeconds.ToString("F3")));


                    LogBackground(String.Format("Creating file {0}....", Path.GetFileName(outputFile)));

                    xBimSerialiser.Save();
                }
                LogBackground(String.Format("Finished Generating {0}", outputFile));
            }
            return(outputFile);
        }
 /// <summary>
 /// Generate a COBieWorkbook from ifc/xbim/xls files
 /// </summary>
 /// <param name="parameters">MergeParams</param>
 /// <returns>COBieWorkbook</returns>
 private COBieWorkbook GetWorkBook(MergeParams parameters)
 {
     string mainFile = parameters.ModelFile;
     string mainExt = Path.GetExtension(mainFile).ToLower();
             
     COBieWorkbook workBook = null;
     if (mainExt == ".xls")
     {
         COBieXLSDeserialiser deSerialiser = new COBieXLSDeserialiser(mainFile);
         workBook = deSerialiser.Deserialise();
     }
     else if ((mainExt == ".ifc") || (mainExt == ".xbim"))
     {
         COBieBuilder builder = GenerateCOBieWorkBook(parameters);
         workBook = builder.Workbook;
     }
     return workBook;
 }
        /// <summary>
        /// Merge COBie data files
        /// </summary>
        /// <param name="parameters">MergeParams</param>
        /// <returns>Created file name</returns>
        private string MergeCOBieFiles(MergeParams parameters)
        {
            List<string> mergeList = new List<string>();
            mergeList.AddRange(parameters.MergeItemsList);
            string outputFile = string.Empty;
            if (mergeList.Count > 0)
            {
                Stopwatch timer = new Stopwatch();
                timer.Start();

                string mainFile = mergeList.First();
                mergeList.RemoveAt(0);

                if (!File.Exists(mainFile))
                {
                    LogBackground(String.Format("File {0} doesn't exist. cannot merge as main file not found", mainFile));
                    return string.Empty;
                }

                outputFile = Path.GetFileNameWithoutExtension(mainFile) + "-COBieMergeToIFC.ifc";
                outputFile = Path.GetDirectoryName(mainFile) + "\\" + outputFile;
                parameters.ModelFile = mainFile;
                using (COBieXBimSerialiser xBimSerialiser = new COBieXBimSerialiser(outputFile, _worker.ReportProgress))
                {
                    
                    LogBackground(String.Format("Reading main file {0}....", Path.GetFileName(mainFile)));
                    COBieWorkbook mainWorkBook = GetWorkBook(parameters);

                    LogBackground(String.Format("Writing main file {0} to {1}....", Path.GetFileName(mainFile), Path.GetFileName(outputFile)));
                    xBimSerialiser.Create(mainWorkBook);
                    xBimSerialiser.MergeGeometryOnly = GeoOnlyChkBox.Checked;
                    foreach (string mergeFile in mergeList)
                    {
                        if (File.Exists(mergeFile))
                        {
                            string mergExt = Path.GetExtension(mergeFile).ToLower();
                            LogBackground(String.Format("Reading file to merge {0}....", Path.GetFileName(mergeFile)));
                            parameters.ModelFile = mergeFile;
                            COBieWorkbook mergeWorkBook = GetWorkBook(parameters);
                            LogBackground(String.Format("Writing merge file {0} into {1}....", Path.GetFileName(mergeFile), Path.GetFileName(outputFile)));
                            xBimSerialiser.Merge(mergeWorkBook);

                        }
                        else
                        {
                            LogBackground(String.Format("File {0} doesn't exist. skipping merge on this file", mergeFile));
                        }
                    }

                    timer.Stop();
                    LogBackground(String.Format("Time to generate XBim COBie data = {0} seconds", timer.Elapsed.TotalSeconds.ToString("F3")));


                    LogBackground(String.Format("Creating file {0}....", Path.GetFileName(outputFile)));

                    xBimSerialiser.Save();
                }
                LogBackground(String.Format("Finished Generating {0}", outputFile));
            }
            return outputFile;
        }