Ejemplo n.º 1
0
        public static int ToLCID(this Autodesk.Revit.ApplicationServices.LanguageType value)
        {
            switch (value)
            {
            case Autodesk.Revit.ApplicationServices.LanguageType.English_USA:   return(1033);

            case Autodesk.Revit.ApplicationServices.LanguageType.German:        return(1031);

            case Autodesk.Revit.ApplicationServices.LanguageType.Spanish:       return(1034);

            case Autodesk.Revit.ApplicationServices.LanguageType.French:        return(1036);

            case Autodesk.Revit.ApplicationServices.LanguageType.Italian:       return(1040);

            case Autodesk.Revit.ApplicationServices.LanguageType.Dutch:         return(1043);

            case Autodesk.Revit.ApplicationServices.LanguageType.Chinese_Simplified: return(2052);

            case Autodesk.Revit.ApplicationServices.LanguageType.Chinese_Traditional: return(1028);

            case Autodesk.Revit.ApplicationServices.LanguageType.Japanese:      return(1041);

            case Autodesk.Revit.ApplicationServices.LanguageType.Korean:        return(1042);

            case Autodesk.Revit.ApplicationServices.LanguageType.Russian:       return(1049);

            case Autodesk.Revit.ApplicationServices.LanguageType.Czech:         return(1029);

            case Autodesk.Revit.ApplicationServices.LanguageType.Polish:        return(1045);

            case Autodesk.Revit.ApplicationServices.LanguageType.Hungarian:     return(1038);

            case Autodesk.Revit.ApplicationServices.LanguageType.Brazilian_Portuguese: return(1046);

#if REVIT_2018
            case Autodesk.Revit.ApplicationServices.LanguageType.English_GB: return(2057);
#endif
            }

            return(1033);
        }
Ejemplo n.º 2
0
        static string GenericAssetName(Autodesk.Revit.ApplicationServices.LanguageType language)
        {
            switch (language)
            {
            case Autodesk.Revit.ApplicationServices.LanguageType.English_USA:           return("Generic");

            case Autodesk.Revit.ApplicationServices.LanguageType.German:                return("Generisch");

            case Autodesk.Revit.ApplicationServices.LanguageType.Spanish:               return("Genérico");

            case Autodesk.Revit.ApplicationServices.LanguageType.French:                return("Générique");

            case Autodesk.Revit.ApplicationServices.LanguageType.Italian:               return("Generico");

            case Autodesk.Revit.ApplicationServices.LanguageType.Dutch:                 return("Allgemeine");

            case Autodesk.Revit.ApplicationServices.LanguageType.Chinese_Simplified:    return("常规");

            case Autodesk.Revit.ApplicationServices.LanguageType.Chinese_Traditional:   return("常規");

            case Autodesk.Revit.ApplicationServices.LanguageType.Japanese:              return("一般");

            case Autodesk.Revit.ApplicationServices.LanguageType.Korean:                return("일반");

            case Autodesk.Revit.ApplicationServices.LanguageType.Russian:               return("общий");

            case Autodesk.Revit.ApplicationServices.LanguageType.Czech:                 return("Obecný");

            case Autodesk.Revit.ApplicationServices.LanguageType.Polish:                return("Rodzajowy");

            case Autodesk.Revit.ApplicationServices.LanguageType.Hungarian:             return("Generikus");

            case Autodesk.Revit.ApplicationServices.LanguageType.Brazilian_Portuguese:  return("Genérico");

        #if REVIT_2018
            case Autodesk.Revit.ApplicationServices.LanguageType.English_GB:            return("Generic");
        #endif
            }

            return(null);
        }
Ejemplo n.º 3
0
        static string GetFamilyTemplateFileName(ElementId categoryId, Autodesk.Revit.ApplicationServices.LanguageType language)
        {
            if (categoryId.TryGetBuiltInCategory(out var builtInCategory))
            {
                if (builtInCategory == BuiltInCategory.OST_Mass)
                {
                    switch (language)
                    {
                    case Autodesk.Revit.ApplicationServices.LanguageType.English_USA:           return(@"Conceptual Mass\Metric Mass");

                    case Autodesk.Revit.ApplicationServices.LanguageType.German:                return(@"Entwurfskörper\M_Körper");

                    case Autodesk.Revit.ApplicationServices.LanguageType.Spanish:               return(@"Masas conceptuales\Masa métrica");

                    case Autodesk.Revit.ApplicationServices.LanguageType.French:                return(@"Volume conceptuel\Volume métrique");

                    case Autodesk.Revit.ApplicationServices.LanguageType.Italian:               return(@"Massa concettuale\Massa metrica");

                    case Autodesk.Revit.ApplicationServices.LanguageType.Chinese_Simplified:    return(@"概念体量\公制体量");

                    case Autodesk.Revit.ApplicationServices.LanguageType.Chinese_Traditional:   return(@"概念量體\公制量體");

                    case Autodesk.Revit.ApplicationServices.LanguageType.Japanese:              return(@"コンセプト マス\マス(メートル単位)");

                    case Autodesk.Revit.ApplicationServices.LanguageType.Korean:                return(@"개념 질량\미터법 질량");

                    case Autodesk.Revit.ApplicationServices.LanguageType.Russian:               return(@"Концептуальный формообразующий элемент\Метрическая система, формообразующий элемент");

                    case Autodesk.Revit.ApplicationServices.LanguageType.Czech:                 return(null);

                    case Autodesk.Revit.ApplicationServices.LanguageType.Polish:                return(@"Bryła koncepcyjna\Bryła (metryczna)");

                    case Autodesk.Revit.ApplicationServices.LanguageType.Hungarian:             return(null);

                    case Autodesk.Revit.ApplicationServices.LanguageType.Brazilian_Portuguese:  return(@"Massa conceitual\Massa métrica");

#if REVIT_2018
                    case Autodesk.Revit.ApplicationServices.LanguageType.English_GB:            return(@"Conceptual Mass\Mass");
#endif
                    }

                    return(null);
                }
            }

            switch (language)
            {
            case Autodesk.Revit.ApplicationServices.LanguageType.English_USA:         return(@"Metric Generic Model");

            case Autodesk.Revit.ApplicationServices.LanguageType.German:              return(@"Allgemeines Modell");

            case Autodesk.Revit.ApplicationServices.LanguageType.Spanish:             return(@"Modelo genérico métrico");

            case Autodesk.Revit.ApplicationServices.LanguageType.French:              return(@"Modèle générique métrique");

            case Autodesk.Revit.ApplicationServices.LanguageType.Italian:             return(@"Modello generico metrico");

            case Autodesk.Revit.ApplicationServices.LanguageType.Chinese_Simplified:  return(@"公制常规模型");

            case Autodesk.Revit.ApplicationServices.LanguageType.Chinese_Traditional: return(@"公制常规模型");

            case Autodesk.Revit.ApplicationServices.LanguageType.Japanese:            return(@"一般モデル(メートル単位)");

            case Autodesk.Revit.ApplicationServices.LanguageType.Korean:              return(@"미터법 일반 모델");

            case Autodesk.Revit.ApplicationServices.LanguageType.Russian:             return(@"Метрическая система, типовая модель");

            case Autodesk.Revit.ApplicationServices.LanguageType.Czech:               return(@"Obecný model");

            case Autodesk.Revit.ApplicationServices.LanguageType.Polish:              return(@"Model ogólny (metryczny)");

            case Autodesk.Revit.ApplicationServices.LanguageType.Hungarian:           return(null);

            case Autodesk.Revit.ApplicationServices.LanguageType.Brazilian_Portuguese: return(@"Modelo genérico métrico");

#if REVIT_2018
            case Autodesk.Revit.ApplicationServices.LanguageType.English_GB:          return(@"Generic Model");
#endif
            }

            return(null);
        }
Ejemplo n.º 4
0
        static void CreateReportFile
        (
            string revitVersionName,
            string revitVersionBuild,
            string revitSubVersionNumber,
            string revitVersionNumber,
            Autodesk.Revit.ApplicationServices.ProductType revitProduct,
            Autodesk.Revit.ApplicationServices.LanguageType revitLanguage,
            ExternalApplicationArray loadedApplications,
            string reportFilePath,
            string logFile,
            IEnumerable <string> attachments
        )
        {
            attachments = attachments.Where(x => File.Exists(x)).ToArray();

            using (var zip = new FileStream(reportFilePath, FileMode.Create))
            {
                using (var archive = new ZipArchive(zip, ZipArchiveMode.Create))
                {
                    var now = DateTime.Now.ToString("yyyyMMddTHHmmssZ");

                    // Report.md
                    {
                        var Report = archive.CreateEntry($"{now}/Report.md");
                        using (var writer = new StreamWriter(Report.Open()))
                        {
                            writer.WriteLine($"# Rhino.Inside.Revit");

                            writer.WriteLine();
                            writer.WriteLine($"## Host");
                            writer.WriteLine($"- Environment.OSVersion: {Environment.OSVersion}");
                            writer.WriteLine($"  - SystemInformation.TerminalServerSession: {System.Windows.Forms.SystemInformation.TerminalServerSession}");
                            writer.WriteLine($"- Environment.Version: {CLRVersion}");
                            writer.WriteLine($"- Environment.MaxVersion: {CLRMaxVersion}");

                            writer.WriteLine($"- {revitVersionName}");
                            writer.WriteLine($"  - VersionBuild: {revitVersionBuild}");
#if REVIT_2019
                            writer.WriteLine($"  - SubVersionNumber: {revitSubVersionNumber}");
#else
                            writer.WriteLine($"  - VersionNumber: {revitVersionNumber}");
#endif
                            writer.WriteLine($"  - ProductType: {revitProduct}");
                            writer.WriteLine($"  - Language: {revitLanguage}");

                            var rhino = Addin.RhinoVersionInfo;
                            writer.WriteLine($"- Rhino: {rhino.ProductVersion} ({rhino.FileDescription})");
                            writer.WriteLine($"- Rhino.Inside Revit: {Addin.DisplayVersion}");

                            if (loadedApplications is object)
                            {
                                writer.WriteLine();
                                writer.WriteLine("## Addins");
                                writer.WriteLine();
                                writer.WriteLine("[Loaded Applications](Addins/LoadedApplications.md)  ");
                            }

                            writer.WriteLine();
                            writer.WriteLine("## Console");
                            writer.WriteLine();
                            writer.WriteLine("[Startup](Console/Startup.txt)  ");

                            if (attachments.Any())
                            {
                                writer.WriteLine();
                                writer.WriteLine("## Attachments");
                                writer.WriteLine();
                                foreach (var attachment in attachments)
                                {
                                    var attachmentName = Path.GetFileName(attachment);
                                    writer.WriteLine($"[{attachmentName}](Attachments/{attachmentName})  ");
                                }
                            }

                            if (File.Exists(logFile))
                            {
                                writer.WriteLine();
                                writer.WriteLine("## Log");
                                writer.WriteLine();

                                using (var log = new StreamReader(logFile))
                                {
                                    string line;
                                    while ((line = log.ReadLine()) != null)
                                    {
                                        writer.WriteLine(line);
                                    }
                                }
                            }
                        }
                    }

                    // Addins
                    if (loadedApplications is object)
                    {
                        var LoadedApplicationsCSV = archive.CreateEntry($"{now}/Addins/{now}.csv");
                        using (var writer = new StreamWriter(LoadedApplicationsCSV.Open()))
                        {
                            writer.WriteLine(@"""Company-Name"",""Product-Name"",""Product-Version"",""AddInType-FullName"",""Assembly-FullName"",""Assembly-Location""");

                            foreach (var application in loadedApplications)
                            {
                                var addinType   = application.GetType();
                                var versionInfo = File.Exists(addinType.Assembly.Location) ? FileVersionInfo.GetVersionInfo(addinType.Assembly.Location) : null;

                                string CompanyName       = (versionInfo?.CompanyName ?? string.Empty).Replace(@"""", @"""""");
                                string ProductName       = (versionInfo?.ProductName ?? string.Empty).Replace(@"""", @"""""");
                                string ProductVersion    = (versionInfo?.ProductVersion ?? string.Empty).Replace(@"""", @"""""");
                                string AddInTypeFullName = (addinType?.FullName ?? string.Empty).Replace(@"""", @"""""");
                                string AssemblyFullName  = (addinType?.Assembly.FullName ?? string.Empty).Replace(@"""", @"""""");
                                string AssemblyLocation  = (addinType?.Assembly.Location ?? string.Empty).Replace(@"""", @"""""");

                                writer.WriteLine($@"""{CompanyName}"",""{ProductName}"",""{ProductVersion}"",""{AddInTypeFullName}"",""{AssemblyFullName}"",""{AssemblyLocation}""");
                            }
                        }

                        var LoadedApplicationsMD = archive.CreateEntry($"{now}/Addins/LoadedApplications.md");
                        using (var writer = new StreamWriter(LoadedApplicationsMD.Open()))
                        {
                            writer.WriteLine($"# UIApplication.LoadedApplications");
                            writer.WriteLine();
                            writer.WriteLine($"> NOTE:  ");
                            writer.WriteLine($"> Applications listed in load order.  ");
                            writer.WriteLine($"> Same information in CSV format [here]({now}.csv).  ");
                            writer.WriteLine();

                            foreach (var application in loadedApplications)
                            {
                                var addinType = application.GetType();

                                writer.WriteLine($"1. **{addinType.FullName}**");
                                writer.WriteLine($"  - AssemblyFullName: {addinType.Assembly.FullName}");
                                writer.WriteLine($"  - AssemblyLocation: {addinType.Assembly.Location}");

                                var versionInfo = File.Exists(addinType.Assembly.Location) ? FileVersionInfo.GetVersionInfo(addinType.Assembly.Location) : null;
                                writer.WriteLine($"    - CompanyName: {versionInfo?.CompanyName}");
                                writer.WriteLine($"    - ProductName: {versionInfo?.ProductName}");
                                writer.WriteLine($"    - ProductVersion: {versionInfo?.ProductVersion}");
                                writer.WriteLine();
                            }
                        }

                        Settings.AddIns.GetSystemAddins(revitVersionNumber, out var systemAddins);
                        foreach (var addin in systemAddins)
                        {
                            CreateReportEntry(archive, $"{now}/Addins/System/{Path.GetFileName(addin)}", addin);
                        }

                        Settings.AddIns.GetInstalledAddins(revitVersionNumber, out var installedAddins);
                        foreach (var addin in installedAddins)
                        {
                            CreateReportEntry(archive, $"{now}/Addins/Installed/{Path.GetFileName(addin)}", addin);
                        }
                    }

                    // Console
                    {
                        if (Rhinoceros.StartupLog is string[] log && log.Length > 0)
                        {
                            var StartupTXT = archive.CreateEntry($"{now}/Console/Startup.txt");
                            using (var writer = new StreamWriter(StartupTXT.Open()))
                            {
                                foreach (var line in log)
                                {
                                    writer.WriteLine(line.Replace("\n", ""));
                                }
                            }
                        }
                    }

                    // Attachments
                    {
                        foreach (var attachement in attachments)
                        {
                            CreateReportEntry(archive, $"{now}/Attachments/{Path.GetFileName(attachement)}", attachement);
                        }
                    }
                }
            }
        }