In previous post I talked a bit about our process for small enhancements. See (Fix, Fit, and Finish)
Often when looking over a list of projects one may think a solution should be trivial to implement. In Revit this is rarely the case. This may be because of the internal data structure or interactions with related features. Even after working through several projects I find I continually need to adjust my expectations as to what is a "Small Project" Here is a recent experience:
Customers desire the ability to convert Detail lines to Model lines and vice versa.
To summarize "Model Lines" show in all views and "Detail Lines" are view specific. Given this behavior when an inexperienced user places the wrong kind it is difficult to recover from. This usually involves tracing and recreating the proper lines or some other work around. Not fun.
Lines have a read only property "Detail Line (yes/No)". If this command were made editable then the customer could change it and correct any issues. Done!
Not so fast.
When converting a Model Line to a Detail Line we need to choose a view or assume the active view. As it turn out properties have no notion of view (just the element they relate to) so we need to launch a specific "Convert" command that can run some code to find the active view.
What if the Model Lines are shown in a view that detail lines can't be drawn in?
OK- We disable the "Convert" command when the view does not support the creation of Detail Lines.
What if the model lines displayed in the view in a non parallel plane?
OK - Lines can be projected to the view plane. Line would foreshorten and arcs would convert to ellipses to maintain visual fidelity.
What if they select Detail Lines and Model Lines?
Both line types belong to the category "Lines" so they can't be filtered! Now we are stuck. We could create new line categories or subcategories. We could implement a better pre-selection filter that can distinguish properties. Hmmm. We haven't discussed converting Detail Lines to Model Lines and the issues lurking there.
We can now see this small project is spawning sub projects and becoming...well "un-small". It may have reached a dead end but there is usually another way to get to the cheese. Sometimes after running down several of these paths you step back and ask "Is there a way to make the need for this enhancement to go away by changing behavior elsewhere?"
Why share this? I'm not looking for sympathy. Solving these issues can be very rewarding. I more wanted to share this case study to be a little more transparent, dispel myths, and just tell a story of working in the factory.
If you have any experiences on wanting to convert lines please share. This may spawn more ideas or requirements. It would also be good to know if there are use cases aside from correcting a situation where the wrong line was drawn by accident.