I have something on my mind and i would like to eventually develop it.
It would be a plugin handling user attributes of objects in advanced fashion since rhinos native functionality is very limited.
I would like it to be separate plugin which would use extra file for storing special data related to plugin operations.
I want to achieve advanced functionality - text values from picklists, special formulas, for example if there is block inside block and the parent block could obtain information about objects inside of it, user would be able to pick subobjects and calculate their properties and similar operations to create true information database model.
I wanna ask few question how things work in principal so i can start thinking of plugins logic architecture:
there seems to be problem with blocks because objects inside a block change their id when block is exploded or created - i want to workaround this using extra GUID as key/value generated by plugin so the identification is retained even when objects inside blocks are exploded. The question is how to access objects inside a block since when selecting using key/value, which i tested, omits objects inside blocks.
for special attribute types i am thinking of “AreaOfSubFaces” and “LenghtOfSubEdges” i will need to define these so that the information for every object is stored in the plugin file. I can see namedselection function in rhino can store information even for selection of subobjects. My question is how are these subobjects uniquely indentified in rhino and what is the relation to the parent object. I wanna store the info about subfaces for brep in this fashion -> value of the attribute = for this object guid XYZ calculate area of these faces 1,2,3 -> i wonder how this 1,2,3 info is stored inside rhino and how 1,2,3 knows it belongs to XYZ object.
This plugin will be kind of hybrid it will store its own data based on generated guids and it will work with rhinos document user attributes as well. It will access the data in the document and based on assigned Guids do some operations with that data and write it back to document. For this purpose I have to be able to access objects inside blocks, be able to determine which objects belong to which block, be able to uniquely identify subobjects of objects and retreive information. Rest will be up on the plugin.
Thank you for the answer. This is first time i am trying to develop something and i need to dive a bit into logics of the program…