查看: 2328|回复: 1

Revit Api 二次开发多国语言版的 Revit 语言版本判断

[复制链接]

发表于 2011-3-19 11:44:29 | 显示全部楼层 |阅读模式
也是老帖,日期2010.11.27,首发新浪博客,作者本人。

这个是上周我学习中的结果之一,首先想到的是开发者大会上说二次开发者可以把自己的二次开发产品放到欧德克提供的网站上去给全世界的人卖,那么这个对Revit语言版本是肯定要判断的,判断后对UI进行相关的初始化别到时候给外国人出一堆中国字(还有可能是乱码),所以就放到博客中,希望对看到的人有帮助。

VB.NET版本

全局变量定义

Public RevitApplication As Autodesk.Revit.UI.UIApplication

Public Function Execute(ByVal ExternalCommandData AsAutodesk.Revit.UI.ExternalCommandData,
    ByRefmessage As String, ByVal ElementSet AsAutodesk.Revit.DB.ElementSet)
    AsAutodesk.Revit.UI.Result ImplementsAutodesk.Revit.UI.IExternalCommand.Execute

RevitApplication = ExternalCommandData.dData.Application

End Function

Private Sub CheckRevitLanguageType()’私有检测Revit语言版本过程
       Dim LanguageType AsAutodesk.Revit.ApplicationServices.LanguageType
       LanguageType = RevitApplication .Application.Language
       '中文版_简体
       If LanguageType =ApplicationServices.LanguageType.Chinese_Simplified Then
       '此处将UI初始化为中文版_简体
       '英文_美
       ElseIf LanguageType = ApplicationServices.LanguageType.English_USAThen
       '此处将UI初始化为英文_美
       Else
       End If
End Sub


C#版本

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using Autodesk.Revit;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using Autodesk.Revit.ApplicationServices;

namespace CheckRevitLanguageType
{
   [Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
   [Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
   [Autodesk.Revit.Attributes.Journaling(Autodesk.Revit.Attributes.JournalingMode.NoCommandData)]
  
    public classCommand : Autodesk.Revit.UI.IExternalCommand
    {
       public static Autodesk.Revit.UI.UIApplication UIApplication;//Revit.ApplicationServices.Application   'Revit.Application
       public static Autodesk.Revit.DB.Document RevitDocument;
       public Autodesk.Revit.ApplicationServices.LanguageTypeLanguageType;

       public Autodesk.Revit.UI.Result Execute(ExternalCommandDatacommandData,
            ref string message, Autodesk.Revit.DB.ElementSet elements)
       {
            UIApplication = commandData.Application;
          RevitDocument =commandData.Application.ActiveUIDocument.Document;
            LanguageType = UIApplication.Application.Language;
            if (LanguageType==        Autodesk.Revit.ApplicationServices.LanguageType.Chinese_Simplified)
            {
                MessageBox.Show("中文_简体");
            }
            else if (LanguageType ==Autodesk.Revit.ApplicationServices.LanguageType.English_USA)
            {
                MessageBox.Show("英文_美国");
            }
            else
            {
                MessageBox.Show("其它");
            }
            return Autodesk.Revit.UI.Result.Succeeded;
       }  
    }
}


回复

使用道具 举报

发表于 2011-3-20 10:43:49 | 显示全部楼层
这都是2010以前的语法,revit 2011以后语法简化了很多!

点评

老帖而已,仅作参考。高手可飘过  发表于 2011-3-20 12:35
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则