Very Strange Temperature Conversion

I ran my own tests and came up with the same answer as @lucamanzoni
Accessing the values straight through the API yields correct values, however…

import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *

clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *

element = UnwrapElement(IN[0])
param_name = IN[1]

param = element.LookupParameter(param_name)
param_dut = param.DisplayUnitType
param_ut = param.Definition.UnitType
valid_dut = UnitUtils.GetValidDisplayUnits(param_ut)

dut_f = DisplayUnitType.DUT_FAHRENHEIT
dut_c = DisplayUnitType.DUT_CELSIUS
dut_k = DisplayUnitType.DUT_KELVIN
dut_r = DisplayUnitType.DUT_RANKINE

val_internal = param.AsDouble()
val_convert_f = UnitUtils.ConvertFromInternalUnits(val_internal, dut_f)
val_convert_c = UnitUtils.ConvertFromInternalUnits(val_internal, dut_c)
val_convert_k = UnitUtils.ConvertFromInternalUnits(val_internal, dut_k)
val_convert_r = UnitUtils.ConvertFromInternalUnits(val_internal, dut_r)

OUT = [[dut_f, val_convert_f],
	   [dut_c, val_convert_c],
	   [dut_k, val_convert_k],
	   [dut_r, val_convert_r],
	   ['INTERNAL', val_internal]]

Internal Units.dyn (6.9 KB)

This is showing that the value is stored internally in Kelvin, which aligns with what is stated on Autodesk’s website. None of the values for valid display unit types (fahrenheit, celsius, kelvin, rankine) are anywhere near the ~1.3 value.

2 Likes