How to integrate xBim in Unity? - unity3d

I have installed xBim using NuGet for unity, and it is working well until I try to use the GeometryEngine to create 3D shapes:
using (IfcStore model = IfcStore.Open(filename, null))
{
var context = new Xbim3DModelContext(model);
context.CreateContext();
}
context.CreateContext(); causes an error. At first I got:
FileNotFoundException: Could not load file or assembly 'Xbim.Geometry.Engine.dll' or one of its dependencies
Which is a bit strange since I did install the geometry engine in NuGet, but then I tried to compile the DLLs for the github project here:
https://github.com/xBimTeam/XbimGeometry
And copied them into the plugins folder. Now I do not get any error message, but Unity will crash to desktop on execution of context.CreateContext();
I have been searching online, but have been unable to find any workaround. Any suggestions are appreciated.

I don't have the answer (currently also trying to use xBim in Unity), but what I found looking throught the topics listed here:
https://github.com/xBimTeam/XbimGeometry/issues?utf8=%E2%9C%93&q=unity+
is that there is not direct solution for this. The workaround, mentioned in a couple of places, is to make the conversion from .ifc to .weBIM in an small external .NET support program. See this:
https://github.com/xBimTeam/XbimGeometry/issues/109
Hope this somewhat helps. If you have another solution I would like to hear it.

Related

Project looking for own DLL in another project

I'm currently trying to move a solution with multiple projects from VS 2015 to VS 2019.It consists of one application and a couple of class libraries, target framework for each is .net 4.5.1. I have made a local copy of the solution to do this.
Most of the projects compile without a problem, but some of the one that are used as AddIns for the application don't.
When trying to build, doesn't matter if the projects by themselves or the whole solution, it fails because it's looking for itself. In my example picture, the project ZZ_WPF_Bank_AddIn is, while trying to build, is looking for the ZZ_WPF_Bank_AddIn in the bin folder of another project in the solution.
I tried just copying the dll from the original project, to see what happens, but it just points to the same dll missing in another project.
Has someone encountered this behaviour before? I tried googling it, but couldn't find anything useful.enter image description here
For anyone who might stumble upon this:
The solution to my problem was removing all references to projects inside the solution and adding them via Browse, noch via the projects tab on the left side. For some reason the bindings were not working properly after the migration.

TypeLoadException after loading .NET 4.5 C# DLL into Unity 2018.2.5

I want to be able to feed the camera frames from a webcam into Unity. I made a .NET 4.5 C# DLL using MediaFrameReader and event listeners. Here is some other user's implementation for accessing the Hololens camera frames: Hololens - Access Camera Frames.
When I import the DLL into my 2018.2.5 Unity project, it gives me the following error:
Unloading broken assembly "....", this assembly can cause crashes in the runtime
TypeLoadException: Could not find method due to a type load error
The C# plugin built successfully many times on Visual Studio. Also, I have properly set the Api Compatibility Level (in player settings) to .NET 4.x. What could be the fix to this?
All the other SO answers related to this I have already taken a look, but does not seem to help the problem. Thanks for all the help.
EDIT: https://issuetracker.unity3d.com/issues/unity-fails-to-load-net-4-dot-6-assemblies-with-typeloadexception is the most relatable post, but had no solution.
I have few possible solutions for you to explore.
DLLs issues:
Workaround:
Comment your UWP code (the part that uses the DLL), then build it in UNITY without the DLL. In the generated UWP solution, install the package from nuget or manually import the dll, then uncomment your code and finish your development. This is a short-term solution.It is going to be annoying as you re-build your solution many times and have to comment/uncomment then re-add dlls and so on.
Other possible solutions:
Failed to run reference rewriter with command error with unity error when adding a DLL to the assets folder
Your exact need
From your description, you really do not need everything in the link you referenced (Hololens - Access Camera Frames). You need much simpler version. I recently created MediaCapture solution for HoloLens as a workaround because PhotoCapture in Unity is not working in the HoloLens and everything is working without any additional DLLs. I will post for you few links to see if it may help you:
MediaCapture Unity & HoloLens: https://github.com/MSAlshair/HoloLensMediaCapture
This maybe a good start for you. You can combine it with your original reference. Use this project as starting point to make sure your project is building correct, then use the necessary code from the other resource that you posted to accomplish the task that you desire. You may need to download Unity 2018.2.12f1 because I didn't test it in 2018.2.5
MediaCapture & PhotoCapture: Hololens font camera
Good Luck!

Multiple _PublishedWebsites Folders

I am using VS Code on Manjaro and have setup a solution with 2 projects, a webapp and a test project.
Each time I do a build it appears to generate a new _PublishedWebsites folder with NetCoreApp underneath it. I am surprised that nobody else seems to have encountered this issue. Can anyone tell me why this is happening and how to fix it?
Many thanks.
You should check your csproj file, particularly PublishDir element which is your specified location for publishing output files and change that if your like.
However, I think this is required behavior for .net core support in app harbor, find more details in the support webpage over here.

XLET - how to create a simple xlet MHP javax.TV

I'm trying to create my first xlet project.
Can you help me?
I don't know which library I need to download.
What kind of project I have to create? (I'm using netbeans)
This site has a lot of useful info:
http://www.interactivetvweb.org/tutorials/javatv/first_xlet
You can use XletView to view your Xlet.
http://sourceforge.net/projects/xletview/
You will need to get a hold on the various API's, which is somewhat troublesome (I've heard).
But there are also other ways of getting them. For example, if you own PowerDVD, you'll be able to find BDJ.jar somewhere in that package. Add that to your classpath, and you'll be able to compile your Xlet.
If you're running Windows, you can probably develop Xlets with JavaME SDK 3.0 too (sadly not available for Linux though).

MvxImageViewLoader and plugin

I was having trouble getting the MvxImageViewLoader to work when I came across this post:
MvxImageViewLoader binding not working
Which after reading and going back to the N+2 tutorial, I realized that I'd missed adding the File and DownloadCache plugins (this is why video tutorials are such a pain, impossible to skim). So I installed them via nuget, but now when I try and start my application, before the first view even loads, I get this exception:
System.MissingMethodException: Method not found: 'Cirrious.MvvmCross.Binding.Binders.MvxRegistryFillerExtensions.Fill'.
Any idea what I've missed now?
Make sure all your nuget packages are from the same version.
MissingMethodException is most likely caused by having different versions in the same project.