Example #1
0
        void XplorerMainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            XbimModel model = XbimModel.CreateTemporaryModel();

            model.Initialise();
            ModelProvider.ObjectInstance = model;
            ModelProvider.Refresh();
        }
Example #2
0
        /// <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();
        }
Example #4
0
        /// <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();
            }
        }