There is an error in my code, I can't find it, is there anyone who can help?

# -*- 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")
  1. First things first: QuickStart in the Realm of pyRevit and the Revit API
  2. Welcome
  3. Hello
  4. 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()