DesignLink SDK
Contents |
What is the DesignLink SDK
The DesignLink SDK is a software development toolkit designed to assist in the development of software to solve interoperability problem between various software used in the built environment (AEC) design process. It can also be used as a platform upon which to build new software for the built environment design process.
It's most basic aim is to facilitate the use of parametric modelling software (such as GenerativeComponents, DigitalProject or Grasshopper) for use in generating a range of geometries for use in analysis software (structural analysis, energy analysis, lighting analysis etc). This provides design teams with the tools to explore more design options, or undertake design optimisation studies.
The toolkit also provides a hybrid approach to interoperability. Most interoperability approaches can be broken into either:
- Exchange via a industry standard format
- Exchange via direct integration (API programming)
The first works where the vendor and the file format both support the data to transfer. The latter can be made to work in more cases, but software vendors will integrate their own software first (e.g. Revit<>Robot). Any third parties trying to integrate design software are faced with writing scripts to integrate between all the pieces of software in the design chain.
The DesignLink SDK provides an exchange file format that can be extended as needed, and also provides the 'plugins' for various applications to be able to read/write that format. This means that when a design team wishes to exchange data not supported by an industry format, or integrate software from different vendors, the toolkit provide a starting point from which a programmer can provide that integration, without re-inventing the wheel each time.
Comparisions
Examples
Here is a short movie showing use of Octave/Matlab to drive the generation of EnergyPlus and Radiance files from a GenerativeComponents model: Media:DesignLink Facade Optimisation Stage1.wmv or via YouTube
Below is a screenshot from Phoenix Integration's 'ModelCenter' software. The DesignLink SDK was used to create plugins for ModelCenter which can then drive a design optimisation process. Click on the image for a short movie, or via YouTube
Code examples
Example Tools
DesignLink and Bentley Structural
Joining the DesignLink SDK project
The DesignLink SDK project is open to both Arup staff and non-Arup staff. If you are not an Arup employee you will need to sign our collaboration agreement.
If you are an Arup staff member, simply follow the steps below, and send any required emails from your Arup address.
Non-Arup staff should follow the steps below and also return a signed copy of the collaboration agreement.
1. Follow the instructions on Opening your ArupForge account
2. Then email "designlink_sdk at arup.com", and let us know your wiki username so we can setup access to the source code for you.
- Non Arup staff should include their signed collaboration agreement with this email.
3. Go to http://groups.google.com.au/group/designlink_sdk and apply for membership of the DesignLink SDK discussion group
4. Install the following software
- Visual Studio 2005 Professional or Visual Studio 2008 Express/Standard or Professional
- Tortoise SVN - http://tortoisesvn.net/downloads
- AnkhSVN - http://ankhsvn.open.collab.net/
- NUnit - http://www.nunit.org/index.php?p=download
5. If you are new to use Subversion for version control, you should also read the Guide to working with Subversion
Applications that the SDK works with
This list is every changing, as the capabilities of the SDK expand and new applications are added to the list.
At this stage there is some integration with the following software: (To a greater or lesser extent. Just because something is on this list doesn't mean you could actually use what gets produced...)
GenerativeComponents - Plugin to write DesignLink files, Controller for DesignLink to control GC and extract data
Rhino - Some read/Write capabilities. Another Arup project uses the SDK for a more in depth Rhino plugin. At the moment that project isn't under the same agreement, but may be in future.
GSA - Control GSA via COM to Read and Write GSA files to/from DesignLink file
Strand - Control Strand7 via API to write to DesignLink file
EnergyPlus - Write an IDF file from DesignLink file
Radiance - Write a .rad from DesignLink file
Ecotect - Control Ecotect via API to create Ecotect model from DesignLink file.
Octave/Matlab (or other COM capable apps/scripts) - DesignLink provides a COM interface which Octave can use to control DesignLink, i.e ask DesignLink to write a GSA file
.X / Direct X - Write a .X file from a DesignLink file
IFC - Read/Write IFC files to/from DesignLink file
We will be starting work on both Revit and Tekla integration in the next few months, in both cases it would be for Structural analysis first.
Licencing the SDK
The DesignLink SDK is licenced under a collaboration agreement, which allows people outside of Arup to access and help improve the SDK. Whilst not being a 100% Open Source licence, it is similar in intent.
The DesignLink SDK Collaboration agreement
Subject to the terms of this Agreement, a DesignLink SDK Licensee may:
- Use the DesignLink SDK as provided or in a modified form for personal, commercial or research purposes.
- Modify the DesignLink SDK, provided the source code for the modifications is made available for inclusion in the DesignLink SDK.
- Develop other software applications which link to a compiled (object code) version of the DesignLink SDK as provided.
- Develop other software applications which link to a compiled, modified version of the DesignLink SDK, provided the source code for the modifications is made available for inclusion in the DesignLink SDK.
- Redistribute any Combined Applications which link to the compiled version of the code (modified or non-modified), with a compiled version of the DesignLink SDK.
- Redistribute Combined Applications under different license terms (i.e. could be commercially licensed)
A DesignLink SDK Licensee may NOT:
- Redistribute the source code of the DesignLink SDK to any Third Party who is not a DesignLink SDK Licensee...
Whilst redistribution of the source code is not allowed, the intent is to create an open collaborative community, and as such Arup does not intend to withhold a DesignLink SDK licence from any party wishing to enter into a license agreement
Documentation
Some of the DesignLink SDK documentation is available here
- Introduction to the DesignLink SDK (ppt)
- Guide to developing software with the DesignLink SDK (doc)
- API Help file for the DesignLink SDK (chm)
Knowledgebase
The following wiki pages document various pieces of knowledge releated to using or developing the DesignLink SDK
