示例#1
0
        /// <summary>
        /// On Click Generate Button
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnGenerate_Click(object sender, EventArgs e)
        {
            if (chkBoxFlipFilter.Checked)
            {
                var result = MessageBox.Show("Flip Filter is ticked, this will show only excluded items, Do you want to continue", "Warning", MessageBoxButtons.YesNo);
                if (result == System.Windows.Forms.DialogResult.No)
                {
                    return;
                }
            }
            btnGenerate.Enabled = false;



            if (_cobieWorker == null)
            {
                _cobieWorker = new COBieLiteWorker();
                _cobieWorker.Worker.ProgressChanged    += WorkerProgressChanged;
                _cobieWorker.Worker.RunWorkerCompleted += WorkerCompleted;
            }
            //get Excel File Type
            ExportTypeEnum excelType = GetExcelType();
            //set filters
            RoleFilter filterRoles = SetRoles();

            if (!chkBoxNoFilter.Checked)
            {
                _assetfilters.ApplyRoleFilters(filterRoles);
                _assetfilters.FlipResult = chkBoxFlipFilter.Checked;
            }

            //set parameters
            var args = new Params {
                ModelFile    = txtPath.Text,
                TemplateFile = txtTemplate.Text,
                Roles        = filterRoles,
                ExportType   = excelType,
                FlipFilter   = chkBoxFlipFilter.Checked,
                OpenExcel    = chkBoxOpenFile.Checked,
                FilterOff    = chkBoxNoFilter.Checked,
                ExtId        = chkBoxIds.Checked ? EntityIdentifierMode.IfcEntityLabels : EntityIdentifierMode.GloballyUniqueIds,
                SysMode      = SetSystemMode(),
                Filter       = chkBoxNoFilter.Checked ? new OutPutFilters() : _assetfilters,
                ConfigFile   = ConfigFile.FullName,
                Log          = chkBoxLog.Checked,
            };

            //run worker
            _cobieWorker.Run(args);
        }
示例#2
0
        public void IfcToCoBieLiteUkTest()
        {
            const string ifcTestFile = @"Lakeside_Restaurant.ifc";

            using (var m = IfcStore.Open(ifcTestFile))
            {
                var jsonFile   = Path.ChangeExtension(ifcTestFile, "json");
                var facilities = new List <Facility>();

                var rolefilters           = new OutPutFilters();
                const RoleFilter reqRoles = RoleFilter.Unknown; //RoleFilter.Architectural |  RoleFilter.Mechanical | RoleFilter.Electrical | RoleFilter.FireProtection | RoleFilter.Plumbing;
                rolefilters.ApplyRoleFilters(reqRoles);

                var ifcToCoBieLiteUkExchanger = new IfcToCOBieLiteUkExchanger(m, facilities, null, rolefilters);
                facilities = ifcToCoBieLiteUkExchanger.Convert();

                foreach (var facilityType in facilities)
                {
                    var log = new StringWriter();
                    facilityType.ValidateUK2012(log, true);

                    string msg;
                    facilityType.WriteJson(jsonFile, true);
                    facilityType.WriteCobie("..\\..\\Lakeside_Restaurant.xlsx", out msg, rolefilters, "UK2012", true);


                    break;
                }
            }
        }
        /// <summary>
        /// On Click Generate Button
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnGenerate_Click(object sender, EventArgs e)
        {
            if (chkBoxFlipFilter.Checked)
            {
                // ReSharper disable LocalizableElement
                var result = MessageBox.Show(
                    "Flip Filter is ticked, this will show only excluded items, Do you want to continue",
                    "Warning", MessageBoxButtons.YesNo);
                if (result == DialogResult.No)
                {
                    return;
                }
            }
            btnGenerate.Enabled = false;

            //get required type of COBie
            COBieType cobieType;

            Enum.TryParse <COBieType>(cmBoxCOBieType.SelectedValue.ToString(), out cobieType);

            if (cobieType == COBieType.COBieLiteUK)
            {
                if (_cobieWorker == null || !(_cobieWorker is CobieLiteConverter))
                {
                    _cobieWorker = new CobieLiteConverter();
                    _cobieWorker.Worker.ProgressChanged    += WorkerProgressChanged;
                    _cobieWorker.Worker.RunWorkerCompleted += WorkerCompleted;
                }
            }
            else if (cobieType == COBieType.COBieExpress)
            {
                if (_cobieWorker == null || !(_cobieWorker is CobieExpressConverter))
                {
                    _cobieWorker = new CobieExpressConverter();
                    _cobieWorker.Worker.ProgressChanged    += WorkerProgressChanged;
                    _cobieWorker.Worker.RunWorkerCompleted += WorkerCompleted;
                }
            }
            else
            {
                throw new ArgumentException("Unknown COBieType requested");
            }
            //get Excel File Type
            var excelType = GetExcelType();
            //set filters
            var filterRoles = SetRoles();

            if (!chkBoxNoFilter.Checked)
            {
                _assetfilters.ApplyRoleFilters(filterRoles);
                _assetfilters.FlipResult = chkBoxFlipFilter.Checked;
            }

            //set parameters
            var conversionSettings = new CobieConversionParams
            {
                Source         = txtPath.Text,
                OutputFileName = Path.ChangeExtension(txtPath.Text, "Cobie"),
                TemplateFile   = txtTemplate.Text,
                ExportFormat   = excelType,
                ExtId          = chkBoxIds.Checked ? EntityIdentifierMode.IfcEntityLabels : EntityIdentifierMode.GloballyUniqueIds,
                SysMode        = SetSystemMode(),
                Filter         = chkBoxNoFilter.Checked ? new OutPutFilters() : _assetfilters,
                ConfigFile     = ConfigFile.FullName,
                Log            = chkBoxLog.Checked
            };

            //run worker
            _cobieWorker.Run(conversionSettings);
        }
示例#4
0
        public void IfcToCoBieLiteUkTest()
        {
            using (var m = new XbimModel())
            {
                const string ifcTestFile = @"Lakeside_Restaurant.ifc";
                var xbimTestFile = Path.ChangeExtension(ifcTestFile, "xbim");
                var jsonFile = Path.ChangeExtension(ifcTestFile, "json");
                m.CreateFrom(ifcTestFile, xbimTestFile, null, true, true);
                var facilities = new List<Facility>();

                OutPutFilters rolefilters = new OutPutFilters();
                RoleFilter reqRoles = RoleFilter.Unknown; //RoleFilter.Architectural |  RoleFilter.Mechanical | RoleFilter.Electrical | RoleFilter.FireProtection | RoleFilter.Plumbing;
                rolefilters.ApplyRoleFilters(reqRoles);

                var ifcToCoBieLiteUkExchanger = new IfcToCOBieLiteUkExchanger(m, facilities, null, rolefilters);
                facilities = ifcToCoBieLiteUkExchanger.Convert();

                foreach (var facilityType in facilities)
                {
                    var log = new StringWriter();
                    facilityType.ValidateUK2012(log, true);

                    string msg;
                    facilityType.WriteJson(jsonFile, true);
                    facilityType.WriteCobie("..\\..\\Lakeside_Restaurant.xlsx", out msg, rolefilters, "UK2012", true);


                    break;
                }
            }
        }