Giter Site home page Giter Site logo

crossplatform's Introduction

CrossPlatform

This repo hosts the sample code written for the BiLT EUR 2018 Cross-platform development : from Revit/Dynamo to Rhino/Grasshopper and the web hands-on labs. The lab was accompanied by a lenghty handout that is available on the BiLT website for registered people.

Purpose

Be a reference, source of inspiration & education for others.

What is it

It's a sample of how to build cross-product libraries for AEC apps, with a focus on

  • re-using as much code as possible
  • demonstrating some SOLID principles in action
  • supporting as many apps as possible

The solutions is made of up of 2 things : a common library and specific application implementations.

Crossplatform Library

This is the shared functionality that is product-agnostic & re-usable.

It holds the

  • geometry & BIM element definitions
  • interoperability/conversion routines

App implmentations

Distinct applications that bring the Crossplatform.Libraryto each platform :

  • Revit app
  • Dynamo app
  • Rhino app
  • Grasshopper app

What does it do

Geometry

It's a bare-bones geometry-sharing library, with definitions for

  • Point
  • Line
  • Wall

You can converto To & From the Crossplatform.Geometry objects in Revit, Dynamo, Rhino & Grasshopper. You'll also note that not all conversions are straight-forward : there's no Wall in Rhino, so that conversion shows how to think about translating non-compatible objects.

WhoAmI

All has a simple WhoAmI command that has a single implementation for all products, but still manages to be a bit product-specific.

Notes

  • developed over 2 days before BiLT, so don't expect crazy-good code, I'm aiming for decent here
  • this is not in active development, but modifications (pull requests, PRs) are welcomed if they add to the educational value of the repo

License

MIT

crossplatform's People

Contributors

radumg avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.