Streamline your workflows and master BIM coordination! Program starts April 28!

GDL
About building parametric objects with GDL.

Saving library parts under previous version

concepsys
Enthusiast

Hello,

This message is intended to help who ever needs to convert library parts to a previous version and for my own future reference.

I searched this forum to find an easy solution to make my AC26 library compatible with AC25. My library has several files, including folders with images, macros, etc. and I didn't want to use the embed method to do it, because this organization would probably be lost.
So, I was using lp_xmlconverter instead, but wasn't able to make the -compatibility option work.

I was using the lp_xmlconverter 26 with the options l2x and -compatibility 25. Then I was using the same lp_xmlconverter 26 with the option x2l but the resulting wouldn't turn into Archicad 25 version.
After giving it a lot of thought, and tries, I finally understood what I was doing wrong.

To convert from 26 to 25, I need to do the l2X with  lp_xmlconverter 26 with the option -compatibility 25, I believe this will strip any incompatible commands on the new xml files, but the x2l must be done with the lp_xmlconverter 25!
So, you must convert to XML with the current version using -compatibility option with the previous version you want to convert and then use the lp_xmlconverter from the older version. 

I hope this helps.

 

7 REPLIES 7
Laszlo Nagy
Community Admin
Community Admin

Could you write down the step-by-step instructions with the exact commands?

Loving Archicad since 1995 - Find Archicad Tips at x.com/laszlonagy
AMD Ryzen9 5900X CPU, 64 GB RAM 3600 MHz, Nvidia GTX 1060 6GB, 500 GB NVMe SSD
2x28" (2560x1440), Windows 10 PRO ENG, Ac20-Ac28
runxel
Hero

Thanks for sharing.

I've had the same issue in the past. I ended up just putting all my objects that I want to convert into the embedded library and then backsaving the whole file.

So that should mean it must be possible to backsave with the LP_XMLConverter as well – since for backsaving Archicad can not assume having the older Archicad actually be installed so the current version can somehow handle the procedure.

Maybe Péter or @Magdolna Marosvari can shed some light on this? This actually happens quite a bit, since you might want or need to code on a newer version but some customers need some .gsm for older versions, too. Maybe even for a version you do not have installed anymore.

I never use XML by the way; I completely stopped using that since the advent of the –imho– superior HSF format.

Lucas Becker | AC 27 on Mac | Graphisoft Insider Panelist | Author of Runxel's Archicad Wiki | Editor at SelfGDL | Developer of the GDL plugin for Sublime Text | My List of AC shortcomings & bugs | I Will Piledrive You If You Mention AI Again |

POSIWID – The Purpose Of a System Is What It Does /// «Furthermore, I consider that Carth... yearly releases must be destroyed»

Hello, @Laszlo Nagy ,

When editing files in XML format, I usually work with 3 folders. 

I'll call them "c:/GDL/IN", "c:/GDL/XML" and "c:/GDL/OUT".

Inside c:/GDL/IN I typically place the library with all the folders, images,gsm files, etc that I copy from wherever I am editing in Archicad. This way if I make some mistake on the following steps I still have this unchanged version.

Then I usually convert the library to "c:/GDL/XML" where all the XML files go and where I can freely edit them.

After editing any or all the files, I convert the xml files back to gsm format, to the  OUT folder.

In this case, if the aim is just to convert to a previous version there's no XML edition stage.

So, the commands to convert from let's say 26 to 25 would be:

 

1. Using lp_xmlconverter.exe pack from Archicad 26:

(path to lpxmlconverter26)/lp_xmlconverter l2x -compatibility VV "c:/GDL/IN" "c:/GDL/XML" 

Where VV is the previous version (in this case VV would be 25) 

 

This would replicate the library structure inside the "c:/GDL/XML" folder but all files in xml format, and I believe it would strip the code from any GDL command later than the compatibility version.

 

2. now using lp_xmlconverter.exe pack from Archicad 25

(path to lpxmlconverter25)/lp_xmlconverter x2l "c:/GDL/XML" "c:/GDL/OUT"  

 

This will create the library structure back into gsm format inside de OUT folder.

I suppose it will work with any previous version as long as you use the lp_xmlconverter pack of that previous version.

I hope this helps.

Laszlo Nagy
Community Admin
Community Admin

Thanks, that is great, I think many users will find these steps useful.

Loving Archicad since 1995 - Find Archicad Tips at x.com/laszlonagy
AMD Ryzen9 5900X CPU, 64 GB RAM 3600 MHz, Nvidia GTX 1060 6GB, 500 GB NVMe SSD
2x28" (2560x1440), Windows 10 PRO ENG, Ac20-Ac28
Jochen Suehlo
Moderator

I always used 2-Step-Automator Actions on MAC OS for Downgrading GDL-Objects. Just Rightclicking on an object and choose Quick Action.
I add an AI-created advanced example Script which is doing this in one step and creating a backup folder.

Jochen Suehlo . AC12-28 . MAC OSX 14.4 . WIN11
GDL object creation: b-prisma.de

That is very thorough. Thanks for sharing, Jochen.

I still believe that there must be another way, without carrying all the old installations with you.

If it's only one version down I'm still doing the PLA trick 😄 Too lazy to install an older Archicad just for that.

Lucas Becker | AC 27 on Mac | Graphisoft Insider Panelist | Author of Runxel's Archicad Wiki | Editor at SelfGDL | Developer of the GDL plugin for Sublime Text | My List of AC shortcomings & bugs | I Will Piledrive You If You Mention AI Again |

POSIWID – The Purpose Of a System Is What It Does /// «Furthermore, I consider that Carth... yearly releases must be destroyed»

Hello runxel,

In order to use this method, you don't really need to install the older version of Archicad unless you want to test it yourself.

You just need to unzip lp_xmlconverter tool pack (zip) for the current and the previous AC version.

If you are downgrading because you need it yourself, then you will probably already have that older version of Archicad installed, if you are doing it to allow someone else with an older Archicad version to use it, then that person can test it for you. 😉

What I find best on this method is that it keeps all the files and folder structures, images included (if present), and it takes seconds to do. It will also issues warning messages if anything goes wrong or is incompatible.