using Autodesk.Revit.ApplicationServices;
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Application = Autodesk.Revit.ApplicationServices.Application;
namespace LevelDll
{
[Transaction(TransactionMode.Manual)]
public class Command : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
Document revitDoc = commandData.Application.ActiveUIDocument.Document; //取得文档
UIDocument uidoc = commandData.Application.ActiveUIDocument;
UIApplication uiApp = commandData.Application;
Application revitApp = commandData.Application.Application; //取得应用程序
//获得文档的单位信息
Units units = revitDoc.GetUnits();
//获得长度的单位展示形式
FormatOptions format1 = units.GetFormatOptions(UnitType.UT_Length);
//获得当前的单位类型
IList < UnitSymbolType > tt= format1.GetValidUnitSymbols();
int value = 0;
//判断单位类型
if (tt[1].ToString() =="UST_M")
{
//英寸转换成米
double d = UnitUtils.Convert( value, DisplayUnitType.DUT_DECIMAL_FEET, DisplayUnitType.DUT_METERS);
}
if (tt[1].ToString() == "UST_CM")
{
//英寸转成厘米
double d = UnitUtils.Convert(value, DisplayUnitType.DUT_DECIMAL_FEET, DisplayUnitType.DUT_CENTIMETERS);
}
if (tt[1].ToString() == "UST_MM")
{
//英寸转成毫米
double d = UnitUtils.Convert(value, DisplayUnitType.DUT_DECIMAL_FEET, DisplayUnitType.DUT_MILLIMETERS);
}
return Result.Succeeded;
}
}
}