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; } }
/// <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; } }