I'm a very green beginner working my way through the Introduction to the Revit API. I have a little bit of programming experience (dangerous! - Does Commodore 64 BASIC count?) so I have some ideas about how I might go about what I want to acheive.
Firstly - are there any API plugins out there that do what I want to do? (I haven't seen any, so I'm asking here)
We're not trying to track who is creating crap families (we know who they are, anyway) we are just trying to sift the wheat from the chaff.
I can think of ways to do items 1-4 that are not much beyond what you can do 'by hand' with a Shared Parameter.
Point 5 makes me think the Data Storage Object might be the way to go...
Point 6 - this would likely have to be a purely API thing - check for DSO from point 5, apply shade-by-element in a new view.
Point 7 - this is what stumps me. I can't think of a way to do this except a 'silent' API function that captures an 'un-blessed' user performing a family edit (which in itself is a bit tricky to define) and clearing the DSO field (if it exists).
I'm a bit hesitant to use an API function like that due to my low skill level; 'script-like' functions I think I can cope with, but 'triggered' functions make me feel like I am treading in far deeper water...
Some alternative to the above I have thought of:
We have currently implemented a system of putting hashed MD5 keys into the Type Comments field of each family, generated from a concatenation of family:typename:salt. This is entirely manual, with family:typenames exported, converteed to Excel, hashed, copied by hand back into families. The checking process is similar - export family:typename, import to Excel, compare MD5 key saved with family to 'correct' MD5 key - a mismatch indicates a high probablity of a user-created family. Users aren't going to know how to generate a valid MD5 key, as I 'salt' the keys with another secret value as well.
It works, to a point - if the user modifies a family:type but leaves the typename unchanged edits can slip through - but mostly this process works, as most people seem to do a 'duplicate type' which results in a family:typename1 which then fails the MD5 check.
The problem is that this entire process is
The API seems to be the way to go, but it's a big step to learn it!
By the way, we have a library of 4,500 objects we are trying to maintain which is why user-created itmes are such a big problem.
I have thought about completely disabling the ability to create/edit families but that seems a little bit too restrictive, and besides that we do (oddly enough) allow in-place families - they are easy to spot and filter out.
Any suggestions, or is there an App put there that does all this for me?
Please take a long and deep look at the ample getting started material, and then come back and ask again:
Start with some of our most frequented solutions or visit the Installation and Licensing Forum to get help installing your software.