Showing posts with label API. Show all posts
Showing posts with label API. Show all posts

Monday, 22 February 2016

OpenBIM just became more Open

The core c# classes developed by Geometry Gym to import and construct IFC (Industry Foundation Classes) have been released as an Open Source project under the MIT license.

The source code is being hosted on GitHub, https://github.com/jmirtsch/GeometryGymIFC
I've uploaded the compiled dll to https://www.nuget.org/packages/GeometryGymIFC/

Note this isn't the entire IFC code base that Geometry Gym has developed, the interfaces to Grasshopper, Revit, Rhino, Navisworks, Tekla and the various structural analysis software remain closed source (for at least the time being) as the revenues provided by these projects support the full time development of this code base.

Example code for using these classes will be posted to this project,
https://github.com/jmirtsch/GeometryGymIFCExamples
and you can also refer to the Building Smart examples at
https://github.com/BuildingSMART/IfcScript (but a little more work is needed to enable this to directly use the opensource tools).

Documentation is sparse, but you can reference Building Smart material online such as  http://www.buildingsmart-tech.org/ifc/IFC4/Add1/html/

Prior to deciding to open source, I studied the capability and state of existing dotnet projects I could find.
Some key advantages I believe this project will offer above these include:
MIT License (Permissive license permitting use of code for many purposes)
Simultaneous of multiple schemas such as Ifc2x3, Ifc4 and Ifc5 (infrastructure)
Pure dotnet library.
Easily extensible for developing custom classes and custom interfaces with other software.
Advanced constructors for classes to permit easier generation of Ifc files (other projects require explicit setting of every relationship requiring more intimate understanding of the IFC framework).

The motivation for this move to opensource the code is support of the Uniform Object Library, and I have also discussed the possibility of using the tools for other open and closed source developments with others.

Note also there are two initial variations of the classes to reference.  The core code has no dependencies and reference, and an extension to this with references to RhinoCommon (OpenNurbs) geometry.  The RhinoCommon flavour is still work in progress with more code to be ported into the opensource project.

If you are interested in utilizing this project, please don't hesitate to get in touch to discuss any aspect of this.  Also if you have suggestions for improvements, or wish to contribute, this is greatly appreciated.

Wednesday, 10 December 2014

IfcScript Introduction

It's an honour to have the work I've done as an early adopter of IFC4 recognized by Building Smart International.

With the library of c# code that I have for importing and exporting IFC4, I've been working on a project for Building Smart to generate sample IFC4 files.  These are small unit tests that highlight a particular aspect (or comparison) of the schema, concentrating on new features and aspects of IFC4.  This includes shape representations such as nurbs and triangulated face sets, cardinal points, reinforcing and new standard case classes.  Now that the bulk of the project has been set, it should be easy to add many more.

Here's an introduction to the project.


It's using my c# library as a means to generate and export the IFC files, but the scripting aspect of it is opensource on github, you can access it here.  https://github.com/BuildingSMART/IfcScript

What's nice with the scripting approach to generating the examples is that examples can be kept in a consistent style, with common changes swept through them.  The scripts can also be built across different schema (including IFC2x3, IFC4 and IFC4 addendum 1) although I still need to enable some exceptions to be thrown when invalid classes are called on.

It's been a good opportunity to polish my library as an API, and it also serves as some good examples of how to use my c# library as an API.

If you'd like to get involved or test this, please don't hesitate to contact me.  And if you have more requests/suggestions for further examples, then do let Building Smart or myself know.

Thursday, 23 May 2013

OpenBIM Scripting : Python IFC

Goswin posted to the Grasshopper forum a week or so ago about the possibility of scripting IFC data from Python (Rhino Python to be exact).  I hadn't had much of a chance to try Python to date, but I've tested GH Python today (Rhino python should work just the same).



You can download the sample GH def here.

Note there is also the possibility of using my c# libraries (from C#, VB.Net, Python or other compatible languages) outside of the Rhino/GH environment.  Get in touch if you would like to learn more.  Also not everything is enabled, but I can quickly do so.  Grasshopper is really a graphical programming language, so what is available there is certainly easy to provide in the API.

Wednesday, 14 March 2012

GeomGym IFC API

I've recently been considering and developing means of interacting directly to my IFC c# assembly without necessarily using my Grasshopper addon components (which in effect is a graphical wrapper to my assembly) or Rhino plugin commands.  This can enable academic and 3rd party interaction with my developments to generate IFCmodel files in a more direct manner.

Still early days, but already quite a powerful capability.  The example can be tried yourself if you've installed and licensed my IFC plugin.  You might have to alter the path to the referenced assembly in my plugin folder.    Grasshopper Model Download 



Scripting in Grasshopper is difficult for debugging and developing when there's more than a few lines of code, so you can reference the .dll from visual studio projects for Rhino/Grasshopper addons.  There's also means to execute my code outside of the Rhino/Grasshopper environment based on OpenNurbs (as my Revit Addon is doing).  Get in touch if you want to register interest, learn more or request particular features to be enabled.