# -*- coding: utf-8 -*-
import clr
clr.AddReference('RevitAPI')
clr.AddReference('RevitServices')
from Autodesk.Revit.DB import FilteredElementCollector, View3D, NavisworksExportOptions, NavisworksExportScope, Transaction
from RevitServices.Persistence import DocumentManager
import os
from pyrevit import forms
# Revit'in mevcut UI uygulamasını al
uiapp = __revit__
doc = uiapp.ActiveUIDocument.Document
# Geçersiz karakterleri düzelten fonksiyon
def sanitize_filename(name):
invalid_chars = '<>:"/\|?*'
for char in invalid_chars:
name = name.replace(char, '_') # Geçersiz karakterleri alt çizgiyle değiştir
return name
# Klasör seçimi için PyRevit fonksiyonu
def select_folder():
folder_path = forms.pick_folder()
if folder_path:
print("Seçilen klasör: {}".format(folder_path))
return folder_path
else:
print("Klasör seçimi iptal edildi veya geçersiz.")
return None
# Export işlemi için fonksiyon
def export_views(folder_path, selected_views):
if not folder_path:
return
for view in selected_views:
export_options = NavisworksExportOptions()
export_options.ViewId = view.Id
export_options.ExportScope = NavisworksExportScope.Model # Daha genel bir kapsam deneyelim
safe_view_name = sanitize_filename(view.Name)
export_path = os.path.join(folder_path, safe_view_name + ".nwc")
print("Exporting view: {}".format(view.Name))
print("Export path: {}".format(export_path))
try:
transaction = Transaction(doc, "Export View: " + view.Name)
transaction.Start()
result = doc.Export(folder_path, safe_view_name + ".nwc", export_options)
transaction.Commit()
if result:
print("{0} adlı görüntü başarıyla dışa aktarıldı.".format(view.Name))
else:
print("{0} adlı görüntü dışa aktarılamadı.".format(view.Name))
print("Export path: {}".format(export_path))
print("View ID: {}".format(view.Id))
print("NavisworksExportOptions: ExportScope={}, ViewId={}".format(export_options.ExportScope, export_options.ViewId))
except Exception as ex:
if transaction.HasStarted():
transaction.RollBack()
print("Export işlemi sırasında hata: {}".format(str(ex)))
# Hata ayrıntıları için daha fazla bilgi yazdır
print("Export path: {}".format(export_path))
print("View ID: {}".format(view.Id))
print("NavisworksExportOptions: ExportScope={}, ViewId={}".format(export_options.ExportScope, export_options.ViewId))
# Tüm 3D görüntüleri al
views = FilteredElementCollector(doc).OfClass(View3D).ToElements()
# Görüntülerin isimlerini ve Id'lerini eşleştirme
view_names = [view.Name for view in views]
view_ids = [view.Id for view in views]
# Kullanıcıya seçim yapma imkanı sun
return_options = forms.SelectFromList.show(
view_names,
title='Select Views to Export',
multiselect=True
)
if return_options:
# Seçilen görüntülerin ID'lerini doğru şekilde al
selected_views = []
for option in return_options:
try:
view_index = view_names.index(option)
selected_views.append(views[view_index])
except ValueError:
print("Görüntü adı {} bulunamadı.".format(option))
# Klasör seçim penceresi göster
folder_path = select_folder()
# Export işlemini başlat
if folder_path:
export_views(folder_path, selected_views)
forms.alert("Export process complete.", title="Script finished", warn_icon=False)
else:
forms.alert("Export process cancelled.", title="Script cancelled")
else:
forms.alert("No views selected.", title="Selection cancelled")
- First things first: QuickStart in the Realm of pyRevit and the Revit API
- Welcome
- Hello
- What is the error message / ttraceback message
Selected folder: C:\Users\kadir\Desktop\FN GROUP MODEL\Nawis
Exporting view: Cover
Export path: C:\Users\kadir\Desktop\FN GROUP MODEL\Nawis\Cover.nwc
The image named Cover could not be exported.
Export path: C:\Users\kadir\Desktop\FN GROUP MODEL\Nawis\Cover.nwc
View ID: 1521827
NavisworksExportOptions: ExportScope=Model, ViewId=1521827
Is there anyone I can get help on this subject?
1 Like
try:
transaction = Transaction(doc, "Export View: " + view.Name)
transaction.Start()
result = doc.Export(folder_path, safe_view_name + ".nwc", export_options)
transaction.Commit()
if result:
print("{0} adlı görüntü başarıyla dışa aktarıldı.".format(view.Name))
else:
print("{0} adlı görüntü dışa aktarılamadı.".format(view.Name))
So based upon your post: result is False. No Export was made.
I would have expected your print “Export işlemi sırasında hata:” to show something. What does it say?
Btw. I believe you can leave NavisExportOptions() as it is.
Default value for ExportScope is model.
ViewId is only used when ExportScope = View.
export_options = NavisworksExportOptions()
export_options.ViewId = view.Id
export_options.ExportScope = NavisworksExportScope.Model # Daha genel bir kapsam deneyelim
export_options = NavisworksExportOptions()