|Top Previous Next|
The object returned by ModelBuilder(lod) in the BK_CommandScriptable interface is appended to the system database and a BK_DataScriptable is created and appended to the objects data. When the user selects a object that has a BK_DataScriptable, the parameteres created in the function Params() are available for editing in the objects property list.
As soon a parameter changes the system calls first
ParamChanged( name, value ), if this function returns true then no other action is taken, if not the routine ModelBuilder(lod) is invoked so a new object can be created using the modified Parameters.
It is Mandatory that ModelBuilder() returns always the same type of object as the one created in BK_CommandScriptable(), for example if the first call creates a line it cannot create and return a
Brep in a successive calls.
The best option is to return always a Group. A Group is a container for objects so we have the chance to fill it with any data.
When the Level Of Detail changes the system will invoke ModelBuilder(lod) for all smart objects that return a positive value in the function HasLod().
This function by default returns 0 so if the level of detail is used the function HasLod() has to be re-implemented and return a positive value.