Open RVT file in revit multiple ways

Hi !
To not pollute this subject I open a new one because I need help on multiple tools.

I’m trying to make a pushbutton (with a config options) to open a rvt file, that contains all the office library.

For the simple user, I want that when he clicks on the button , he opens a detached file , in which that he could “Specify” the worksets that he wants to open. I didn’t succes this last part of the tool even with the help of the last answer on the topic above.

for the moment here is the code of the main tool :

 # -*- coding: utf-8 -*-

# OpenAndActivateDocument and detach
from pyrevit import revit, DB, script, forms, HOST_APP
import webbrowser 

doc = revit.doc
output = script.get_output()
output.close_others()

app = HOST_APP.uiapp
rvt_year = int(__revit__.Application.VersionNumber)

open_options = DB.OpenOptions()
open_options.DetachFromCentralOption = DB.DetachFromCentralOption.DetachAndPreserveWorksets

if rvt_year >= 2023 :
    try:
        file = "FILEPATH ON A SERVER"
        if file:
            if file.endswith(".rvt"):
                res = forms.alert(title="Ouverture en cours ...", msg='''Ouverture de la bibliothèque de Familles 3D de l'agence en cours \n\n'''
                                                                      '''Dans quelques secondes tu découvrira un fichier Bibliothèque présentant toutes les familles de l'agence sous forme de showroom. \n'''
                                                                      '''Il s'agit d'un fichier détaché du fichier central qui ne permet donc pas d'ajouter des familles à la bibliothèque.\n\n '''
                                                                      '''Si tu penses avoir de bonnes familles à ajouter à la bibliothèque de l'agence, n'hésite pas à le signaler via le salon Chat Revit ou l'adresse bim@enia.fr ! \n''' 
                                                                      '''Merci !''', 
                                                                         options =["Continuer"])
                if res == "Continuer" :
                    model_path = DB.ModelPathUtils.ConvertUserVisiblePathToModelPath(file)
                    document = app.OpenAndActivateDocument(model_path, open_options, False)
                
            else:
                pass
    except Exception as e:
        print(e)
else :
   #print('''La bibliothèque de familles n'est malheureusement disponible qu'à partir de Revit 2023. Va voir dans le dossier ...... si tu trouves ton bonheur''')
     
   
   res = forms.alert('''Version de revit non compatible''', title='''Bibliothèque non trouvée''', sub_msg='''La bibliothèque de familles n'est malheureusement disponible qu'à partir de Revit 2023... Mais tu peux probablement trouver ton bonheur en cherchant dans le dossier source !''', 
   options=['''Naviguer dans les dossiers'''])
   if res == '''Naviguer dans les dossiers''':
    webbrowser.open(r'FILEPATH')

What I also wood like to do, is to make the shift-click option for the power user to open the file, in a non-detached version. I would like that Revit acts exactly like I were opening the file in revit, with the popup about replacing or creating a nw revit local in the Revit local folder .

For the moment, I cannot make the file opening this way, even with multiple tries with openoptions settings …

The config.py file looks like this :

# -*- coding: utf-8 -*

# OpenAndActivateDocument 
from pyrevit import revit, DB, script, forms, HOST_APP

doc = revit.doc
output = script.get_output()
output.close_others()

app = HOST_APP.uiapp
rvt_year = int(__revit__.Application.VersionNumber)

open_options = DB.OpenOptions()

if rvt_year == 2023 :
    try:
        file = r'FILEPATH ON A SERVER'
        if file:
            if file.endswith(".rvt"):
                res = forms.alert(title="Ouverture en cours ...", msg='''Attention ! Vous ouvrez actuellement la bibliothèque pour édition.\n'''
                                                                      '''Pensez bien à vérifier que vous êtes sur un modèle local avant modification.''',
                                                                         options =["Continuer"])
                if res == "Continuer" :
                    model_path = DB.ModelPathUtils.ConvertUserVisiblePathToModelPath(file)
                    document = app.OpenAndActivateDocument(model_path, open_options, False)
                
            else:
                pass
    except Exception as e:
        print(e)
else :
   forms.alert('''Version de revit non compatible''', title='''Bibliothèque non trouvée''', sub_msg='''La bibliothèque de familles n'est éditable qu'en Revit 2023... ''')

Is it possible to have some help for the script file :

  • I want that the user can specify the worksets at opening
    for the config.py file
  • I want Revit to open the workshared file and create a local with Revit settings