Dear Bruno,
Thank you for your appreciation and sorry for the delay and inconvenience.
To efficiently address a Revit API question, there are indeed several levels of information that are worthwhile checking out.
I keep trying to create the ultimate complete list of them, and have not succeeded to my complete satisfaction so far.
Here is one of my recent attempts:
http://thebuildingcoder.typepad.com/blog/2016/09/trusted-signature-motivation-and-fishing.html#3
Let me expand that based on what I said above and elsewhere in the past few days:
How to Research for a Revit API Solution
- Determine the optimal solution manually through the end user interface. Make sure you follow best practices and make use of existing built-in Revit functionality. If you skip this step or do not research deeply enough, you run a large risk of programming something that will be painful both to implement, maintain, debug and use.
- Determine the names of the Revit classes, methods and properties that will help you achieve your task. For example, create the appropriate situation and sample BIM via the user interface and analyse it before and after making the modifications you need, e.g., using:
- RevitLookup -- https://github.com/jeremytammik/RevitLookup
- BipChecker -- https://github.com/jeremytammik/BipChecker
- The element lister -- https://github.com/jeremytammik/AdnRevitApiLabsXtra
- Other, more intimate Revit database exploration tools -- http://thebuildingcoder.typepad.com/blog/2013/11/intimate-revit-database-exploration-with-the-python-shell.html -- such as the Revit Python or Ruby shell
- Once you know what Revit API objects are required, learn how to access, manipulate and drive them, their relationships and how they interact with each other:
- Revit API help file RevitAPI.chm installed locally or online at http://www.revitapidocs.com provides detailed info on classes, properties and methods.
- Revit online help -- http://help.autodesk.com/view/RVT/2017/ENU> Developers > Revit API Developers Guide -- http://help.autodesk.com/view/RVT/2017/ENU/?guid=GUID-F0A122E0-E556-4D0D-9D0F-7E72A9315A42 -- explains the Revit API usage in much more depth and provides invaluable background information.
- Revit SDK sample collection installed locally and managed by Visual Studio via SDKSamples.sln shows how Revit API objects work together to solve specific tasks.
- The Building Coder samples -- https://github.com/jeremytammik/the_building_coder_samples -- provides another large bunch of sample external commands implementing numerous different tasks.
After you have exhausted those options, search the Internet for 'revit api' or 'thebuildingcoder' plus the Revit API names that you are interested in.
I hope this helps.
Best regards,
Jeremy