internal void SetUnits(Length length)
{
if (length == Length.Millimetre)
{
mUnits.Add(new IfcSIUnit(mDatabase, IfcUnitEnum.LENGTHUNIT, IfcSIPrefix.MILLI, IfcSIUnitName.METRE).mIndex);
mDatabase.ScaleSI = 0.001;
}
else if (length == Length.Centimetre)
{
mUnits.Add(new IfcSIUnit(mDatabase, IfcUnitEnum.LENGTHUNIT, IfcSIPrefix.CENTI, IfcSIUnitName.METRE).mIndex);
mDatabase.ScaleSI = 0.01;
}
else if (length == Length.Inch)
{
IfcMeasureWithUnit mwu = new IfcMeasureWithUnit(new IfcLengthMeasure(0.0254), mDatabase.Factory.SILength);
mUnits.Add(new IfcConversionBasedUnit(IfcUnitEnum.LENGTHUNIT, "Inches", mwu).mIndex);
mDatabase.ScaleSI = 0.0254;
}
else if (length == Length.Foot)
{
IfcMeasureWithUnit mwu = new IfcMeasureWithUnit(new IfcLengthMeasure(FeetToMetre), mDatabase.Factory.SILength);
mUnits.Add(new IfcConversionBasedUnit(IfcUnitEnum.LENGTHUNIT, "Feet", mwu).mIndex);
mDatabase.ScaleSI = FeetToMetre;
}
else
{
mUnits.Add(mDatabase.Factory.SILength.mIndex);
mDatabase.ScaleSI = 1;
}
SetUnits();
}