Revit MEP 2013 has the same problem as RME2012:
Is it really so difficult to fix this bug?
Solved! Go to Solution.
This may appear to be a bug due to the 'oddity' of the results, but it is actually a request for new functionality.
Revit always 'converts' temperatures based on their values, not based on their differences. This has an impact in how we deal with temperatures in formulae in families.
For example, 80°F - 55°F = 25°F
When converting from °F to °C, the formula is:
°C = (5 / 9) * (°F - 32)
However, if you were to convert the value of 25°F, you would end up with the value -3.9°C.
For a temperature difference conversion, what we need is a conversion like:
Delta°C = (5 / 9) * Delta°F
However, Revit doesn't have such a conversion... however, there is another way.
When performing subtraction on two temperatures (Val1 - Val2), Revit is essentially doing the following:
Val1 - (Val2 + AbsoluteZero)
AbsoluteZero = -459.67°F = -273.15°C
In the case of our example:
80 °F - 55 °F is translated to 80 °F - (55 °F + 459.67°F) = - 434.67°F
25 °C - 10 °C is translated to 25 °C - (10 °C + 258.15°C) = - 258.15°C
To counter act this, we add 0 to the formula:
80 °F - 55 °F + 0°Fis translated to 80 °F - (55 °F + 459.67°F) + 459.67°F = 25°F
25 °C - 10 °C + 0°C is translated to 25 °C - (10 °C + 258.15°C) + 258.15°C = 15°C
Hopefully that helps you achieve your goal here.. In any event, I've logged a request logged to provide a 'Temperature Difference' unit type.
Thank you for the answer. You explained it very well.
I originally wanted to use it in calculating water flow:
V = Q / (ro . c . dT)
dT [K] = dT [°C]
Unfortunatelly, the temperature in the formula made such a mess that I rarther used dimensionless temperature and multiplied the final formula by required units. It works.
But I still think that one apple plus one apple are two apples and the same should apply to temperatures.
Yes, I think you are right, in 2012, you need to cancel the temperature units to unitless, but this is more primarily because there is no units for Specific Heat. This article goes into great detail:
In 2013, there is a Specific Heat units type, which simplifies this quite a bit. You still need to deal with the 'temperatures', but you don't need to cancel all the units. (the article is not yet published for 2013 on the wiki, but i've attached a PDF 'print' of it... I noticed that the title was cut off in the PDF, hopefully the rest of the content is there).
As for the one apple plus one apple, this is how we tend to think about it for most things, but Revit isn't just summing, it needs to handle conversions...
In 5th grade math... if the teacher told you to convert 0degF to Celcius, would your answer be -17.77degC or 0degC? Without more context, you don't know the right answer.
Temperature is unique. For most things, 0 means 'the absense of..' so, if you have 0 apples, you could convert this to 0 applesauce. However, if you have 0degF, you don't have an absence of temperature... and it doesn't equal 0degC (it equals -17.77degC) UNLESS you are talking about temperature difference, which is why a different type of conversion is necessary... and right now, Revit only has one type of conversion for temperature.
Thank you for the article and your patience.
I want to work with °C (I'm from europe) and that is why I set temperature units to °C and I don't want to convert it to other unit.
0°C is always 0°C
Absulute zero is -273,15°C and this is 0 K.
X . t°C is always X . t°C
I understand that dt=2°C does not equal to 2°F, but it is problem that must solve programmers.
I understand that there probably some reasons, why Revit calculate in another way, but if 1°C + 1°C = 275.15°C, it is simply not good even if you explained to me why this is so. Yes, it is good for programmers but not for users.
I understand.. you want it to 'just work', whether you are adding, subtracting, or perhaps even averaging temperatures, without a need to know why or how it works. I was only explaining because it doesn't currently work as you expect, and havng that understanding may help you better solve what it is that you are trying to do. This issue is logged for our team to consider for a future release.