What is SolidEdgeContrib in Nuget? How do I get started?

Besides that, I'm an experienced developer trying to get a handle on the tools in SolidEdge.  I'm finding the standard documentation very terse, and the online contributions very scattered.  This project is an example.  It exists, but it's not explained.  I still don't have a clear idea of where I should start, except to just use search tools extensively and try to hack bits and pieces into a program.


Re: What is SolidEdgeContrib in Nuget? How do I get started?



Welcome to the community and thanks for your questions. I'll try to answer each one and add additional information where possible. First, I'll give you some helpful links.



"What is SolidEdgeContrib in Nuget?"

I created the SolidEdgeContrib NuGet package while working on the Samples for Solid Edge on CodePlex. The reason that I created it was because I found myself writing common code over and over again. I realized that I could save myself and other a lot of time if I would package up the common code into a package that we could all reuse.


The description of the NuGet package states: "Community provided package that enhances custom Solid Edge development. Solid Edge Interop types (Interop.SolidEdge NuGet package) are embedded and ready to use. Community developed helper classes, extensions methods, etc. are the core of this package."


"How do I get started?"

The Samples for Solid Edge on CodePlex was created to address that exact question. I discuss it in this blog post. Spy for Solid Edge will also help you learn the API as described in this blog post.


"I'm finding the standard documentation very terse"

Most will agree with you on that observation. I will say though, I have been a customer of Solid Edge for almost 15 years now and the documentation is light years better than it used to be. Siemens has heard the community on this topic and has put forth effort to improve the documentation. The API is so large though, it's difficult to even notice when they do add valuable content. I created the Samples for Solid Edge on CodePlex to help with that. To give you working real world examples of how to use the API, which is what we all mostly want anyways.


"and the online contributions very scattered"

I agree with you and I am making an effort to consolidate. We are a small community with few contributors. We started our open source initiative on CodePlex a few years back but it quickly felt "scattered" as you described. I have started the effort of moving us to GitHub. Some things will remain on CodePlex but the core of the open source code will live at the Solid Edge Community on GitHub page. The reason you don't see more information about this is because we are still in a transition so I have not blogged about it yet. I didn't want to confuse people since things were still in flux.


I am working very hard to wrap up our transition to GitHub and am very close. Some of the NuGet packages are being renamed and moved around for clarity but I will blog and make videos discussing the functionality. We are not open source experts so we're learning as we go and are very open to suggestions and criticism, so thank you for your input. I am personally willing to help in any way that I can. It is not uncommon for me to help people via email or Skype. Just ask if you're interested.


Jason Newell
Applications Architect

Re: What is SolidEdgeContrib in Nuget? How do I get started?

It appears to me that "Solid Edge Community Contributions" and "Solid Edge Interop Assembly" contain essentially the same stuff, but the latter is newer and has a higher version.  Is this correct?


Now, while following a tutorial I found (Automation - Parametric Parts by Tushar) I created a new C# project, and then decided to try the Nuget system to install Solid Edge Interop Assembly to the project.  I got this:


Installing 'Interop.SolidEdge 106.8.1'.
Successfully installed 'Interop.SolidEdge 106.8.1'.
Adding 'Interop.SolidEdge 106.8.1' to ParametricShaft.
Successfully added 'Interop.SolidEdge 106.8.1' to ParametricShaft.


 The dialog never completed, so I had to kill Visual Studio.

Re: What is SolidEdgeContrib in Nuget? How do I get started?

I couldn't get that one to work, but the other one does seem to work.

Re: What is SolidEdgeContrib in Nuget? How do I get started?



You're observations were correct. The SolidEdgeContrib assembly did have the Interop.SolidEdge assembly embedded. I created the SolidEdgeContrib package before my presentations at Solid Edge University this year. In hindsight, I should have flagged the assembly as pre or alpha. Needless to say, things were in flux but they have all been ironed out now.


Moving forward, the following packages are the future direction:

I'm currently working on updating the Samples, templates and documentation. I had hoped to get it all done this weekend but I came up short. Before the end of this week, I will have a new release of the samples, templates and new YouTube videos demonstrating everything.


Regarding the NuGet install window not closing, I've seen that before myself but it wan't any trouble. It just didn't close like I'd expected it to. You might check to see if there are any Visual Studio updates for NuGet. I use Visual Studio 2012 & 2013. Which version are you using?

Jason Newell
Applications Architect

Re: What is SolidEdgeContrib in Nuget? How do I get started?

Update for you. I'm still working on the GitHub documentation and a few other things but I have released an updated download of the Samples for Solid Edge on CodePlex. The samples demonstrate how to use the NuGet packages.


To recap:

  • SolidEdgeContrib is dead and no longer available.
  • Interop.SolidEdge is mostly just merged interop assemblies of the Solid Edge API. You can get almost the same thing in Visual Studio using Add Reference. There are features of this assembly that can be appealing. Intellisense documentation and Embed Interop Types flag being disabled by default are two that come to mind.
  • SolidEdge.Community has Interop.SolidEdge merged in plus a lot more. This assembly is where all future community enhancements to the API will happen. We merge in Interop.Solid Edge because a) we can and b) because it removes a dependency and simplifies development\deployment. If I were to make a recommendation on which one to go with, this assembly would certainly be it.


Let me know if you have any questions.

Jason Newell
Applications Architect