FAQ : Comment réenregistrer un projet ou un dossier contenant des fichiers de dessin dans la version courante ?

Réenregistrez un projet ou un dossier contenant des fichiers de dessin d'une version antérieure vers la version courante à l'aide d'un fichier de traitement par lots.

Vous pouvez automatiser le réenregistrement des fichiers de dessin enregistrés dans des versions précédentes du AutoCAD Architecture 2024 toolset vers la version courante à l'aide d'un fichier de commandes.

L'exécution du fichier de traitement par lots crée une copie complète du projet ou du dossier contenant les dessins dans une version précédente. Il recherche ensuite de façon répétée tous les fichiers DWG, DWT et DWS situés à cet emplacement et génère un fichier script.

Suite à l'exécution du fichier script, chaque fichier DWG et DWT copié est ouvert, enregistré et fermé. Ainsi, tous les fichiers DWG et DWT sont réenregistrés dans la version courante.

Le script affiche les chemins d'accès aux fichiers DWS, que vous devez ouvrir et enregistrer dans la version courante.

Important : Veillez à créer une copie de sauvegarde de tous les fichiers avant d'exécuter les fichiers script et de traitement par lots. Si vous avez copié un projet dans un nouvel emplacement, actualisez le chemin du projet avec la version d'origine du AutoCAD Architecture 2024 toolset avant d'exécuter le fichier de commandes.

Pour importer des fichiers dans la version courante à l'aide d'un fichier de traitement par lots

    Important : Assurez-vous de suivre précisément la procédure.
  1. Ouvrez le Bloc-notes de Microsoft®.
  2. Copiez le texte (fichier de traitement par lots) figurant entre les deux lignes en pointillé et collez-le dans le Bloc-notes.
  3. Enregistrez le fichier sous le nom promote.bat et fermez le Bloc-notes.
  4. Sur la ligne de commande Windows®, exécutez le fichier promote.bat en utilisant la syntaxe suivante :
    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.
    Remarque : Les arguments contenant des espaces doivent figurer entre guillemets. Par exemple, si vous possédez des dessins enregistrés dans des versions antérieures et stockés dans le dossier R:\CAD_Files\Projects\2010\Hospital, et si vous souhaitez que les fichiers réenregistrés soient créés dans le dossier R:\CAD_Files\Projects\2014\Hospital, utilisez la syntaxe suivante :
    promote.bat Hospital R:\CAD_Files\Projects\2010\ promote.scr R:\CAD_Files\Projects\2014
  5. Une fois l'opération terminée, un fichier script au nom que vous avez indiqué est généré dans le même dossier que le fichier promote.bat. Exécutez le fichier script afin de réenregistrer automatiquement chaque dessin copié situé à l'emplacement [CiblePromotion] vers la version courante.

Fichier de traitement par lots

--------------------------------------------------------------------------------------------
@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
------------------------------------------------------------------------------------------------------

Dépannage

Lors de l'exécution de ce script, lorsqu'un dessin d'une version précédente est ouvert, le script se termine si une boîte de dialogue s'affiche. Pour poursuivre le réenregistrement des dessins restants vers la version courante :
  1. Modifiez le fichier script et supprimez toutes les références jusqu'au dernier dessin de la version précédente ayant été réenregistré.
  2. Identifiez la raison pour laquelle la boîte de dialogue s'est affichée de manière inattendue et effectuez les actions requises pour ne plus l'afficher.
  3. Exécutez le fichier script modifié. Les autres dessins copiés doivent être réenregistrés dans la version courante.
Si le script s'interrompt alors fréquemment en raison de l'affichage inattendu des boîtes de dialogue, entrez AecFileOpenMessage sur la ligne de commande du AutoCAD Architecture 2024 toolset et remplacez la valeur par Non.
Important : Réaffectez à AecFileOpenMessage la valeur Yes une fois le réenregistrement terminé.