Unit Objesi

"Unit" objesi bir projedeki birim sistemi tanımlamak için kullanılır. Bir proje bir ya da daha fazla birim sistemi içerebilir. Eğer ki tanımlanan bir "Unit" objesi yoksa, bütün projenin değişmeyen standart birim sistemine sahip olduğu varsayılır.
Eğer ki "Unit" objesi tanımlanmışsa, ilk "Unit" objesinin adının 'Internal' olması zorunludur. Bu "Unit" objesi sistemin tüm hesapları o birimlerden yaptığı bir birim sistemi tanımlamak için kullanılır. Tek standartlaşmış bir Internal birim sistemi kullanmak, parametrik ifadelerin yazımında kolaylık sağlar.
Bir Internal birim sistemi tanımlandıktan sonra, son kullanıcı için girişi kolaylaştırmak amacıyla daha fazla birim sistemi tanımlamak mümkündür.
Projenin yazarı çoklu birim sistemleri tanımlayabilir.Örnek olarak, bu sistemler Kesit, Koordinat, Deplasman vb. Olarak adlandırılabilir.Herhangi bir parametrenin birim kategorisinin adı Birim Objelerinin herhangi birinin adıyla eşleşirse, son kullanıcının girdiği parametre değerleri için o birim sistemi kullanılacaktır.
Projede 'Default' adında bir Unit objesi varsa, birim kategorisi tanımlanmayan tüm parametrelerin birim sisteminin 'Default' birim kategorisinde olduğu varsayılır.

Örnek:

<O N="Internal" T="Unit" Length="MILLIMETER" Force="NEWTON" Angle="Radian" Temperature="Fahrenheit" />

<O N="Geometry" T="Unit" Length="METER" Force="NEWTON" Angle="Degree" Temperature="Fahrenheit" />

<O N="Property" T="Unit" Length="CENTIMETER" Force="NEWTON" Angle="Degree" Temperature="Fahrenheit" />


Proje içerisinde yukarıdaki gibi üç adet "Unit" objesi üretildikten sonra oluşturulan bir parametreye hangisine gitmesi gerektiğini belirtiriz Unit Category(UC) ile gideceği ismi ve Unit Type(UT) ile de bu parametrenin neyi ifade ettiğini söyler. Daha sonra birim kategorisi "Unit" objelerinden birisinin adıyla eşleşirse o parametre eşleştiği birim sistemini kullanır.

Örnek:

<P N="A" V="-1000" Role="Input" UT="Length" UC="Property" />

<P N="B" V="100" UT="Length" UC="Geometry" />

<P N="C" V="100" UT="Angle" UC="Internal" />


A parametresi bir uzunluk(UT) belirtip birimi santimetre olacaktır.
B parametresi de bir uzunluk(UT) belirtip birimi metre olacaktır.
C parametresi de bir açı(UT) belirtip birimi radyan olacaktır.

Örnek:

<O N="Units" T="Group"> 
    <O N="Internal" T="Unit" Length="MILLIMETER" Force="NEWTON" Angle="Radian" Temperature="Fahrenheit" />

    <O N="KM_N" T="Unit" Length="KILOMETER" Force="NEWTON" Angle="DEGREE" Temperature="CELSIUS" />

    <O N="M_KN" T="Unit" Length="METER" Force="KILONEWTON" Angle="DEGREE" Temperature="CELSIUS" />

    <O N="M_KGF" T="Unit" Length="METER" Force="KILOGRAMFORCE" Angle="DEGREE" Temperature="CELSIUS" />

    <O N="M_TON" T="Unit" Length="METER" Force="TON" Angle="DEGREE" Temperature="CELSIUS" />

    <O N="CM_KGF" T="Unit" Length="CENTIMETER" Force="KILOGRAMFORCE" Angle="DEGREE" Temperature="CELSIUS" />

    <O N="CM_TON" T="Unit" Length="CENTIMETER" Force="TON" Angle="DEGREE" Temperature="CELSIUS" />

    <O N="MM_N" T="Unit" Length="MILLIMETER" Force="NEWTON" Angle="DEGREE" Temperature="CELSIUS" />

</O>


Karayolları Bilgi Yönetim Sistemi (KBYS)'de birim kategorisi olarak yukarıdaki birim sistemleri kullanılmaktadır. Bu birim sistemlerine ekleme, çıkarma ve değiştirme yapılabilir. Biri hariç: 'Internal' çünkü kod çalışırken tüm birim sistemlerini tek bir birim sistemine çevirerek (internal unit) işlem yapar. Diğer tüm birim sistemleri(Display Units) son kullanıcının gördüğü parametrelerin birimleridir. Tüm bu kullanıcının gördüğü birim sistemleri kod çalıştırılırken Internal'a çevrilir.

Örnek:

<P N="A" V="20000" Role="Input" UT="Length" UC="M_TON" />

<P N="B" V="50000" Role="Input" UT="Length" UC="KM_N" />

<P N="C" V="A+B" UT="Length" UC="KM_N" />


Yukarıdaki gibi A ve B isimli iki parametrenin birim sistemleri farklıdır. Son kullanıcı bunu A=20 metre B=0.05km kilometre olarak görür ve değerleri girer.



Daha sonradan C parametresinin hesabı için tüm birimler kod çalıştırılırken Internala çevrilir hesap yapılır birim kategorisi belirtilmemişse C=70000 milimetre yada yukarıdaki gibi birim kategorisi belirtilmişse o kategoriye göre çevrilip yazılır. Yani C=0.07 kilometre olur.



Yani tüm işlem aslında Internal birim kategorisinde yapılır. Bu örnekte birim tipi Length olan Internal birim sistemi milimetre ile çalıştığı için A=20000mm ve B=50000mm olarak işlemi yapıp kullanıcının görmek isteyeceği birime çevrilmiştir.


Parametreleri:


Sınıfı

Zorunluluk

Adı ve Tipi

Varsayılan değeri ve açıklaması

Öznitelikler

1

Length

Zorunlu

N="Length" 
T="Text"

D="[INCH/FEET/YARD/MILLIMETER/ 
CENTIMETER/METER]" 
V="INCH"

Role="Input"

2

Force

Zorunlu

N="Force" 
T="Text"

D="[POUND/KIPS/NEWTON/KILONEWTON/ 
MEGANEWTON/TON/MT/KGF]" 
V="KIPS"

Role="Input"

3

Angle

Zorunlu

N="Angle" 
T="Text"

D="[DEGREES/RADIANS]" 
V="DEGREES"

Role="Input"

4

Temperature

Zorunlu

N="Temperature" 
T="Text"

D="[FAHRENHEIT/CELSIUS]" 
V="FAHRENHEIT"

Role="Input"