RevitAPI

【RevitAPI】UnitUtilsでフィートとミリを変換

Revitが持っている長さの単位ミリではなくフィートです。

なのでRevitAPIで長さのパラメータを扱うとき、ミリとフィートの換算がいちいち必要になります。

具体的には以下の作業です。

  • Revitからミリでデータを書き出すときは304.8を掛ける
  • Revitにミリのデータを読み込むときは304.8で割る
ひえ~っ!めっちゃめんどくせーっ。。

と思っていたら、単位を変換してくれるUnitUtilsとかいうクラスがありました。

ここでは、フィートとミリの単位変換のサンプルソースコードを紹介します。

UnitUtilsクラスについて

単位をあれこれするときに有効なクラスです。

メンバーは静的メソッドしか持っていません。

ほんと、単位あれこれのためだけのクラスって感じですね。

UnitUtilsを使った単位変換

Microsoftのサンプルに摂氏と華氏を変換するものがあったので、おんなじように作ってみました。

→Microsoftの摂氏・華氏変換コードを確認する。

サンプルコード

SharpDevelopで「UnitConverter.cs」というクラスを追加してコーディングしました。

*クラスの追加方法は下記の記事にまとめています。

【RevitAPI】SharpDevelopでアイテム作成はじめに オリジナルでクラスやフォームを作成するときには、それに対応した新しいアイテムを作成することになります。 ここではその手...

以下、作成したソースコードを載せておきます。

using以降

using System;
using Autodesk.Revit.UI;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI.Selection;
using System.Collections.Generic;
using System.Linq;
  
namespace TestMacro
{
  /// <summary>
  /// Description of UnitConverter.
  /// </summary>
  public class UnitConverter
  {
    public static double FeetToMilli(double feet)
    {
      double milli = UnitUtils.Convert(feet, DisplayUnitType.DUT_DECIMAL_FEET, DisplayUnitType.DUT_MILLIMETERS);
      
      return milli;
    }
    
    public static double MilliToFeet(double milli)
    {
      double feet = UnitUtils.Convert(milli, DisplayUnitType.DUT_MILLIMETERS, DisplayUnitType.DUT_DECIMAL_FEET);
      
      return feet;
    }
  }
}

解説

フィートからミリへの変換ミリからフィートへの変換の静的クラスを作成しました。

それぞれのクラスでConvertメソッドを使っています。

Convertメソッド】

Convert(変換する数値, 変換前の単位, 変換後の単位)

 

変換前の単位変換後の単位DisplayUnitTypeの列挙型で指定します。

DisplayUnitType

  • フィートはDisplayUnitType.DUT_DECIMAL_FEET
  • ミリはDisplayUnitType.DUT_MILLIMETERS

という列挙子を指定します。

UnitUtilsまとめ

以上、UnitUtilsを使った単位変換クラスの紹介でした。

一度作ってしまえば、使いまわせるので便利っす!

 

C#初心者の僕が独学でお世話になった本
プログラミング初心者の僕がコーディング学習でお世話になった本

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください