Domande frequenti: in che modo è possibile salvare di nuovo un progetto o una cartella di file di disegno nella versione corrente?

Per salvare di nuovo un progetto o una directory di file di disegno da una versione precedente alla versione corrente, utilizzare un file batch.

È possibile automatizzare la ripetizione del salvataggio di file di disegno, salvati in versioni precedenti del Set di strumenti AutoCAD Architecture 2024, nella versione corrente utilizzando un file batch.

L'esecuzione del file batch determina la creazione di una copia completa del progetto o della cartella contenente i disegni di versione precedente. Viene quindi eseguita una ricerca ricorsiva di tutti i file DWG, DWT e DWS contenuti in questo percorso e viene generato un file di script.

In seguito all'esecuzione del file di script, tutti i file DWG e DWT copiati vengono aperti, salvati e chiusi. Di conseguenza, tutti i file DWG e DWT vengono salvati di nuovo nella versione corrente.

Lo script visualizza i percorsi al file DWS. È necessario aprire manualmente i file DWS e salvarli nella versione corrente.

Importante: Assicurarsi di creare una copia di backup di tutti i file prima dell'esecuzione dei file batch e di script. Se un progetto è stato copiato in un nuovo percorso, è necessario aggiornare il percorso del progetto con la versione originale del Set di strumenti AutoCAD Architecture 2024 prima di eseguire il file batch.

Come importare i file nella versione corrente mediante un file batch

    Importante: Assicurarsi di seguire la procedura in modo corretto.
  1. Avviare Microsoft® Blocco note.
  2. Copiare il testo (file batch) tra le due linee tratteggiate e incollarlo nel Blocco note.
  3. Salvare il file con il nome promote.bat e chiudere il Blocco note.
  4. Al prompt dei comandi di Windows® eseguire il file promote.bat con la seguente sintassi:
    promote.bat [projectName] [projectLocation] [scriptName] [promotionTarget] 
    Replace [projectName] with the name of the original folder containing the drawings to be imported to the current version. 
    Replace [projectLocation] with the path to the original folder entered as [projectName]. 
    Replace [scriptName] with the name of the script that will be generated. The root of the file name can be customized but the file extension must always be .scr. 
    Replace [promotionTarget] with a path and folder name of the location where the imported drawings must be copied.
    Nota: Gli argomenti contenenti spazi devono essere racchiusi tra virgolette. Ad esempio, se si dispone di disegni salvati nelle versioni precedenti e memorizzati nella cartella R:\CAD_Files\Projects\2010\Hospital e si desidera che i file nuovamente salvati vengano creati nella cartella R:\CAD_Files\Projects\2014\Hospital, utilizzare la sintassi seguente:
    promote.bat Hospital R:\CAD_Files\Projects\2010\ promote.scr R:\CAD_Files\Projects\2014
  5. Al termine, nella stessa cartella del file promote.bat verrà generato un file di script con il nome specificato. Con l'esecuzione di questo file di script, tutti i disegni copiati memorizzati nel percorso [promotionTarget] verranno automaticamente salvati di nuovo nella versione corrente.

File batch

--------------------------------------------------------------------------------------------
@echo off
SETLOCAL
@rem promote.bat
@rem This script promotes a project to the current DWG format.
:Greeting
echo.
echo This script promotes a project to the current DWG format.
echo For best results, please run this script using administrator privileges in Windows.
echo.
PAUSE
:checkCmdArgs
if [%4] EQU [] goto :badArgCount
if [%3] EQU [] goto :badArgCount
if [%2] EQU [] goto :badArgCount
if [%1] EQU [] goto :badArgCount
if [%5] NEQ [] goto :badArgCount
set prjName=%1
set prjDir=%2
set scrName=%3
set targetDir=%4
goto :checkProject
:getProject
set /P prjName="What is the name of the project?: "
set /P prjDir="Where can it be found?: "
goto :checkProject
:checkProject
set prjNameEsc=%prjName:&=^&%
set firstChar=%prjName:~0,1%
if ^%firstChar% EQU ^" set prjName=%prjNameEsc:~1,-1%
set prjNameDisplay=%prjName:&=^^^&%
set prjDirEsc=%prjDir:&=^&%
set firstChar=%prjDir:~0,1%
if ^%firstChar% EQU ^" set prjDir=%prjDirEsc:~1,-1%
set prjDirDisplay=%prjDir:&=^^^&%
set project="%prjDir%\%prjName%"
if not exist %project% goto :noProject
if not defined scrName (goto :getScript) else (goto :checkScript)
:getScript
set /P scrName="Specify a name for the ACAD script: "
goto :checkScript
:checkScript
set scrNameEsc=%scrName:&=^&%
set firstChar=%scrName:~0,1%
if ^%firstChar% EQU ^" set scrName=%scrNameEsc:~1,-1%
set scrExt=%scrName:~-4%
if /I "%scrExt%" NEQ ".scr" set scrName=%scrName%.scr
set scrNameDisplay=%scrName:&=^^^&%
if exist "%scrName%" goto :scrFound
if not defined targetDir (goto :getTarget) else (goto :checkTarget)
:getTarget
set /P targetDir="Specify a directory to host the promoted project: "
goto :checkTarget
:checkTarget
set targetDirEsc=%targetDir:&=^&%
set firstChar=%targetDir:~0,1%
if ^%firstChar% EQU ^" set targetDir=%targetDirEsc:~1,-1%
set targetDirDisplay=%targetDir:&=^^^&%
set prjDest="%targetDir%\%prjName%"
if not exist "%targetDir%" (
md "%targetDir%"
echo.
echo Created target directory %targetDirDisplay%
goto :copyProject
) else (
if exist %prjDest% (goto :targetFound) else (goto :copyProject)
)
ENDLOCAL
exit /B
:badArgCount
echo.
echo This utility can be run as a single command with the following syntax:
echo.
echo promote.bat [projectName] [projectLocation] [scriptName] [promotionTarget].
echo.
goto :getProject
:noProject
echo.
echo You have specified a project %prjNameDisplay% in the directory %prjDirDisplay%.
echo This could not be found. Please try again.
echo.
goto :getProject
:badScrExt
echo.
echo Your Autocad script must have the extension ".scr" and you specified %scrNameDisplay%.
echo Please try again.
echo.
goto :getScript
:scrFound
echo.
echo An Autocad script with the name %scrNameDisplay% is already present in the working directory.
echo Delete this script or specify a different script name.
echo.
goto :getScript
:targetFound
echo.
echo A project with name %prjNameDisplay% was found in the target area %targetDirDisplay%.
echo Delete this project or specify another target area.
echo.
goto :getTarget
:copyProject
echo.
CLS
echo Copying project %prjNameDisplay%...
xcopy %project% %prjDest% /E /I /Q /H
attrib -A -R %prjDest% /D /S
echo Copied project %prjNameDisplay% to %prjDest%.
echo.
goto :genScript
:genScript
echo.
set count=0
@for /R %prjDest% %%i in (*.dwg) do (
set /a count+=1
echo _open "%%i">>"%scrName%"
echo _qsave>>"%scrName%"
echo _close>>"%scrName%"
)
echo Found %count% DWG files to be updated in the project %prjNameDisplay%.
set /a totalFiles=%count%
set count=0
@for /R %prjDest% %%i in (*.dwt) do (
set /a count+=1
echo _open "%%i">>"%scrName%"
echo _qsave>>"%scrName%"
echo _close>>"%scrName%"
)
echo Found %count% DWT files to be updated in the project %prjNameDisplay%.
echo.
set /a totalFiles=%totalFiles%+%count%
if %totalFiles% == 0 (
echo.
echo No DWG or DWT files were found in the project %prjName%!
echo There is nothing to promote.
echo.
echo Deleting the copy of %prjName% from %targetDir%.
echo The directory %targetDir% has been retained in case other folders or files are present.
echo.
RMDIR /Q/S %prjDest%
) else (
echo.
echo TO COMPLETE THE PROMOTION:
echo.
echo [1] Start ADT and make sure that a project is NOT currently active.
echo [2] Disable the previous version courtesy dialog using the AecFileOpenMessage command.
echo [3] Verify that the copy of the project located at %targetDirDisplay% has the same
echo file count as the original copy located at %prjDirDisplay%.
echo [4] Run the script %scrNameDisplay%.
@for /R %prjDest% %%i in (*.dws) do (
set /a foundDWS=1
goto :break
)
:break
if DEFINED foundDWS (
echo [5] Resave the following DWS file^(s^), making sure to preserve filenames.
echo ^(These cannot be promoted via a script as DWT and DWG files can.^)
echo.
@for /R %prjDest% %%i in (*.dws) do (
echo %%i
)
)
echo.
echo.
echo The project %prjNameDisplay% located in %targetDirDisplay% will then be promoted
echo to the current file format.
echo.
echo After this process is complete you may use this project
echo where it currently resides, or replace the old one with this new copy.
echo.
)
ENDLOCAL
exit /B
------------------------------------------------------------------------------------------------------

Risoluzione dei problemi

Durante l'utilizzo dello script, quando un disegno di una versione precedente viene aperto, se viene visualizzata una finestra di dialogo lo script viene interrotto. Per continuare a salvare nuovamente i disegni nella versione corrente:
  1. Modificare il file di script e rimuovere tutti i riferimenti fino all'ultimo disegno della precedente versione che è stato correttamente salvato.
  2. Identificare il motivo della visualizzazione imprevista della finestra di dialogo e adottare le misure necessarie per chiuderla.
  3. Rieseguire il file di script modificato. Gli altri disegni copiati dovrebbero essere salvati nella versione corrente.
Quindi, se l'esecuzione dello script si interrompe ripetutamente a causa della visualizzazione di finestre di dialogo impreviste, immettere AecFileOpenMessage nella riga di comando del Set di strumenti AutoCAD Architecture 2024 e impostare il valore su No.
Importante: Ripristinare il valore di AecFileOpenMessage nuovamente su al termine del processo di salvataggio.