void XplorerMainWindow_Loaded(object sender, RoutedEventArgs e) { XbimModel model = XbimModel.CreateTemporaryModel(); model.Initialise(); ModelProvider.ObjectInstance = model; ModelProvider.Refresh(); }
/// <summary> /// Creat the federated file /// </summary> /// <param name="file">FileInfo for the xbimf file</param> /// <param name="author">Author name</param> /// <param name="organisation">Orgsnisation Name</param> /// <param name="prjName">Project Name</param> public void Create(FileInfo file, string author, string organisation, string prjName = null) { FileNameXbimf = file; //_fedModel = XbimModel.CreateTemporaryModel(); _fedModel = XbimModel.CreateModel(file.FullName, XbimDBAccess.ReadWrite); _fedModel.Initialise(author, organisation, "xBIM", "xBIM Team", ""); //"" is version, but none to grab as yet using (var txn = _fedModel.BeginTransaction()) { _fedModel.IfcProject.Name = (prjName != null) ? prjName : string.Empty; _fedModel.Header = new IfcFileHeader(IfcFileHeader.HeaderCreationMode.InitWithXbimDefaults); txn.Commit(); } }
private void FederationFromDialogbox(OpenFileDialog dlg) { if (!dlg.FileNames.Any()) return; //use the first filename it's extension to decide which action should happen var s = Path.GetExtension(dlg.FileNames[0]); if (s == null) return; var firstExtension = s.ToLower(); XbimModel fedModel = null; switch (firstExtension) { case ".xbimf": if (dlg.FileNames.Length > 1) { var res = MessageBox.Show("Multiple files selected, open " + dlg.FileNames[0] + "?", "Cannot open multiple Xbim files", MessageBoxButton.OKCancel, MessageBoxImage.Warning); if (res == MessageBoxResult.Cancel) return; } fedModel = new XbimModel(); fedModel.Open(dlg.FileNames[0], XbimDBAccess.ReadWrite); break; case ".ifc": case ".ifczip": case ".ifcxml": //create temp file as a placeholder for the temperory xbim file var filePath = Path.GetTempFileName(); filePath = Path.ChangeExtension(filePath, "xbimf"); fedModel = XbimModel.CreateModel(filePath); fedModel.Initialise("Default Author", "Default Organization"); using (var txn = fedModel.BeginTransaction()) { fedModel.IfcProject.Name = "Default Project Name"; txn.Commit(); } var informUser = true; for (var i = 0; i < dlg.FileNames.Length; i++) { var fileName = dlg.FileNames[i]; var builder = new XbimReferencedModelViewModel { Name = fileName, OrganisationName = "OrganisationName " + i, OrganisationRole = "Undefined" }; var buildRes = false; Exception exception = null; try { buildRes = builder.TryBuild(fedModel); } catch (Exception ex) { //usually an EsentDatabaseSharingViolationException, user needs to close db first exception = ex; } if (buildRes || !informUser) continue; var msg = exception == null ? "" : "\r\nMessage: " + exception.Message; var res = MessageBox.Show(fileName + " couldn't be opened." + msg + "\r\nShow this message again?", "Failed to open a file", MessageBoxButton.YesNoCancel, MessageBoxImage.Error); if (res == MessageBoxResult.No) informUser = false; else if (res == MessageBoxResult.Cancel) { fedModel = null; break; } } break; } if (fedModel == null) return; CloseAndDeleteTemporaryFiles(); ModelProvider.ObjectInstance = fedModel; ModelProvider.Refresh(); }