NaroCAD data model was for sure powerful. It can store almost everything, it propagates data, it is extensible, persistent (can be saved and restored from Xml) and is feature wise a good use of C# 2.0 features as generics constraints, which makes more nice to be used at least than a C++ code.
This means that you can add easy to NaroCAD new extra features as CAM/CAE attributes, constraints, etc.
Sounds great, but his happen to be only on model level. There is always a need to express this at the user level. The most known case is: Property Grid which takes the current shape and gives a custom interface to it. Right now the Property Grid code is refactored to be able to add for any custom attribute a custom Property Grid section.
Right now there is a new section named: Shape that is attached to NamedShape attribute, but it does the job well and proving this concept is working.
Extrude generated using the NewShapeModifer framework is almost working, but I have still to fix bugs to it to behave like the previous code. Like: changing color to red when is live generated, to add second extrude after first one, etc.
Also, I had fixed two bugs: every command line that is executed did not update the view, and there was a case when save/load to XML did not get a reference to the document and make it crash.