Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 25 Next »

Bir yapısal sistemde kolonlar, eksensel ve eksantrik yüklemelere karşı direnen dikey elemanlardır. Kolonların görevi üst yapıdan aldıkları yükü temele aktarmaktır. 

Extends

Kolon objesi oluşturulurken, ParamML'deki "Extends" komutundan faydalanılmıştır. Extends, konsept açısından Java, C#, Ruby gibi nesneye yönelik programlama dillerindeki "Inheritance" kavramına benzemektedir. Extends içerisine yazdığımız objelere parent obje, yarattığımız objeye ise child obje diyebiliriz. Parent objeler, child objenin içerisine olduğu gibi gelir. Amaç parent obje ile gelen kodu "override" ederek, parent objelerin özelliklerini taşıyan, özgün bir child obje oluşturmaktır.

Objeleri oluştururken Extends kullanmamın avantajları:

  • Bir çok objede kullanılacak bir kod parent obje olarak oluşturulup, extends ile çağrıldığında, zaman ve enerjiden tasarruf edilmiş olur. 
  • Aynı parent objeler kullanılarak oluşturulan child objeler benzer özelliklere sahip olduklarından, objelere daha hakim olunur.
  • Child obje içerisinde yapılan her şey o obje içerisinde kalır, parent objede bir değişiklik olmadğı için tekrar tekrar kulanılabilir.
  • Bir projede doğru çalıştığından emin olunan bir parent obje kullanıldığında, projede ortaya çıkacak sorunlar azaltılmış olur. 

Rectangular Pier Column için düşünecek olursak:

Extends
<O N="TXS_RectangularPierColumn" T="Project" Extends="[Base_SubColumn,TXS_SubUnits,Base_SubFoundRef]" Category="Substructure Components" TransAlignRule="Right">


"Base_SubColumn", "TXS_SubUnits" ve "Base_SubFoundRef" parent objelerdir, "TXS_RectangularPierColumn" ise parent objelerden türetilmiş bir child objedir.

TXS_SubUnits

TXS_SubUnits objesi içerisinde köprü objeleri oluşturulurken kullanılan birim sistemi mevcuttur. Her projenin başında tekrar tekrar birim sistemi tanımlamaktansa, "TXS_SubUnits" objesi extend edilerek zamandan ve kod kalabalığından tasarruf edilmiş olur.

Base_SubColumn

Türü ne olursa olsun tüm kolonların bazı ortak parametreleri vardır. Bunlar kolonun konumu ve kolon tabanının yüksekliği gibi parametrelerdir. Şuan var olan ve gelecekte oluşturulabilecek tüm kolon objelerinde bu parametrelerin olmasını bekleriz. Kolonlara dair ortak bilgi ve parametreler her kolon objesi için yazılmak yerine "Base_SubColumn" objesi içinde tanımlanmıştır. Bir kolon objesi yaratmak için "Base_SubColumn" objesi kullanıldığında, hem zaman tasarrufu yapılmış olur, hem de oluşturulan objeler kontrol altına alınmış olur.

Base_SubFoundRef 

OpenBrIM içerisinde objeler birbirleriyle iletişim halindedir. Köprü elemanları kendilerini birbirlerinin konumuna göre yerleştirir. Kolon, kendini başlık kirişi göre yerleştirir. Temel ise kendini kolona göre yerleştirir. Kendini kolonun altına yerleştirebilmesi için, temel objesine konum bilgisi verilmelidir. Bu bilgi kolonun atına bir referans çizgisi(refline) çizerek verilir. Konum bilgisi oluşturulduktan sonra, temel objesinin bu bilgiye ulaşmasını sağlamak gereklidir. App üzerinden temel objesi yaratmak istediğimizde, hangi objenin altına geleceğini seçmemiz gerekir. Peki, temel hangi objenin altına yerleşmelidir? Tabii ki temele referans çizgisi veren objenin altına yerleşmelidir. Bu davranışı sağlamak için "Base_SubFoundRef" parent objesi, kolon yaratılırken extend edilir ve temel objesi oluşturulurken temelin referans alacağı obje inputunun türü "Base_SubFoundRef" yapılır.

Parametreler   

Base_SubColumn Inputları
<P N="sbcr" V="HPC" T="Base_SubColumnRef" Role="Input" Category="Location" />
<O T="ParamInfo" Min="1" Max="1" Required="1" Pick="1" Param="sbcr" />
<P N="LocY" V="30" Role="Input" Category="Location" UT="Length" UC="StructU" />
<P N="LocZ" V="-600" Role="Input" Category="Location" UT="Length" UC="DR_PropU1" />


TXS_RectangularPierColumn Inputları
<O N="Pier Geometry" T="Group">
	<P N="ColW" V="132" D="Width of pier" Role="Input" Category="Geometry" UT="Length" UC="PropU1" />
	<P N="ColT" V="80" D="Length of pier" Role="Input" Category="Geometry" UT="Length" UC="PropU1" />
</O>
<O N="Material" T="Group">
	<P N="PierMaterial" V="NULL" T="Material" D="Pier Material" Role="Input" Category="Material" />
</O>


  • Alt yapı (sbcr)

Kolonun hangi alt yapı objesinin altına geleceğini belirler. Input'un türü "Base_SubColumnRef" olarak belirlenmiştir. Kütüphane oluşturulan bir objenin türünün "Base_SubColumnRef" olabilmesi için, ya obje "Base_SubColumnRef" olmalıdır ya da "Base_SubColumnRef" objesini extend etmelidir. "Base_SubColumnRef" kolona referans çizgisi veren objelerin bir parent objesidir. Tüm bu ifadeler "Kolonun referans alarak kendini yerleştireceği obje, kolona referans çizgisi veren bir obje olmalıdır." anlamına gelir. 

  • Y konumu (LocY)

Kolonun, enine konumudur. Kolonun referans çizgisi üzerindeki konumu olarak da düşünülebilir. Pozitif veya negatif input değerlerine göre kolon sağa veya sola yerleştirilir.

  • Taban yüksekliği (LocZ)

Temel yüzeyinin yüksekliğidir. Bu değer alignment fonksiyonlarından etkilenmez, global z koordinatıdır.

  • Kolon Genişliği (ColW)

Kolon genişliğini belirleyen parametredir. 

  • Kolon Kalınlığı (ColT)

Kolon kalınlığını belirleyen parametredir.

  • Kolon Malzemesi (PierMaterial)

Kolonun malzemesini belirleyen parametredir.


3D Geometri

Geometry
<O N="View 3D" T="Group" Alignment="ObjAlignment" X="CenterCoord[0]" Y="LocY" RZ="-sbcr.rot" Color="#979595" AlignH="Orient" AlignV="Warp" AlignT="Ignore">
        <O N="RectangularPier" T="Group">
            <O T="Volume">
                <O T="Surface">
                    <O T="Point" X="-ColW/2" Y="-ColT/2" Z="CenterCoord[2]" />
                    <O T="Point" X="-ColW/2" Y="-ColT/2" Z="LocZ" AlignT="Fixed" AlignV="Fixed" />
                    <O T="Point" X="-ColW/2" Y="ColT/2" Z="LocZ" AlignT="Fixed" AlignV="Fixed" />
                    <O T="Point" X="-ColW/2" Y="ColT/2" Z="CenterCoord[2]" />
                </O>
                <O T="Surface">
                    <O T="Point" X="ColW/2" Y="-ColT/2" Z="CenterCoord[2]" />
                    <O T="Point" X="ColW/2" Y="-ColT/2" Z="LocZ" AlignT="Fixed" AlignV="Fixed" />
                    <O T="Point" X="ColW/2" Y="ColT/2" Z="LocZ" AlignT="Fixed" AlignV="Fixed" />
                    <O T="Point" X="ColW/2" Y="ColT/2" Z="CenterCoord[2]" />
                </O>
            </O>
        </O>
    </O>

Kolonun 3d geometrisi başlık kirişinin altındaki kolon referans çizgisi üzerinde oluşturulur. Objeye atanan alignment (ObjAlignment) kodun başka bir kısmında, kolonun referans alacağı alt yapı objesinin alignment'ı olarak belirlenmiştir. AlignH parametresi "Orient" olarak tanımlanarak obje yatay eksende alignment'a sokulmuştur. AlignV parametresi "Warp" olarak tanımlanarak, obje alignment'ın bulunduğu düşey eksendeki konumuna göre konumlandırılmıştır.  AlignT parametresi "Ignore" olarak tanımlanarak, kolonun alignment'ın enine, cross-slope'tan gelen yükseklik değerinden etkilenmemesi sağlanmıştır.

CenterCoord parametresi, kolon referans çizgisi üzerinde y koordinatının LocY'ye eşit olduğu yerdeki koordinatlardan oluşan bir listedir.  

CenterCoord
<P N="CenterCoord" V="onliney(toglobal(sbcr.ColumnRefline),LocY)" />
  • No labels