EGITIM 2 22/05/22
OpenBrIM Platform Training Day 2 05/22/22
PRIVATE / EXPORT
2. eğitimde basit 2 objeyi birbirine bağlamayı öğreteceğiz.
Bu objelerin yapılmış örneklerini linklerinde bulabilirsiniz.
Engineering on Cloud Engineering on CloudEğitime aşağıdaki objelerin hazır haliyle başlayacağız.
DOSEME
<O N="Doseme1" T="Project">
<!-- created by Özer Gündüz on 14.03.2022 -->
<P N="t" V="5" D="Thickness of deck" Role="Input" />
<P N="l" V="300" D="Length of the Deck" Role="Input" />
<P N="w" V="3000" D="Width of the Deck" Role="Input" />
<O T="Volume" X="0" Y="0" Z="-t">
<O T="Surface">
<O T="Point" X="0" Y="-l/2" Z="t" />
<O T="Point" X="0" Y="l/2" Z="t" />
<O T="Point" X="0" Y="l/2" Z="0" />
<O T="Point" X="0" Y="-l/2" Z="0" />
</O>
<O T="Surface">
<O T="Point" X="w" Y="-l/2" Z="t" />
<O T="Point" X="w" Y="l/2" Z="t" />
<O T="Point" X="w" Y="l/2" Z="0" />
<O T="Point" X="w" Y="-l/2" Z="0" />
</O>
</O>
<O N="Refline" T="Line">
<O T="Point" X="w/2" Y="-l/2" Z="-2*t" />
<O T="Point" X="w/2" Y="l/2" Z="-t" />
</O>
</O>
DUVAR
<O N="Duvar1" T="Project">
<!-- created by Özer Gündüz on 14.03.2022 -->
<P N="h" V="50" D="Height of the Wall" Role="Input" />
<P N="t" V="10" D="Thickness of the Wall" Role="Input" />
<P N="l" V="100" D="Length of the Wall" Role="Input" />
<O T="Volume" X="0" Y="0" Z="0” Color="#fcba03" Opacity="0.5">
<O T="Surface">
<O T="Point" X="-l/2" Y="-t/2" Z=“0” />
<O T="Point" X="l/2" Y="-t/2" Z=“0” />
<O T="Point" X="l/2" Y="t/2" Z=“0” />
<O T="Point" X="-l/2" Y="t/2" Z=“0” />
</O>
<O T="Surface">
<O T="Point" X="-l/2" Y="-t/2" Z="-h" />
<O T="Point" X="l/2" Y="-t/2" Z="-h" />
<O T="Point" X="l/2" Y="t/2" Z="-h" />
<O T="Point" X="-l/2" Y="t/2" Z="-h" />
</O>
</O>
</O>
En başta döşemeyi modelledikten sonra bu döşemenin altına 2 adet duvar tanımladık.
Bunları app tarafına çektiğimizde, hepsinin üst üste geldiğini gördük. Bunları ayırmak gerektiğini anlattık.-> (why konsepti)
Objeleri oluştururken global koordinatta birbirine bağladığımız parametreleri gösterdik. (duvarın döşeme kenarlarına gelmesi gerekiyor.) ->Why konsepti
Color ve Opacity parametrelerini konuştuk. Birçok objeyi ekranda gördüğümüzde farkındalık için bu parametrelere ihtiyacımız var
Duvarın yerleşmesi için Referans alabileceğimiz bir refline oluşturduk. Biz bu duvarı bu refline a doğrultusunda oluşturmak istiyoruz
Duvar objesini bağlarken Döşeme pick ettirmek istediğimizi varsayalım. ( Paraminfo objesini burada kullandık.)-> How
Duvar objesinin döşemeden haberdar olması gerekiyor. Sisteme core olmayan incubator içinde bulunan authors tarafından yazılan doseme objesini çağıralım
Gelen obje 3d wievde ekran görüntüsünü oluşturdu
Bu noktada App tarafına gidip bu objenin nasıl davrandığına bakıyoruz ve sadece duvar objesini çağırdığımızda döşemenin de oluştuğunu görüyoruz
Burada oluşan sıkıntı tek obje özelinde 2 objenin aynı objede gelmesi ve diğerinin inputlarını değiştiremem. Bu yüzden duvar objesinde döşemeyi private objesi içine almam gerekiyor.
Private ne işe yarıyor bu noktada?
Objenin içinde ben objeyi görebiliyorum ve app tarafında diğer obje görünmüyor. Bunu “Source Code” a bakarak da kontrol edeceğiz
Parametrik olarak objelerin iskeletini oluşturduktan sonra, döşeme objesini parametrik olarak duvara bağlamak için altta ki kodu kullanacağız
<P N="control" V="D" T="Doseme2" Role="Input" />
<O T="ParamInfo" Min="1" Max="1" Required="1" Pick="1" Param="control" />
Private objesiyle çektiğimiz döşemeye göre duvar objesini düzenledik ve app tarafında bunları denedik. Role=Input kavramıyla beraber Private objesinin App’te source code a neler getirdiğini gördük. -> How
Inputların kategorilenmesinden bahsettik. Bunun fazla inputlu olan objelerin gruplanmasında faydası olacağından bahsettik
2. Tur olarak duvar ile döşeme uzunluğunun aynı olmasını ve bunun inputunun sadece döşemeden toplanmasını istedik. -> How
Duvar objesinin yukarıda bahsettiğimiz Refline’a bağlamamız için Döşeme objesinde “Role=”Input”” olmayan parametrelere ihtiyacımız olduğunu gördük. Bu noktada export objesiyle bir diğer objeye input olmayan şeyleri parametrik olarak çekmeyi gördük.
Export konseptini diğer objeye yazarken gösterdik
Temel anlamda Role=Input ve Exportlanan parametreler Source code’a ve kütüphane tarafında çağrılan objenin içine gidiyor. 2 veya daha fazla objede ortak kullanılacak parametreler kullanıcı tarafından girilecekse Role=”Input”, girilmeyecekse Export objesi ile çekileceği iyice irdelenecek
Bu 2 objeyi birbirine bağlarken belirlenen refline üzerinden birbirine oturtulmaya çalışılacak.Bunları yaparken kullanılacak fonksiyonlar; -> How
Online, onliner, toglobal
En sonunda ise bu 2 objenin birbirine bağlı olarak nasıl çalıştığını gördük. -> What we achieved
Duvar objesinin uzunluk parametresini otomatik olarak döşemeden alacağı kurguda ilerledik.
Bahsedilen objelerin son hali şu şekilde;
DOSEME
DUVAR
Database section and material oluşturma
Başlığa Database=”Section” ekliyoruz
Doseme objesine gidip set ettiğimiz refline a section atıyoruz
Line element’a section atarak 3 boyutlu bir obje oluştuğunu görüyoruz
Bu ilk 2 temel eğitim sonrasında sunumda yer alan projeye geçebiliriz.