Beispiel #1
0
        /// <summary>
        /// 模型预检查
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void doPreCheck(object sender, DoWorkEventArgs e)
        {
            DateTime before = System.DateTime.Now;



            String modelPath = _parentWindow.GetOpenedModelFileName();

            if (modelPath == null)
            {
                MessageBox.Show("请载入模型文件", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
                return;
            }
            String normSelector = GetSelectedNorm();

            if (normSelector.Equals(""))
            {
                MessageBox.Show("请选择规则", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
                return;
            }
            normFilter(normSelector);



            Dispatcher.BeginInvoke(new Action(delegate
            {
                HashSet <string> TargetIfcSet = GenerateIfcFromRules();
                PropertyExtract extractHelper = new PropertyExtract(_parentWindow.Model, _parentWindow.GetContext());


                //通过规则生成中间文件
                IFCFile file = extractHelper.getFilterIfcProperty(TargetIfcSet);
                List <ResultRow> resultRows = new List <ResultRow>();
                foreach (var rule in preRules)
                {
                    resultRows.Add(CheckSingleRule(file, rule));
                }
                showResultForPreCheck(resultRows);

                //生成结果赋值
                result = resultRows;

                //生成总体描述
                PreCheckReportInfo report = new PreCheckReportInfo(resultRows);
                ResultSummary.Text        = report.GenerateSummary();
            }));

            DateTime after = System.DateTime.Now;
            TimeSpan ts    = after.Subtract(before);

            CheckLog.Logger("[precheck时间]" + ts);
        }
Beispiel #2
0
        //导出模型数据
        private void getProperties()
        {
            IfcStore           curModel    = _parentWindow.Model;
            Xbim3DModelContext context     = _parentWindow.GetContext();
            PropertyExtract    extractTool = new PropertyExtract(curModel, context);

            //CheckLog.Logger(curModel.Instances.CountOf<IIfcProduct>().ToString());

            IFCFile fileProperties = extractTool.getAllIfcProperty();
            string  str            = JsonConvert.SerializeObject(fileProperties);

            CheckLog.Logger("[info]" + str);
        }