Bina Numaralarını Harfe Çeviren Akıllı Makro ile Yapı İsimlendirme Otomasyonu 🚀
Smart Macro for Converting Building Numbers to Letters with Automated Naming
Bu makro, Netcad ortamında bina isimlerini otomatik olarak düzenler. Örneğin, “123/5/1” gibi bir yapı ismini, yapı tipine göre “123/5/A” veya “T” (tescilli yapılar) ya da “Y” (yıkık yapılar) olarak değiştirir. Tescilli, tescilsiz ve yıkık yapıların tabaka isimlerine göre (TESCILLI, TESCILSIZ, YIKIK) işlem yapar. Ayrıca, eski alan isimlerini GIS ADI kısmına otomatik olarak aktarır. Kullanıcı dostu arayüzü ile seçim yaparak işlemi kolayca tamamlar ve kaç alanın düzeltildiğini bildirir.
This macro automates building naming in Netcad. It converts names like “123/5/1” to “123/5/A”, “T” (for registered buildings), or “Y” (for demolished buildings) based on layer names (TESCILLI, TESCILSIZ, YIKIK). It also transfers old names to the GIS NAME field automatically. With a user-friendly interface, it allows easy selection and reports the number of corrected fields.
Nasıl Çalışır (How Does It Work)
Kullanıcıya bir onay mesajı gösterir ve işlem için izin ister. Kullanıcı, değiştirmek istediği yapı alanlarını seçer. Makro, seçilen objelerin tabaka isimlerini kontrol eder (TESCILLI, TESCILSIZ, YIKIK). Yapı ismini “/” karakterine göre böler (örneğin, 123/5/1 → 123, 5, 1). Son rakamı, tanımlı harf dizisinden (A-Z, Ç, Ğ, İ, Ö, Ş, Ü) uygun harfle değiştirir. Tescilli yapılar için “T” veya “T”+sayı, yıkık yapılar için “Y” kullanılır. Eski ismi objenin GIS ADI kısmına kaydeder ve yeni ismi uygular. İşlem sonunda, düzeltilen alan sayısını bildirir.
Displays a confirmation message to proceed.
User selects the building areas to modify.
The macro checks the layer names of selected objects (TESCILLI, TESCILSIZ, YIKIK).
Splits the building name by “/” (e.g., 123/5/1 → 123, 5, 1).
Replaces the last number with a letter from the defined set (A-Z, Ç, Ğ, İ, Ö, Ş, Ü).
Uses “T” or “T”+number for registered buildings, “Y” for demolished ones.
Saves the old name to the GIS NAME field and applies the new name.
Reports the number of corrected fields at the end.
Etiket ( Labels )
Netcad makro, bina isimlendirme, yapı otomasyonu, tescilli yapılar, yıkık yapılar, GIS veri, harf dönüştürme, alan düzenleme, VBScript makro, Netcad otomasyon
Netcad macro, building naming, structure automation, registered buildings, demolished buildings, GIS data, letter conversion, field editing, VBScript macro, Netcad automation
📝 Netcad NVB Code
' Şaban GÜL, sabangul67@gmail.com, sabangul.com
' Bu Makro Binalara verilen rakam değerini Harf olarak Yazar
' Örnek (123/5/1, 123/5/A olarak değişir), T harfi tescilli yapılar, Y harfi yıkık yapılar için kullanılır
Sub Main
Dim I,J,O,SEL,xls,pno,CL,bd,U,V,R,W,T,K,N,PR,ZF,say
DIM NO(50000,2)
J=MSGBOX (" Bu makro ile 101/1/1 gibi yazdığınız yapı isimleri " & chr(10) & " seçilen objenin tabakasına göre adı otomatik değişir." & chr(10) & "İsim değişimi için yapıların tabakalarında kural: Tescilliler Tabakasının Adı TESCILLI, Tescilsizlerin Tabakasının Adı TESCILSIZ, Yıkıklar Tabakasının Adı YIKIK ile bitmesi lazım. Son yapılan güncelleme ile eski alan isimleri GIS ADI kısmına otomatik aktarılacaktır." ,VBYESNO,"[www.sabangul.com.tr]")
IF J<>6 THEN EXIT SUB
with Netcad
set SEL = .NewSelectionSet
set o = .NewObject
W="ABCDEFGHIJKLMNOPRSUVZXWQÇĞİÖŞÜ"
if SEL.SELECT("Lütfen değiştirmek istediğiniz yapıların alanlarını seçiniz.",array(opline)) then
for i = 0 to SEL.NE-1
j = SEL.GetSelectedObject(i, o)
if INSTR(.layernameof (o.tabaka),"TESCILLI")>0 OR INSTR(.layernameof (o.tabaka),"TESCILSIZ")>0 OR INSTR(.layernameof (o.tabaka),"YIKIK")>0 then
pno= o.pname
PR=SPLIT(pno,"/") ' parsel noyu "/" lar dan böler; örnek: 101/59/3 => pr(0)=101, pr(1)=59 pr(2)=3 şeklinde böler.
V = Len(W):T = InStr(pno, "/"): K = InStr(Mid(pno, T + 1, V), "/")
U = Mid(pno, T + K + 1, V)
R=MID(W,U,1) ' tescilsizin harfini alır
if instr(.layernameof (o.tabaka),"TESCILLI")>0 THEN
ZF=PR(2)-1:IF ZF<1 THEN R="T" ELSE R="T" & ZF 'tescilliyse harfi T yap
END IF
if instr(.layernameof (o.tabaka),"YIKIK")>0 THEN R="Y" 'yıkıksa harfi Y yap
o.objname= o.pname
o.PNAME = LEFT(pno,T+K) & R ' sonundaki rakamın yerine harf ekle
.putobject j, o
say=say+1
END IF
next
SEL.RedrawAndRewind
end if
set SEL = nothing
set o = nothing
end with
if say>0 then
MSGBOX say & " adet alan adı Düzeltildi"
end if
end sub
VBnetcad-yapi-adlari-sayidan-harfe-cevir
✅ Makroyu kullanmadan önce lütfen aşağıdaki uyarıları dikkatlice okuyunuz:
• Obje sayısı yüksekse işlem uzun sürebilir ve Netcad yazılımı yanıt veremez hale gelebilir.
• Bu nedenle tüm projelerinizi önceden yedeklemeniz önemle tavsiye edilir.
• Makro çalıştıktan sonra işlemi geri almak mümkün olmayabilir.
• Makrolar periyodik olarak güncellenmektedir; sayfamızı takip ederek güncel sürümleri kullanmaya özen gösteriniz.
💾 Makrolar yalnızca Netcad yazılımında çalışır ve .nps formatında sunulur. Bu format düzenlenemez; özelleştirme talepleriniz için bizimle iletişime geçebilirsiniz.
✉️ Görüş, öneri ve hata bildirimleri için: sabangul67@gmail.com
⚙️ Bu makrolar Kadastro, 2B, Orman, Kamulaştırma, Değerleme, CBS, Halihazır Harita, İmar Planı, Etüt-Proje gibi birçok alanda kullanılabilir.
🔐 Makrolar e-posta eki veya sosyal medya üzerinden paylaşılmaz. Talepte bulunmanız durumunda yalnızca e-posta adresinize bilgilendirme yapılır. Makrolar yalnızca internet sitemiz üzerinden paylaşılır.
📥 Makroları indirerek kullanım sorumluluğunu kabul etmiş sayılırsınız. Oluşabilecek tüm sorunlar kullanıcı sorumluluğundadır.