cancel
Showing results for 
Search instead for 
Did you mean: 
EN
cancel
Showing results for 
Search instead for 
Did you mean: 
Andras Bognar
Contributor

Custom made GDL objects from Archicad 27 can't use the MVO settings in Archicad 29

Somehow, our custom-made GDL objects from Archicad 27 can't use the MVO settings in Archicad 29. They were ok in Archicad 25 and 27, but not in 29. Not sure what I need to change in the Master Script and the Parameter Script of these objects to be able to use the MVO 2D and 3D detail levels in Archicad 29. Some of them are made purely with the Library Part Maker 25 - 27, some of them by Param-O 25 - 27, with a little bit of a tweak in the GDL script (Master Script and Parameter Script).

 

Operating system used: Windows 11

Setup info provided by author
11 Replies 11
Barry Kelly
Moderator

Old 27 objects need to use the old MVO Globals unless you can re-script them to use the new 28/29 MVO Globals.

 

Here are a couple of post about it, not sure if they will help.

 

https://community.graphisoft.com/t5/GDL/LibraryGlobals13-has-been-replaced-by-Objects-MVOSettings/m-...

 

https://community.graphisoft.com/t5/GDL/GDL-amp-the-Global-Library/m-p/669680

 

Barry.

One of the forum moderators.
Versions 6.5 to 27
i7-10700 @ 2.9Ghz, 32GB ram, GeForce RTX 2060 (6GB), Windows 10
Lenovo Thinkpad - i7-1270P 2.20 GHz, 32GB RAM, Nvidia T550, Windows 11
Davor P
Enthusiast

@Andras Bognar I had the same problem and worked out a solution by having GDL check the Archicad version and then it either uses old or new LOD macro. I only needed it for 3D script but it might help.
https://community.graphisoft.com/t5/Libraries-objects/29-MVO-object-LOD-drop-in-GDL-script-wanted/td...

BIM4BIM - by BIM managers for BIM managers
www.bim4bim.com | audit.bim4bim.com
Andras Bognar
Contributor

Thanks. Almost there, although it can't find the "Label Schematic."

Master Script Archicad 29.png

Andras Bognar
Contributor

Hi Barry,

Thanks. I skimmed those through, but still not sure what to change to be suitable with the 28/29 MVO macros.

 

MVO Archicad 29.png

 

The Master Script looks like this at the moment:


    DETLEVEL_2D_MVO         = 2 !MVO
    DETLEVEL_2D_DETAILED    = 3 !Full
    DETLEVEL_2D_SIMPLE      = 4 !Medium
    DETLEVEL_2D_DRAFT       = 5 !Low

    dim detlevel2D_index[], detlevel2D_desc[]

    iD=1
    detlevel2D_index[iD]=DETLEVEL_2D_MVO        :   detlevel2D_desc[id]= "By MVO"   : iD=iD+1
    detlevel2D_index[iD]=DETLEVEL_2D_DETAILED   :   detlevel2D_desc[id]= "Full"     : iD=iD+1
    detlevel2D_index[iD]=DETLEVEL_2D_SIMPLE     :   detlevel2D_desc[id]= "Medium"   : iD=iD+1
    detlevel2D_index[iD]=DETLEVEL_2D_DRAFT      :   detlevel2D_desc[id]= "Low"      : iD=iD+1

   
    if iDetlevel2D=DETLEVEL_2D_MVO then
        iDetlevel2D=DETLEVEL_2D_DETAILED
        success = libraryglobal ("LibraryGlobals13","iDetlevelMVO2D",_reqDetLevel2D)
        if success then iDetlevel2D=_reqDetLevel2D

    endif

    DETLEVEL_3D_MVO         = 2 !MVO
    DETLEVEL_3D_DETAILED    = 3 !Full
    DETLEVEL_3D_SIMPLE      = 4 !Medium
    DETLEVEL_3D_DRAFT       = 5 !Low

    dim detlevel3D_index[], detlevel3D_desc[]

    iD=1
    detlevel3D_index[iD]=DETLEVEL_3D_MVO        :   detlevel3D_desc[id]= "By MVO"   : iD=iD+1
    detlevel3D_index[iD]=DETLEVEL_3D_DETAILED   :   detlevel3D_desc[id]= "Full"     : iD=iD+1
    detlevel3D_index[iD]=DETLEVEL_3D_SIMPLE     :   detlevel3D_desc[id]= "Medium"   : iD=iD+1
    detlevel3D_index[iD]=DETLEVEL_3D_DRAFT      :   detlevel3D_desc[id]= "Low"      : iD=iD+1

   
    if iDetlevel3D=DETLEVEL_3D_MVO then
        iDetlevel3D=DETLEVEL_3D_DETAILED
        success = libraryglobal ("LibraryGlobals13","iDetlevelMVO3D",_reqDetLevel3D)
        if success then iDetlevel3D=_reqDetLevel3D

    endif




    IF iDetlevel3D=DETLEVEL_3D_DETAILED then
    var_77=1
    var_151=0
    ENDIF
    IF iDetlevel3D=DETLEVEL_3D_SIMPLE then
    var_77=0
    var_151=1
    var_142=16
    ENDIF
    IF iDetlevel3D=DETLEVEL_3D_DRAFT then
    var_77=0
    var_151=1
    var_142=8
    ENDIF
 
The Parameter Script is this:
 
values{2} "iDetlevel2D" detlevel2D_index, detlevel2D_desc
values{2} "iDetlevel3D" detlevel3D_index, detlevel3D_desc

! Values

    values "var_4" range [0.070,0.325]
    values "var_37" range [0.145,0.240]
Davor P
Enthusiast

Schematic and Detailed are the subroutines where you put code for each. Or you wire it up differently, depending how you are handling LOD.

In my case I have

"SCHEMATIC":
   !code for schematic
RETURN

"SIMPLIFIED":
   !code for simplified
RETURN

"DETAILED":
    !code for detailed
RETURN

 

BIM4BIM - by BIM managers for BIM managers
www.bim4bim.com | audit.bim4bim.com
Andras Bognar
Contributor

I rewatched this video (from BarkingDogBIM) https://www.youtube.com/watch?v=0re8RrU64yo and followed the "crumbs," finding a similar structure in the new MOV Scripts. So, I replaced the old ones with the new ones.

 

I had to change the iDetlevel3D to iDetlev3D in the Parameters:

 

Parameters Archicad 29.png

 

The Master Script looks like this now ( changes in BOLD-Italic )

 

 -----------------------------------------------------
! const values for parameter iDetlevel2D and/or iDetLev3D

OBJECT_SCHEMATIC    = 1
OBJECT_SIMPLIFIED   = 2
OBJECT_FULL         = 3
OBJECT_SYMBOLIC     = 10    ! only for elemoverride 2D
OBJECT_SYMBOLIC2    = 11    ! only for elemoverride 2D
OBJECT_AXIS         = 12    ! only for elemoverride 2D
OBJECT_BYMVO        = 0


    dim detlevel3D_index[], detlevel3D_desc[]

    iD=1
    detlevel3D_index[iD]=OBJECT_BYMVO           :   detlevel3D_desc[id]= "By MVO"   : iD=iD+1
    detlevel3D_index[iD]=OBJECT_FULL            :   detlevel3D_desc[id]= "Full"     : iD=iD+1
    detlevel3D_index[iD]=OBJECT_SIMPLIFIED      :   detlevel3D_desc[id]= "Medium"   : iD=iD+1
    detlevel3D_index[iD]=OBJECT_SCHEMATIC       :   detlevel3D_desc[id]= "Low"      : iD=iD+1

   
    if iDetlev3D=OBJECT_BYMVO then
        success = libraryglobal ("Objects_MVOSettings","iObjectDetlevel3D",_reqDetLevel3D)
        if success then iDetlev3D=_reqDetLevel3D

    endif

    IF iDetlev3D=OBJECT_FULL then
    var_77=1
    var_151=0
    ENDIF
    IF iDetlev3D=OBJECT_SIMPLIFIED then
    var_77=0
    var_151=1
    var_142=16
    ENDIF
    IF iDetlev3D=OBJECT_SCHEMATIC then
    var_77=0
    var_151=1
    var_142=8
    ENDIF
  -----------------------------------------------------
 
The Parameter Script Looks like this:
 
 -----------------------------------------------------
values{2} "iDetlev3D" detlevel3D_index, detlevel3D_desc

! Values

    values "var_4" range [0.070,0.325]
    values "var_37" range [0.145,0.240]
 -----------------------------------------------------
 

This way, I can make new objects in Archicad 29 that work with the new MVO settings.

 

The plan is not to migrate every project from older versions to Archicad 29, since a lot of the Library Elements are not supported anymore by Central Innovation's Select Library. They have a tool to migrate the entire project, but only those objects can be migrated that are available at the new Global Ci Libraries. 

 

If we need to use an older version of a file (25, 27) in Archicad 29, then we have three paths:

 

- One is to add the Migration Libraries after we migrated them from 25-27 to 29, and that will be a dead-end street, and we won't migrate that file any further.

 

- Second is when we migrate the project to 29 using the Central Innovation Migration Tool and then manually replace the objects that can't be migrated with these object that has the new MVO scripts, and we can migrate it further in the future.

 

- Third is redraw the project in Archicad 29 and we can migrate it further in the future.

 

 
Barry Kelly
Moderator

A fourth option is to open the file in 29 but just keep using the old libraries.

 

Barry.

One of the forum moderators.
Versions 6.5 to 27
i7-10700 @ 2.9Ghz, 32GB ram, GeForce RTX 2060 (6GB), Windows 10
Lenovo Thinkpad - i7-1270P 2.20 GHz, 32GB RAM, Nvidia T550, Windows 11
Andras Bognar
Contributor

Hi Barry,

 

That is option one. Using the Migration Libraries in Archicad 29, and don't migrate that project to any further versions of Archicad. 

Barry Kelly
Moderator

Sorry, I thought one was saying your were migrating 25-27 to 29 - there is no such thing as migrating to 29, at least not easily as you have found.

You only need the older migration libraries if the job has objects from older versions.

Otherwise just loading the 27 library is all you need.

 

Barry.

One of the forum moderators.
Versions 6.5 to 27
i7-10700 @ 2.9Ghz, 32GB ram, GeForce RTX 2060 (6GB), Windows 10
Lenovo Thinkpad - i7-1270P 2.20 GHz, 32GB RAM, Nvidia T550, Windows 11

Didn't find the answer?

Check other topics in this Forum

Back to Forum

Read the latest accepted solutions!

Accepted Solutions

Start a new conversation!