The Global Archicad Community

Stay informed. Get help. Share your knowledge.

Everything about using Libraries and Library Parts - Doors/Windows/Objects/Stairs etc. (Example: How can I display a Transom above my Door?)

Moderators: Karl Ottenstein, LaszloNagy, ejrolon, Barry Kelly, Gordana Radonic, nbalogh, mnguyen, gkmethy, Gergely Feher

User avatar
By Matthew Johnson
SenecaDesignLLC wrote: couldnt you just open the leaf thats made and change the material parameter of the color you wish to change? then save the object and the door should update its color. unless im missing something this works for me.
In the ArchiCAD parlance of increased performance through reduces number of clicks the concept of saving custom leafs for each project doesn't add up. My door leaf collection is already at 20 leafs and I expect it to pass 50. With more than 20 projects needing to use the full collection that could be 1000+ custom leafs that have to be managed. Also, if I have to update one leaf in the collection to a new standard, sign, etc. there is several hours of work to track down all 20+ projects and make the change.
User avatar
By Emil Meijer
Sorry for reviving an old thread, but currently searching the web for an answer to this.
Did anyone ever come up with a solution for this "problem"?

Found this video when searching around, which lets you change one material in the Custom Door Panel.

Still having trouble figuring out how to edit these settings when your panel has more than 2 different materials.
User avatar
By Barry Kelly
It is possible (I just did it) - but it is not very practical.

You need to follow the trail of CALLed macros, from your door frame object to the custom door object you create.

Every CALL for the door panel you will have to pass on the door panel material.
Eventually you will get to the "Door_Panel_Collection" macro that gets re-written every time you create a new custom door panel.
You will need to crate a new material parameter for the door panel material.
The good news is that this will keep the new parameter even when it is re-written (it just gets amended).

In the 3D script of this "Door_Panel_Collection" macro it will call the custom door panels.
Again you have to pass on the door panel material parameter in each of the CALLs.

Now each of these called door panels is an object (macro) that you will need to open.
You will need to add the door panel material parameter.
Then in the 3D script find everywhere that it uses the default hard coded material from when you created the panel, and swap it for the door panel material parameter.

When all of these are saved you should be able to swap the door panel material.
You will need to do the same if you have multiple materials (glass and trims).

Everytime you create a new custom panel, you will have to add the material parameter to the CALL in the "Door_Panel_Collection" macro (because there will be a new CALL added to it.
You also have to open the actual custom panel object and add the material parameter to it and fix up the 3D script.

It is not impossible, but it is messy.
I get the feeling that you would need to go through the whole process from the "Door_Panel_Collection" macro onwards in every job, as this is saved in your user profile somewhere (not the embedded library or the loaded libraries) and the custom panels are saved in the embedded library (although these can be exported into a loaded library).

Just to prove it is possible attached is an image of one of my standard door objects with a custom panel and the material controlled from the door object.
It may be more complicated with Graphisoft doors as they call many more macros (I don't use them).

door_panel_material.jpg (209.88 KiB) Viewed 369 times
By Piotr Dobrowolski
I experimented with CW custom panel in regard of having the option to override the "in object" surfaces to one - which has the parameter fr it BTW ;P

So it is possible but needs to change the object (s) that are calling the "custom" one.
And it is a need to use the called object by the "custom something library" but the name (it is possible)

The biggest problem with the custom components and the requested possibility to change surfaces is that they do not save the surfaces used as parameters, only the "hardcoded" way. But if using the plain normal objects instead and calling any - the usage of surfaces could become possible - user friendliness lacks but...

Anyway - if the list of say 4 surfaces was added to any object that calls the custom component such thing could be possible under the other condition above - the usage of plain object.

If the override is needed for one overall surface, a much simple "hack" would do the trick - not calling the custom component library object but "by name"(which is listed in the parameters btw) and use the group command with the surface override option.