Revit SDK のサンプルのうちいくつかが、英語版 Revit でないと動作しないようになっている。
Language Independent (言語独立) ではないのだ。 ブログで報告もされている。
たとえば
FamilyCategory.Name.Contains("Window")
などとカテゴリ名を英語で"Window"とすると、日本語 Revit ではエラーになる。
FamilyCategory.Name.Contains("窓")
このように漢字で"窓"とするとエラーはおきない。
でもこのような日本語専用=言語依存のコードはまずい。いつ変わるかもしれないので Language Independent 無国籍なコードに書き換えるべきだ。
FamilyCategory.Id.Value == (int)BuiltInCategory.OST_Windows
とすればいいようだ。
CategoryNameMap cnm = category.SubCategories;
if (cnm.Contains("Frame/Mullion"))
...
これはどうすればいい?