I've been having a conversation again with one of my mentors on the idea and concept of stories/levels in the plugins. I've come to the conclusion that assigning the geometry to levels is very powerful and I now have it very much in my mind to implement some form of a system that deals specifically with this issue.
All major assemblies (groups) that are created by the wall plugin (walls, posts, beams, stairs, etc...) need to be assigned to a level. This is important for a number of reasons.
1.) The Medeek Estimator will need to break out its estimate by level, currently it will order the walls by their name but really it needs to group them by level and then order them within each group. The same holds true for all other assemblies created by the plugin(s) or even geometry not created by the plugins that I want the estimator to include.
2.) Once I get further along to where I'm automatically setting up scenes and exporting those to Layout, DXF and/or PDF, again I need to organize assemblies by their level. A floor plan usually consists of walls on a specific level.
3.) The engineering module (way out in the future right now of course) will also need to know this information in order to make sense of the model.
Each assembly (main group) will have a parameter in its attribute library which specifies the level it is on regardless of where it actually is in space (in the model). The user of course can always change this.
There also needs to be a way that the user can set the Z height of each level and also set a specific level as "active" so that all new geometry (walls) is automatically placed on that level.
There also needs to be a way of adding new levels and deleting levels. If a level is deleted then the plugin should prompt the user where it wants to place any groups on that level being deleted and allow the user to select from available levels.
There should be a button that allows the user to hide all assemblies on a given level or unhide them. Probably another button that allows the user to select all assemblies on a given level, that would probably be useful.
I need to add a context menu so that the user can right click on any component or group (plugin geometry or not) and assign it to a specific level. For non-plugin geometry this means that a attribute library key is created for the entity and assigns it to a level.
I'm sure there are more things I am missing but of the top of my head and based on my recent thoughts on the matter this is what I'm coming up with.
All major assemblies (groups) that are created by the wall plugin (walls, posts, beams, stairs, etc...) need to be assigned to a level. This is important for a number of reasons.
1.) The Medeek Estimator will need to break out its estimate by level, currently it will order the walls by their name but really it needs to group them by level and then order them within each group. The same holds true for all other assemblies created by the plugin(s) or even geometry not created by the plugins that I want the estimator to include.
2.) Once I get further along to where I'm automatically setting up scenes and exporting those to Layout, DXF and/or PDF, again I need to organize assemblies by their level. A floor plan usually consists of walls on a specific level.
3.) The engineering module (way out in the future right now of course) will also need to know this information in order to make sense of the model.
Each assembly (main group) will have a parameter in its attribute library which specifies the level it is on regardless of where it actually is in space (in the model). The user of course can always change this.
There also needs to be a way that the user can set the Z height of each level and also set a specific level as "active" so that all new geometry (walls) is automatically placed on that level.
There also needs to be a way of adding new levels and deleting levels. If a level is deleted then the plugin should prompt the user where it wants to place any groups on that level being deleted and allow the user to select from available levels.
There should be a button that allows the user to hide all assemblies on a given level or unhide them. Probably another button that allows the user to select all assemblies on a given level, that would probably be useful.
I need to add a context menu so that the user can right click on any component or group (plugin geometry or not) and assign it to a specific level. For non-plugin geometry this means that a attribute library key is created for the entity and assigns it to a level.
I'm sure there are more things I am missing but of the top of my head and based on my recent thoughts on the matter this is what I'm coming up with.