Below, we take another quick look at the issue of licenses.
First, here is a pretty basic question that keeps reappearing, so I summarise some existing results for everybody's convenience:
Question: How can I programmatically retrieve the coordinates of a wall boundary, especially the geometry of the finished interior and exterior layers?
I wish to export the building blueprint to GML.
I would also like to know how to achieve the same for the geometry of doors and windows.
Some C# sample code would be very helpful.
Answer: We discussed the topic of retrieving geometry in all conceivable variations here in the past, so numerous C# samples for achieving that are returned immediately by simply searching the web for building coder get_geometry.
You will also find a number of examples of retrieving element geometry in the Revit SDK samples. Again, just search globally for 'get_Geometry'.
For specific details on the location of wall layers and their boundaries, here are some of different aspects we already looked at:
- Wall compound layers
- Compound wall layer volumes
- Retrieving detailed wall layer geometry
- Interior side of a wall
- Identifying wall compound layers and parts
- Updating the wall compound layer structure
- Setting the compound structure core and shell layers
- Creating an offset wall
Talking about wall boundaries, we had an extensive related discussion on determining the room boundary segment generating element – a wall, in fact, nine time out of ten – just yesterday, pointing to numerous previous examples of retrieving room boundaries, ray shooting to discover neighbouring elements, and also looking at the spatial element boundary location options.
That should provide more than enough information for most wall layer related issues.
Good luck, and have fun!
More on Licenses
Now that I pointed out the importance of a license, several people asked me to say more about this complex topic, both from inside and outside of Autodesk.
Actually, maybe, it is pretty simple, and the legalese and numerous variations just make it appear complex.
Being GNU, the recommendations veer heavily towards the Copyleft, which is not suitable for commercial software, including many Revit and other Autodesk software add-ins.
However, it also states: "In these special situations where copyleft is not appropriate, we recommend the Apache License 2.0."
After reading through the Apache license, as far as I can fathom it, that makes a lot of sense, and I am considering switching to it from the MIT license that I chose for my initial GitHub projects.
Actually, searching the GNU list more thoroughly for the MIT license, I found this entry:
"Expat License: This is a lax, permissive non-copyleft free software license, compatible with the GNU GPL. It is sometimes ambiguously referred to as the MIT License. For substantial programs it is better to use the Apache 2.0 license since it blocks patent treachery."
Since my samples are all not very substantial, I am not worrying about the warning in the last statement, but I will indeed switch to the Apache 2 license for future submissions.
It has the added advantage of apperaing right at the top of the new GitHub repository license selection list :-)