Having the option to use custom components such as door panels, knobs, curtain wall panels, window sashes, etc is quite useful and a great way to customize a library part. This feature would be even more useful if the GS library objects were designed to pass more parameters to the custom components.
If you look through the code of say Base Cabinet Block 27, you can trace the long chain of macro calls that eventually arrive at a custom panel:
Base Cabinet Block 27 > KitchenGeneralMacro > KitchenCabinetMacro > KitchenPanelTypeMacro > FurniturePanelMacro > Object_Panel_Collection
in particular, this is how FurniturePanelMacro calls a custom panel collection item:
! ==============================================================================
"CustomPanel":
! ------------------------------------------------------------------------------
call "Object_Panel_Collection" parameters A = _panelWidth, B = _panelHeight, ZZYZX = _panelThickness, gs_ptype = _doorCustomPanelName
return
as you see, the only parameters that "Object_Panel_Collection" receives are A, B, ZZYZX, and the panel's name. And Object_Panel_Collection, in turn, only passes A, B, and ZZYZX to the custom panel.
If the libraries were designed to send, in addition, a few more of the parameters which FurniturePanelMacro itself recieves, the custom components could be much more flexible. One wouldn't be stuck with the surfaces used when defining a custom panel or door knob, for example - you could assign one using the normal UI for a cabinet and see it on your custom panel just by adding the line "MATERIAL gs_pmaterial" to your panel's 3D script. Here's what it could look like:
Since macros can return parameters, there's probably a mechanism where they could inform the caller which parameters are being used, and hide the ones which aren't implemented.
You could, of course, make a custom version of these macros, but the architecture of the GS library objects commits you to replacing the entire stack of macros, all the way to the top level. It's a pyramid of hard dependencies. And, any customization work is possibly made obsolete at the next version of the AC library. If Graphisoft can parameterize the custom components as much as possible, it offers at least a more practical 'shortcut' around the mass of code that these libraries are calling.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.