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:
Code Block | ||||
---|---|---|---|---|
| ||||
<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:
Code Block | ||||
---|---|---|---|---|
| ||||
<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:
Code Block | ||||
---|---|---|---|---|
| ||||
<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 İnternal'a çevrilir.
Örnek:
Code Block | ||||
---|---|---|---|---|
| ||||
<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" /> |
...
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" | D="[INCH/FEET/YARD/MILLIMETER/ | Role="Input" |
2 | Force | Zorunlu | N="Force" | D="[POUND/KIPS/NEWTON/KILONEWTON/ | Role="Input" |
3 | Angle | Zorunlu | N="Angle" | D="[DEGREES/RADIANS]" | Role="Input" |
4 | Temperature | Zorunlu | N="Temperature" | D="[FAHRENHEIT/CELSIUS]" | Role="Input" |