private void UpdateUiFromFilename()
        {
            UpdateCheckOpenExcel();
            var fileExt = Path.GetExtension(txtPath.Text);

            MapRefModelsRoles.Clear();
            if (string.IsNullOrEmpty(fileExt))
            {
                return;
            }
            if (fileExt.Equals(".xbimf", StringComparison.OrdinalIgnoreCase))
            {
                // this gets the federated model from an xbimf file
                using (var fedModel = new FederatedModel(new FileInfo(txtPath.Text)))
                {
                    if (fedModel.Model.IsFederation)
                    {
                        MapRefModelsRoles = fedModel.RefModelRoles.ToDictionary(m => new FileInfo(m.Key.Name),
                                                                                m => m.Value);
                    }
                    else
                    {
                        throw new XbimException(string.Format("Model is not Federated: {0}", txtPath.Text));
                    }
                }
            }
            rolesList.Enabled = !(
                fileExt.Equals(".xbimf", StringComparison.OrdinalIgnoreCase) ||
                fileExt.Equals(".json", StringComparison.OrdinalIgnoreCase) ||
                fileExt.Equals(".xml", StringComparison.OrdinalIgnoreCase) ||
                fileExt.Equals(".xls", StringComparison.OrdinalIgnoreCase) ||
                fileExt.Equals(".xlsx", StringComparison.OrdinalIgnoreCase)
                );
        }
        /// <summary>
        /// On Click Merge Filter Button
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnMergeFilter_Click(object sender, EventArgs e)
        {
            //set the defaults if not already set
            if (_assetfilters.DefaultsNotSet)
            {
                var dir = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory);
                _assetfilters.FillRolesFilterHolderFromDir(dir);
            }
            try
            {
                Cursor.Current = Cursors.WaitCursor;
                FilterDlg filterDlg;
                var       fileExt = Path.GetExtension(txtPath.Text);

                if (fileExt != null && fileExt.Equals(".xbimf", StringComparison.OrdinalIgnoreCase))
                {
                    var fedFilters = _assetfilters.SetFedModelFilter(MapRefModelsRoles);
                    filterDlg = new FilterDlg(_assetfilters, true, fedFilters);
                }
                else
                {
                    MapRefModelsRoles.Clear();
                    var roles = SetRoles();
                    _assetfilters.ApplyRoleFilters(roles);
                    filterDlg = new FilterDlg(_assetfilters, true);
                }
                filterDlg.ShowDialog();
            }
            finally
            {
                Cursor.Current = Cursors.Default;
            }
        }
Example #3
0
        /// <summary>
        /// On Click Browse Model File Button
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnBrowse_Click(object sender, EventArgs e)
        {
            OpenFileDialog dlg = new OpenFileDialog();

            dlg.Filter = "All XBim Files|*.ifc;*.ifcxml;*.ifczip;*.xbim;*.xbimf|IFC Files|*.ifc;*.ifcxml;*.ifczip|Xbim Files|*.xbim|Xbim Federated Files|*.xbimf|Excel Files|*.xls;*.xlsx|Json Files|*.json|Xml Files|*.xml"; //
            dlg.Title  = "Choose a source file";

            dlg.CheckFileExists = true;
            // Show open file dialog box
            if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                txtPath.Text = dlg.FileName;
                string fileExt = Path.GetExtension(txtPath.Text);
                MapRefModelsRoles.Clear();
                if (fileExt.Equals(".xbimf", StringComparison.OrdinalIgnoreCase))
                {
                    using (var fedModel = new FederatedModel(new FileInfo(txtPath.Text)))
                    {
                        if (fedModel.Model.IsFederation)
                        {
                            MapRefModelsRoles = fedModel.RefModelRoles.ToDictionary(m => new FileInfo(m.Key.DatabaseName), m => m.Value);
                        }
                        else
                        {
                            throw new XbimException(string.Format("Model is not Federated: {0}", fedModel.FileNameXbimf));
                        }
                    }
                }
                rolesList.Enabled = !(fileExt.Equals(".xbimf", StringComparison.OrdinalIgnoreCase) ||
                                      fileExt.Equals(".json", StringComparison.OrdinalIgnoreCase) ||
                                      fileExt.Equals(".xml", StringComparison.OrdinalIgnoreCase) ||
                                      fileExt.Equals(".xls", StringComparison.OrdinalIgnoreCase) ||
                                      fileExt.Equals(".xlsx", StringComparison.OrdinalIgnoreCase)
                                      );

                chkBoxOpenFile.Enabled = cmboxFiletype.Text.Equals("XLS", StringComparison.OrdinalIgnoreCase) || cmboxFiletype.Text.Equals("XLSX", StringComparison.OrdinalIgnoreCase);
                chkBoxOpenFile.Checked = chkBoxOpenFile.Enabled;
            }
        }