Imports a model from an .emdl file. To execute this command a .emdl file is required.
By default the model is imported as a regular model, but if the argument Reference is True, the model
will be imported as a referenced model. When importing a referenced model, the model is loaded in the scene
but a referenced model is never saved with a scene. Each time a scene that contains referenced models is loaded,
all referenced models are imported from their original location.
Note: There is a preference to add a prefix (referenced_) to the model name when importing a referenced model.
The option is turned on by default. The preference is located under: preferences.General.refmodelprefix
You can access this command from the main menu in File->Import->Model.
This command supports the downloading of files off the internet. If the filename
specified is a URL then the file will be downloaded locally before the command
is executed.
Warning: This command is undoable since version 4, but note that when undoing an import model, only the model is
deleted, all objects that are nested under a different container like materials, image clip, etc. are not deleted.
You can use the different commands to cleanup un-used material or image clips. Undoing ImportModel on a referenced
model has no effect.
Note: This command uses output arguments. C# and some
scripting languages (such as JScript, PerlScript and Python) don't support arguments passed by reference so you
need to use the best workaround for your situation:
For scripting languages this command returns an ISIVTCollection
which you can use to get the output arguments.
For C# you can use the XSIApplication.ExecuteCommand method to call this command. ExecuteCommand
packs the output arguments into a C# System.Object containing an Array of the output arguments (see
Calling Commands from C#).
ImportModel( FileName, [Parent], [Reference], [Value], [Name], [ShareOptions], [ExternalCnxMappingTemplate] ); |
Parameter | Type | Description |
---|---|---|
FileName | String | Name of the model file to import. |
Parent | String | Object or model to use as the parent of the imported model |
Reference | Boolean |
As of v6.0, this parameter is obsolete. To import model as a referenced model, use the
CreateRefModel command instead.
Default Value: False |
Value | Model | Returns the model |
Name | String | The name to give to the model imported |
ShareOptions | siImportShareOptions |
Bit field values of type Integer that specify the different options
for sharing objects when importing a model. See siImportShareOptions to know what can be shared during model import. Sharing image clips: Image clips are identical if they refer to the same image source and all their parameters are equal, therefore FCurves on the parameters are ignored for the comparaison. Note that the image sources are always shared when importing a model. Sharing Materials: Materials are identical based on their name, their library, their number of shaders and their shaders' order. If we find a material with the same library.materialName, the same number of shaders which appear in the same order, we reuse it. Sharing Layers/Partitions: Layers and partitions are shared also based on their name. When the model is exported it remember the name of the layers and partitions for each objects, so when importing a model, and there is a layer or a partition with the same name the object goes in it. Referenced models share only image clips that are locked by referenced models, or if the image clip is unused. Standard models share only imageclips that are not locked at all. Default Value: siImportShareOptionsImageClips AND siImportShareOptionsLayers AND siImportShareOptionsPartitions |
ExternalCnxMappingTemplate | String |
This parameter contains a list of model separated by a comma, that is used to resolved
the objects that we try to reconnect at the end of the import of referenced models. If this parameter is not null, the model is reconnected at the end of the import, else no reconnection is done. For referenced model only (when the parameter Reference is True): We always reconnect the model. If this parameter is null we will try to reconnect it to the original model name when the model was first exported. |
'--------------------------------------------------------- ' VBScript example : Importing and exporting models using ' the ImportModel/ExportModel commands. Models and submodels ' are created and then exported and imported in this example. '--------------------------------------------------------- ' First create a model, a submodel, and primitives within them. SICreateModel , "SubModel" SICreateModel "SubModel", "Model" CreatePrim "Torus", "MeshSurface", "MyTorus", "SubModel" CreatePrim "Cube", "MeshSurface", "MyCube", "Model" ' Now export the models, once exporting submodels, and once not. emdlFile = Application.InstallationPath( siUserPath ) & "\Model.emdl" emdlSubFile = Application.InstallationPath( siUserPath ) & "\Model_with_Submodels.emdl" ExportModel "Model", emdlFile, False ExportModel "Model", emdlSubFile, True ' Now delete the models/primitives of the scene (so we can re-import them), DeleteObj "Model.SubModel.MyTorus" DeleteObj "Model.SubModel" DeleteObj "Model.MyCube" DeleteObj "Model" ' Now import the exported files. One as a referenced model, the other not. ImportModel emdlFile, , False, , "Model (no submodels, not referenced)" ImportModel emdlSubFile, , True, , "Model (with submodels, referenced)" '--------------------------------------------------------- 'INFO : Output from this script: 'INFO : "4152 - Data loaded from file <UserPath>\Model.emdl was created with build number: <build_num> - compatibility version: 300" 'INFO : "4152 - Data loaded from file <UserPath>\Model_with_Submodels.emdl was created with build number: <build_num> - compatibility version: 300" 'INFO : Object: "Model___no_submodels__not_referenced_.MyCube" 'INFO : Object: "Model___with_submodels__referenced_.MyCube" 'INFO : Object: "Model___with_submodels__referenced_.SubModel.MyTorus" '--------------------------------------------------------- |
' This will import test.emdl as a ref model and reconnect envelop operators on deformers which are in model test2 ImportModel "T:\XSI_Project\Models\test.emdl", , True, ,,true, "test2" |