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.
Operating Systems: Windows, Linux
Please contact us for the following:
- The Vim.VimTool.vx.x.xx.zip package
- A valid VIM license string
Before you can use VIMTool, you must install a VIM license file. For more information, see Installing the VIM License File.
Installing VIM Tool
- Create a folder for the VIM Tool files, for example,
C:\Program Files\VIM\VIMTool
. - Using Windows Explorer, copy the Vim.VimTool.vx.x.xx.zip file to the folder you created and extract the files.
- 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.
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.
Parameter | Description |
---|---|
-l --log | The log file path |
--help | Displays help |
--version | Displays 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"
Parameter | Description |
---|---|
-i --input | Required. The input file paths of the VIM files to merge |
-o --output | Required. 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"
Parameter | Description |
---|---|
-i --input | Required. The input file path |
-o --output | Required. 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"
Parameter | Description |
---|---|
-i --input | Required. The input file path |
-o --output | Required. 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
Parameter | Description |
---|---|
-i --input | Required. The input file path |
-o --output | Required. The output file path |
-m --mode | BoxCenterBottom : 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"
Parameter | Description |
---|---|
-i --input | Required. The input file path |
-o --output | Required. 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"
Parameter | Description |
---|---|
-i --input | Required. The input file path |
-o --output | Required. 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
Parameter | Description |
---|---|
-i --input | Required. The input file path |
-o --output | Required. The output file path. Supports .xlsx, .xlsm, .xltx or .xltm. |
--csv | Write to csv only |
--flex | Write to csv if the file is too big for Excel. |
--pretty | Adjust 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"
Parameter | Description |
---|---|
-i --input | Required. The input file path |
-o --output | Required. 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;"
Parameter | Description |
---|---|
-c | Required. 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;"
Parameter | Description |
---|---|
-v --version | Required. VIM schema version to migrate the database to. If not specified, the database is migrated to the latest version. |
-f --file | VIM file path to extract the schema version from |
-c | Required. 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;"
Parameter | Description |
---|---|
-f --file | The input file path |
-c | Required. 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;"
Parameter | Description |
---|---|
-f --file | The input file path |
-c | Required. 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;"
Parameter | Description |
---|---|
-c | Required. 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;"
Parameter | Description |
---|---|
--id | Required. Id of the VIM file in the SQL database |
-c | Required. 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;"
Parameter | Description |
---|---|
--id | Required. Id of the VIM file to be replaced in the SQL database |
-c | Required. 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"
Parameter | Description |
---|---|
-i --input | Required. The input file path |
Version
The version
function will print the version of the vim.vimtool.exe being used.
Example:
vim.vimtool.exe version