Skip to main content

VIM Tool

VIM Tool (vim.vimtool.exe) is a Windows command-line tool that enables you to edit, convert, or investigate VIM files, and perform database operations.

  • To install VIM Tool, you must have the Vim.VimTool.vx.x.xx.zip file.
  • Before you can use VIMTool, you must install a VIM license file. For more information, see Installing the VIM License File.

Installing VIM Tool

  1. Create a folder for the VIM Tool files, for example, C:\Program Files\VIM\VIMTool.
  2. Using Windows Explorer, copy the Vim.VimTool.vx.x.xx.zip file to the folder you created and extract the files.
  3. With Windows Explorer open to the folder you created, type cmd in the address bar. A command prompt will appear, set to the current folder location.
    cmd

Working with VIM Tool

VIM Tool enables you to edit, convert, and investigate VIM files, and also perform SQL database operations.

NOTE: The parameters below are common for all functions.

ParameterDescription
-l --logThe log file path
--helpDisplays help
--versionDisplays version information

Editing VIM files

Merge

The merge function will combine two or more VIM files. You can create a single VIM file from a collection of Revit projects, links, or combine IFC and Revit projects. In some cases, it will be faster to export per-discipline Revit projects and merge the resulting VIM files as a single VIM file than it would be to export the main Revit project containing all linked disciplines.

Example:

vim.vimtool.exe merge -i "c:\vim\vimfile1.vim" "c:\vim\vimfile2.vim" -o "c:\vim\vimfile1and2merged.vim"
ParameterDescription
-i --inputRequired. The input file paths of the VIM files to merge
-o --outputRequired. The output file path
--nobim(Default: false) Removes BIM data from the output.
-g --grid(Default: false) Merges all files into a grid
-e --show-extents(Default: true) Prints the bounding box extents of each input file.
-p --padding(Default: 5) The grid cell padding value

De-duplicate

The dedup function will de-duplicate meshes in a VIM file. It can reduce VIM file size significantly without losing BIM integrity.

Example:

vim.vimtool.exe dedup -i "c:\vim\vimfile1.vim" -o "c:\vim\vimfile1deduplicated.vim"
ParameterDescription
-i --inputRequired. The input file path
-o --outputRequired. The output file path

Strip Images

The strip function will strip images (for example texture maps) out of the VIM file to reduce file size.

Example:

vim.vimtool.exe strip -i "c:\vim\vimfile1.vim" -o "c:\vim\vimfile1stripped.vim"
ParameterDescription
-i --inputRequired. The input file path
-o --outputRequired. The output file path

Center To Origin

The center function will move a VIM file to an origin based on the specified method.

Example:

vim.vimtool.exe center -i "c:\vim\vimfile1.vim" -o "c:\vim\vimfile1centered.vim" -m Average
ParameterDescription
-i --inputRequired. The input file path
-o --outputRequired. The output file path
-m --modeBoxCenterBottom: Centers the VIM based on the bottom center of its bounding box
BoxCenter: Centers the VIM based on the center of its bounding box
Average: Centers the VIM based on the average position of its mesh vertices.
FirstQuartile: Centers the VIM based on the first quartile of its mesh vertices.
Median: Centers the VIM based on the median of its mesh vertices.

Converting VIM files

Update Version

The update function will update legacy VIM files (version 0.9) to version 1.0.

Example:

vim.vimtool.exe update -i "c:\vim\vimfile1.1.XX.vim" -o "c:\vim\vimfile1.2.XX.vim"
ParameterDescription
-i --inputRequired. The input file path
-o --outputRequired. The output file path

JSON

The json function will convert a VIM file to JSON. The JSON file format is not recommended for large projects.

Example:

vim.vimtool.exe json -i "c:\vim\vimfile1.vim" -o "c:\vim\vimfileasJSON"
ParameterDescription
-i --inputRequired. The input file path
-o --outputRequired. The output JSON file path

Quantity Take Off

The qto function will convert a VIM file to a Quantity Take Off document.

Example:

vim.vimtool.exe qto -i "c:\vim\vimfile1.vim" -o "c:\vim\vimfile1.xlsx" --flex --pretty
ParameterDescription
-i --inputRequired. The input file path
-o --outputRequired. The output file path. Supports .xlsx, .xlsm, .xltx or .xltm.
--csvWrite to csv only
--flexWrite to csv if the file is too big for Excel.
--prettyAdjust column size.

Pixar USD

The omniverse function will convert a VIM file to a Pixar USD format.

NOTE: You need an NVIDIA RTX GPU to run Nvidia Omniverse, which reads USD files.

Example:

vim.vimtool.exe omniverse -i "c:\vim\vimfile1.vim" -o "c:\vim\vimusdfolder"
ParameterDescription
-i --inputRequired. The input file path
-o --outputRequired. The output USD file path

SQL Database Functions

NOTE: You can use the other SQL verbs with SQLEXPRESS even though the examples aren't listed here.

VIM SQL schema

The sql-init function will create a VIM database schema.

Example for SQL database on Azure:

vim.vimtool.exe sql-init -c "Server=[server address],1433;Initial Catalog=[database name];Persist Security Info=False;User ID=[user name];Password=[password];MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

Example for local SQL Server Express database:

vim.vimtool.exe sql-init -c "Server=localhost\SQLEXPRESS;Database=[database name];Trusted_Connection=True;"
ParameterDescription
-cRequired. Connection string

Migrate SQL Schema

The sql-migrate function will migrate the SQL database designated by the connection string.

Example for SQL database on Azure:

vim.vimtool.exe sql-migrate -c "Server=[server address],1433;Initial Catalog=[database name];Persist Security Info=False;User ID=[user name];Password=[password];MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

Example for local SQL Server Express database:

vim.vimtool.exe sql-migrate -c "Server=localhost\SQLEXPRESS;Database=[database name];Trusted_Connection=True;"
ParameterDescription
-v --versionRequired. VIM schema version to migrate the database to. If not specified, the database is migrated to the latest version.
-f --fileVIM file path to extract the schema version from
-cRequired. Connection string

SQL Insert

The sql-insert function will load a VIM file to the specified SQL database.

Example for SQL database on Azure:

vim.vimtool.exe sql-insert -i "c:\vim\vimfile1.vim" -c "Server=[server address],1433;Initial Catalog=[database name];Persist Security Info=False;User ID=[user name];Password=[password];MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

Example for local SQL Server Express database:

vim.vimtool.exe sql-insert -i "c:\vims\vimfile1.vim" -c "Server=localhost\SQLEXPRESS;Database=[database name];Trusted_Connection=True;"
ParameterDescription
-f --fileThe input file path
-cRequired. Connection string

Clash SQL Insert

The clash-sql-insert function will load clash data from a VIM project file (.vimprojx) to the specified SQL database. Follow these clash instructions first.

NOTE: The VIM file must already be added to the target database via sql-insert (see above). If it is not present, no clashes will be added.

Example for SQL database on Azure:

vim.vimtool.exe clash-sql-insert -i "c:\vim\vimproject1.vimprojx" -c "Server=[server address],1433;Initial Catalog=[database name];Persist Security Info=False;User ID=[user name];Password=[password];MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

Example for local SQL Server Express database:

vim.vimtool.exe clash-sql-insert -i "c:\vims\vimproject1.vimprojx" -c "Server=localhost\SQLEXPRESS;Database=[database name];Trusted_Connection=True;"
ParameterDescription
-f --fileThe input file path
-cRequired. Connection string

SQL List

The list function lists all VIM file IDs in the specified SQL database.

Example for SQL database on Azure:

vim.vimtool.exe sql-list -c "Server=[server address],1433;Initial Catalog=[database name];Persist Security Info=False;User ID=[user name];Password=[password];MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

Example for local SQL Server Express database:

vim.vimtool.exe sql-list -c "Server=localhost\SQLEXPRESS;Database=[database name];Trusted_Connection=True;"
ParameterDescription
-cRequired. Connection string

SQL Delete

The sql-delete function will delete a VIM file from the specified SQL database.

Example for SQL database on Azure:

vim.vimtool.exe sql-delete --id [ID of VIM] -c "Server=[server address],1433;Initial Catalog=[database name];Persist Security Info=False;User ID=[user name];Password=[password];MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

Example for local SQL Server Express database:

vim.vimtool.exe sql-delete --id [ID of VIM] -c "Server=localhost\SQLEXPRESS;Database=[database name];Trusted_Connection=True;"
ParameterDescription
--idRequired. Id of the VIM file in the SQL database
-cRequired. Connection string

SQL Replace

The sql-replace function will replace a VIM file in the specified SQL database.

Example for SQL database on Azure:

vim.vimtool.exe sql-replace --id [ID of VIM] -i "c:\vim\vimfile1.vim" -c "Server=[server address],1433;Initial Catalog=[database name];Persist Security Info=False;User ID=[user name];Password=[password];MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

Example for local SQL Server Express database:

vim.vimtool.exe sql-replace --id [ID of VIM] -i "Server=localhost\SQLEXPRESS;Database=[database name];Trusted_Connection=True;"
ParameterDescription
--idRequired. Id of the VIM file to be replaced in the SQL database
-cRequired. Connection string

Investigating VIM Files

Info

The info function will print information about the VIM file version and the object model version.

Example:

vim.vimtool.exe info -i "c:\vim\vimfile1.vim"
ParameterDescription
-i --inputRequired. The input file path

Version

The version function will print the version of the vim.vimtool.exe being used.

Example:

vim.vimtool.exe version