# Create Instance of imported AbstractMesh

**URL:** https://forum.babylonjs.com/t/create-instance-of-imported-abstractmesh/31752
**Category:** Questions
**Tags:** instances, mesh
**Created:** [June 29, 2022, 2:33am UTC](https://forum.babylonjs.com/t/create-instance-of-imported-abstractmesh/31752 "2022-06-29T02:33:44Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![jayypluss](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/jayypluss/32/24852_2.png) [@jayypluss](https://forum.babylonjs.com/u/jayypluss)
#### Post date: [June 29, 2022, 2:33am UTC](https://forum.babylonjs.com/t/create-instance-of-imported-abstractmesh/31752/1 "2022-06-29T02:33:44Z")

</div>

I want to create instances of an Imported mesh, is that possible?

I’m using Typescript and importing a mesh with ImportMeshAsync  
eg.:

```auto
const importResult = await SceneLoader.ImportMeshAsync(null, "/assets/", "stuff.gltf", this.scene)

const mesh = importResult.meshes[0]
mesh.isVisible = false
for (var index = 0; index < 2; index++) {
      let newInstance = mesh.createInstance("i" + index)
}

```

But TS gives an error since the import result meshes are AbstractMeshes and `createInstance()`is not a valid method for them.

What would be the correct approach here if I want to make instances of the imported mesh?

From the docs: [Instances | Babylon.js Documentation](https://doc.babylonjs.com/divingDeeper/mesh/copies/instances#how-to-use-instances)

---

<div class="post-metadata">

### Author: ![slin](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/slin/32/36084_2.png) [@slin](https://forum.babylonjs.com/u/slin)
#### Post date: [June 29, 2022, 5:27am UTC](https://forum.babylonjs.com/t/create-instance-of-imported-abstractmesh/31752/2 "2022-06-29T05:27:41Z")

</div>

You can ‘cast’ the type from AbstractMesh to Mesh:

`const mesh = importResult.meshes[0] as BABYLON.Mesh`

---

<div class="post-metadata">

### Author: ![jayypluss](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/jayypluss/32/24852_2.png) [@jayypluss](https://forum.babylonjs.com/u/jayypluss)
#### Post date: [June 29, 2022, 4:26pm UTC](https://forum.babylonjs.com/t/create-instance-of-imported-abstractmesh/31752/3 "2022-06-29T16:26:19Z")

</div>

Right, I’ve actually done that, but is this the correct way? Won’t it have any implications like possible errors of some sort?

---

<div class="post-metadata">

### Author: ![slin](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/slin/32/36084_2.png) [@slin](https://forum.babylonjs.com/u/slin)
#### Post date: [June 29, 2022, 4:56pm UTC](https://forum.babylonjs.com/t/create-instance-of-imported-abstractmesh/31752/4 "2022-06-29T16:56:44Z")

</div>

Not sure if I can explain this clearly: It is your gltf model and if you tested it works, it won’t change. So there won’t be surprising runtime error.

If you don’t know it in advance, you could do a type check like this:

```auto
if (mesh instanceof BABYLON.Mesh) {
   ...
}

```
