private string GetSerializedProject(string storageFilePath, string centralModelPath)
        {
            var project           = GetProject(storageFilePath);
            var projectAttributes = project.DataObject.Attributes;
            var revitattrsMap     = new Dictionary <string, string>();

            if (_revitProjectAttrsMap != null)
            {
                foreach (var pilotAttr in projectAttributes)
                {
                    var revitAttrs = _revitProjectAttrsMap.Where(m => m.Value.Equals(pilotAttr.Key));
                    foreach (var revitAttr in revitAttrs.Where(revitAttr => revitAttr.Key != null))
                    {
                        revitattrsMap[revitAttr.Key] = pilotAttr.Value.ToString();
                    }
                }
            }

            var revitProject = new RevitProject()
            {
                CentralModelPath    = centralModelPath,
                ProjectInfoAttrsMap = revitattrsMap
            };

            var serializedProject = JsonConvert.SerializeObject(revitProject);

            return(serializedProject);
        }
        public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            if (values.Length == 2)
            {
                RevitProject selectedProject = values[0] as RevitProject;
                ObservableCollection <RevitProject> items = values[1] as ObservableCollection <RevitProject>;

                if (null != selectedProject && null != items)
                {
                    var filteredItems = from item in items where item.ProjectNumber == selectedProject.ProjectNumber select item;
                    if (filteredItems.Count() > 0)
                    {
                        projects = new ObservableCollection <RevitProject>(filteredItems.ToList());
                    }
                }
            }
            return(projects);
        }
Exemple #3
0
        private void FileDrop(string[] files)
        {
            try
            {
                foreach (string rvtFile in files)
                {
                    string fileExt = System.IO.Path.GetExtension(rvtFile);
                    if (fileExt != ".rvt")
                    {
                        continue;
                    }

                    RevitProject rvtProject = new RevitProject();
                    rvtProject.FilePath = rvtFile;

                    rvtProject.FileName = System.IO.Path.GetFileName(rvtProject.FilePath);
                    string projectNumber = "00.00000.00";
                    string projectName   = "Undefined";
                    RevitProject.GetProjectInfo(rvtProject.FilePath, out projectNumber, out projectName);

                    rvtProject.ProjectNumber = projectNumber;
                    rvtProject.ProjectName   = projectName;

                    rvtProject.LinkedBy   = Environment.UserName;
                    rvtProject.LastLinked = DateTime.Now;
                    rvtProject.LinkedDate = DateTime.Now;

                    viewModel.Projects.Add(rvtProject);

                    RevitProject selectedProject = viewModel.SelectedProject;
                    viewModel.SelectedProject = null;
                    viewModel.SelectedProject = selectedProject;
                }
            }
            catch (Exception ex)
            {
                string message = ex.Message;
            }
        }