Your comments

Thank you for your answer. This was useful for me.

I have no time for trying to that because my project presentation will be just in a few days. Anyway I must do that with server based database. I can't use local database like SQLite.

I am also using MSSQL Server 2012 but it is not mine. I am use a free hosting service called It gives 15MB free MSSQL 2012 and when I load data about size of 5-9MB it loads very slow like around 60 seconds.

Is this because of using free hosting or it is normal for that given size of data.

Update#1: I store STL files in database. Firstly I convert STL file to binary, then read all bytes. To store database I partitioning it to 400KB for each part. Then I load all of part to database sequentially. Therefore its much faster to load part by part contrary loading all files in one step.

For any answer which present improved solution I will accept it. Because I know that this method is very simple and not enough for performance while getting all parts consume a lot of time(i.e for 3MB file it needs 3-5 minutes approximately).

For who's wondering, I found that I made a mistake. I am load STL files using modelimporter class. And it returns Model3DGroups, not like Model3D. So actually I store in dictionary Model3DGroup. Because of that it gives error when comparing Model3D and Model3DGroup. So I fixed the error storing to dictionary Model3DGroup.Children[0].

If you still looking for answer I have found a hit testing method a couple of days ago and it works to me perfectly.

Like you do, I am select one model from among of many model and color it differently from others.

The solution is here;