0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Revitアドインを多言語対応させる

Posted at

はじめに

Autodesk App StoreなどでRevitアドインを公開する際、より多くの人にダウンロードしてもらうためには、日本語版だけでなく英語版を公開する必要があります。そこで、以下のシンプルなRevitアドインを例として、複数言語に対応させる方法を解説します。

本記事ではRevit2024/.NET Framework4.8を使用していますが、Revit2025/.NET 8でもやり方は同じです

App
using Autodesk.Revit.DB.Events;
using Autodesk.Revit.UI;
using Addin.Utils;

namespace Addin
{
    class App : IExternalApplication
    {
        public Result OnStartup(UIControlledApplication a)
        {
            var panel = AppUtils.AddPanel(a, "たぶ");
            panel.AddItem(AppUtils.CreateButton("ぼたん", "Addin.Commands.Hello", "つーるちっぷ", revit));
            return Result.Succeeded;
        }
    
        public Result OnShutdown(UIControlledApplication application)
        {
            return Result.Succeeded;
        }
    }
}
Command
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using Autodesk.Revit.ApplicationServices;

namespace Addin.Commands
{
    [Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
    public class Hello : IExternalCommand
    {
        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
        {
            var window = new Views.MaterialDesignWindow(commandData);
            window.ShowDialog();
            return Result.Succeeded;
        }
    }
}
View
<Window x:Class="Addin.Views.HelloWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Height="300" Width="500">
    <Grid>
        <TextBlock Text="こんにちは, Revit!" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="24"/>
    </Grid>
</Window>

リソースの追加

プロジェクトのプロパティの リソース を開き、このプロジェクトには既存のリソースファイルが... をクリックします。

image.png

以下のようにリソースが作成されるので、アクセス修飾子を Public に設定します。

image.png

ソリューションエクスプローラーの Properties を右クリックして 追加新しい項目新しい項目の追加 ウィンドウを開き、Resources.ja.resxというファイルを新規追加します。

ファイル名はResources.{ニュートラルカルチャ}.resxもしくはResources.{カルチャ}.resxとします。カルチャの種類は こちら を参考にしてください。

image.png

リソースエクスプローラーを開くと、Addin/Resourcesに「ニュートラル値」と「ja」の列が表示されているはずです。

image.png

CMD_NAME CMD_TOOLTIP TAB_NAME TXT_HELLO の4項目を追加して、「ニュートラル値」に英語の値を、「ja」に日本語の値をそれぞれ入力します。

image.png

Appの修正

先ほど作成したリソースをusing staticで参照して、ベタ打ちのタブ名、コマンド名、ツールチップをリソースに置き換えます。なお、「ja」が未入力の項目は「ニュートラル値」の値が参照されます。

App
using Autodesk.Revit.DB.Events;
using Autodesk.Revit.UI;
using Addin.Utils;
+ using static Addin.Properties.Resources;

namespace Addin
{
    class App : IExternalApplication
    {
        public Result OnStartup(UIControlledApplication a)
        {
+           var panel = AppUtils.AddPanel(a, PNL_NAME);
+           panel.AddItem(AppUtils.CreateButton(CMD_NAME, "Addin.Commands.Hello", CMD_TOOLTIP, revit));
            return Result.Succeeded;
        }
    
        public Result OnShutdown(UIControlledApplication application)
        {
            return Result.Succeeded;
        }
    }
}

Viewの修正

Appと同様にリソースを参照して、ベタ打ちのテキストをリソースに置き換えます。

View
<Window x:Class="Addin.Views.HelloWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+       xmlns:props ="clr-namespace:Addin.Properties"
        Height="300" Width="500">
    <Grid>
+       <TextBlock Text="{x:Static props:Resources.TXT_HELLO}" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="24"/>
    </Grid>
</Window>

ビルド

アプリケーションアセンブリ情報ニュートラル言語 を「なし」に設定してからアドインをビルドします。ビルドしたアドインを通常どおりRevitのアドインフォルダに配置します。
image.png

動作確認

まずは日本語版Revitを起動してアドインタブを開き、アドインのコマンドボタンとウィンドウが日本語になっていることを確認します。

image.png

続いて、コマンドプロンプトで以下のコマンドを実行し英語版Revitを起動します。

コマンドプロンプト
"C:\Program Files\Autodesk\Revit 2024\Revit.exe" /language ENU

通常、WPFアプリの言語はWindowsの言語設定に応じて切り替わりますが、Revitアドインの場合はRevitの言語設定に応じて切り替わります。

Add-Insタブを開くと、アドインのコマンドボタンとウィンドウが英語になっていることが分かります。

image.png

その他 多言語 Revit 環境での注意点

  • システムファミリ名やカテゴリ名はRevitの言語によって異なる
    TODO: 詳しく書く

参考リンク

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?