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: ejrolon, Barry Kelly, Karl Ottenstein, LaszloNagy, gkmethy, Gergely Feher

User avatar
By Lingwisyer
Hi all,

I have an issue with my Door Panel Collection becoming blank when I open a file in which I have duplicated a Custom Door Panel.

The door panel is one that I have scripted to allow for various parameter modifications.

I have not been able to replicate the issue with a door panel that has been built with slabs, etc, then save out as a door panel...

User avatar
By Barry Kelly
Lingwisyer wrote:
Mon Aug 13, 2018 5:49 am
I have not been able to replicate the issue with a door panel that has been built with slabs, etc, then save out as a door panel...

When you save a slab as a custom door panel, Archicad amends a macro called "Door panel Collection".
This macro contains the names of the panels you have saved and calls the panel objects in 2D and 3D that you have created.

That is why if you simply duplicate (I assume by 'Save As' so it get a new internal GUID number) a door panel you have created, it will not appear in the list of available custom panels.

User avatar
By Lingwisyer
I am duplicating the object door panel though the Duplication option in the library manager. I have then renamed it and it subsequently appears in the Custom Door Panel drop down, so I assume it is being added to the Door Panel Collection. The issue arises when the file is reopened, at which point the Door Panel Collection becomes blank, until I delete the duplicated leaf. Almost as if it is finding a second macro, and only finds the original after the duplicate leaf is deleted.

User avatar
By Barry Kelly
I just tried duplicating it the same way a you in version 22.
Duplicate in library manager, renamed, OK, save file, close Archicad and reopen.
Both the original and duplicate door were in the list of custom panels.
I am not using teamwork at all - not sure if there may be a permission thing happening there if you are.

custom_door_leaf.jpg (21.48 KiB) Viewed 720 times
User avatar
By Barry Kelly
OK I can confirm it does indeed go blank when you use a scripted door panel.
It is fine after you duplicate it and I checked the macro and it was all amended properly with the new panel and the duplicated panel.
For some reason, when you now close this file with the duplicate scripted panel, the 'Door_Panel_Collection' macro is being rewritten and is now blank.
custom_door_leaf_2.jpg (16.48 KiB) Viewed 702 times
I am having to delete both of the scripted panels (original and duplicate) and reload the library - then all is good again and the original door panel list is back.

I am not sure why it would do this for a scripted door but not from a 'save as panel' door.
I am wondering if it has something to do with the library being in a Library Container File (LCF).
Although I opened the 'Door_Panel_Collection' macro from the LCF library, maybe it is actually getting a copy from the user profile.
But still I have no idea why it would be different with scripted verses saved as panels.

I will see if I can experiment some more.

User avatar
By Lingwisyer
Barry Kelly wrote:I am having to delete both

Odd, I am only needing to delete the duplicate for the list to return. Might be due to having the copy embedded and the original in an external library...
User avatar
By Erwin Edel
The trick is to set your scripted leaf as a custom leaf as object subtype. (switching subtypes may reset your parameters, use at own risk!)

Very seldomly things will go missing (door frames with empty openings because leaf is 'missing'), opening your custom leaf and saving it again should poke ARCHICAD to behave again (sometimes with a rebuild of your elevation).

I believe it has to do with a list of custom leafs that sometimes won't rebuild properly.
Erwin Edel wrote:
Mon Aug 13, 2018 10:45 am
The trick is to set your scripted leaf as a custom leaf as object subtype.
It was the correct "Custom Door Leaf" subtype.

There is a "Door_Panel_Collection" macro that gets create in a hidden user file.
This one gets updated with the new custom panels and is used rather than the one in the library.
So being in a LCF is not the problem.

When I opened your custom made script and a saved as script I noticed a small difference.
In the parameter list of your scripted object there are 2 parameters that have values - one is a GUID.
In the saved as object I noticed these parameters are empty.

So when you duplicate the object it is keeping the same GUID - which I think is the problem.
As soon as I deleted those parameter values (and saved the object) I could duplicate, save and reopen the file and still see all of the custom panels.

User avatar
By Lingwisyer
The object's subtype is a Custom Door Leaf. It will not appear in the door dialogue if that is not so.

Saving the door leaf out again did not work... nor did rebuilding a drawing or reloading the library.

Linked & Embedded
Removing the Original from the linked library DOES NOT result in a rebuild of the Door Panel Collection.
Removing the Duplicate from the embedded library DOES result in a rebuild of the Door Panel Collection.

Both Linked
When duplicated to an external library instead of embedding it results in it becoming a duplicate object and saving as "a new object" does not appear to change the GUID. Results in a faulty Door Panel Collection without needing to reopening the project.

Removing either of the objects from their linked libraries / removing the relevant libraries DOES NOT result in a rebuild of the Door Panel Collection