Csilla Mai

Forum Replies Created

Viewing 15 posts - 16 through 30 (of 30 total)
  • Author
    Posts
  • in reply to: more picture parameters #3441
    Csilla Mai
    Keymaster

    Hi,

    The User image files can be requested by an application query . The value list of “gs_picture_name” and “gs_picture_name_2D” parameters are defined in a Library Master file by the returned data of this application query:

    ! ==============================================================================
    ! Custom picture file request
    ! ==============================================================================
    dim stCustomPicFiles[]
    bCustomPicFileExist = APPLICATION_QUERY (“LIBRARY_MANAGER”, “USER_IMAGE_FILES”, stCustomPicFiles)
    if bCustomPicFileExist then
    values “gs_picture_name” stCustomPicFiles, CUSTOM
    values “gs_picture_name_2D” stCustomPicFiles, CUSTOM
    endif

    Csilla Mai
    Library Developer, Library Team
    GRAPHISOFT SE

    in reply to: more picture parameters #3439
    Csilla Mai
    Keymaster

    Hi,

    If you would like to use the same value list for the same parameter in more library parts, you can create a library part under Library Master subtype. This library part’s every value list definition applies to all the parameters with the same name in the loaded library. If you write the value list definition for “gs_picture_name” parameter in the parameter script of the library part with the Library Master subtype, as the example:

    values "gs_picture_name" "1.png", "2.png", "3.png", "4.png", CUSTOM

    then every string parameter with the name “gs_picture_name” will get this value list automatically.

    If you want to use the same value list in one library part more times, it is recommended to store the list in an array, and use the array as a value list for the differently named parameters.

    Csilla Mai
    Library Developer, Library Team
    GRAPHISOFT SE

    in reply to: Stop label mirroring on Hotlinked Module #3411
    Csilla Mai
    Keymaster

    Hi Kristian,

    Please add some more information about this mirroring problem.
    The problem only appears in hotlinked modules? If you mirror a room with the labeled wall within a .pln file, do you get the expected result?
    Could you send a picture of the Label, which behavior would you like to follow in case of mirrored hotlink? And could you please send a picture of your label’s current behavior?

    Csilla Mai
    Library Developer, Library Team
    GRAPHISOFT SE

    in reply to: Paragraph/textblock/label text alignment #2706
    Csilla Mai
    Keymaster

    Hi James,

    I hope this short script will help you with the alignment problem:

    ! fontType and fontSize are parameters
    
    define style{2} "NormalStyle" fontType, fontSize, 0		
    style "NormalStyle"
    
    if sgn(LABEL_POSITION[2][1]) = -1 then
    	_iAlign = 3
    else
    	_iAlign = 1
    endif
    
    paragraph "paragraphName" _iAlign,
    		0, 0, 0,
    		1
    		style "NormalStyle"
    		"sample Text of Label"
        endparagraph
    
    _textblockWidth = 7 ! Just for example
    
    textblock "stTextblockName" _textblockWidth,
    	1, 0, 1, 1, 0,
    	"paragraphName"
    
    richtext2 0, 0, "stTextblockName"

    It results the behaviour you can see on the attached picture. If it does not solve your problem, please upload the 2D script or the object which you are working on.

    Attachments:

    Csilla Mai
    Library Developer, Library Team
    GRAPHISOFT SE

    in reply to: Paragraph/textblock/label text alignment #2700
    Csilla Mai
    Keymaster

    Hi James,

    If the Pointer is drawn by ARCHICAD (the LABEL_CUSTOM_ARROW global is 0), the LABEL_POSITION[2][1] global gives back the Pointer’s horizontal width depending on the actual connection side with the Label symbol. You can use this value with the SGN() function to define the text alignment in the paragraph and textblock commands by the sign of the width value.

    Csilla Mai
    Library Developer, Library Team
    GRAPHISOFT SE

    in reply to: Zone Stamp Decimal Places #2346
    Csilla Mai
    Keymaster

    Hi Derek,

    The REQUEST(“Calc_area_unit”) command is only supported in 2D script, and it returns a format which can be used for string conversions. For scheduling the Realnum parameter itself, the setting at Options/Project Preferences/Working Units/Angle & Font Size Decimals in Dialog Boxes: takes effect on the number of the decimals.

    Csilla Mai
    Library Developer, Library Team
    GRAPHISOFT SE

    in reply to: Zone Stamp Decimal Places #2343
    Csilla Mai
    Keymaster

    Hi Derek,

    In your script a form of STR function is used, which is the first form in the GDL Guide:

    STR (numeric_expression, length, fractions)

    The fractions gives the number of characters after the floating point. If you would like the user to control the number of the decimals, then you can create a new parameter, for example “iDecimals” and rewrite the masterscript:

    str_area_m2 = AreaM2Text + str(num_area_m2,8,iDecimals) + ' sq m'
    str_area_ft2 = AreaFt2Text + str(num_area_ft2,8,iDecimals) + ' sq ft'
    str_area_acre = AcreText + str(num_area_acre,8,iDecimals) + ' acres'
    str_area_hect = HectText + str(num_area_hect,8,iDecimals) + ' hectares'
    

    To format the values according to the Project Preferences setting, see the How to display values with units set in Project Preferences? post.

    Csilla Mai
    Library Developer, Library Team
    GRAPHISOFT SE

    in reply to: Request Override Surfaces #2204
    Csilla Mai
    Keymaster

    Hi Daniel,

    The surface indices of the ARCHICAD elements are available through the Global Variables. To get the name of the material you can use the “Name_of_material” request. For example displaying the material names of a slab element in a label object in 2D:

    _matTop 	= ""
    _matBottom 	= ""
    _matEdge 	= ""
    
    r = request ("Name_of_material", SLAB_MAT_TOP, _matTop)
    r = request ("Name_of_material", SLAB_MAT_BOTT, _matBottom)
    r = request ("Name_of_material", SLAB_MAT_EDGE, _matEdge)
    
    text2 0, -1, _matTop
    text2 0, 0, _matBottom
    text2 0, 1, _matEdge

    Is this solution the one that you need? Could you please explain that what would you like to use the material names for?

    Csilla Mai
    Library Developer, Library Team
    GRAPHISOFT SE

    in reply to: XML Extension #1901
    Csilla Mai
    Keymaster

    Hi Kristian,

    A new post has been created about the XML Extension in the Tips And Tricks section: How to use the GDL XML Add-On?. It contains a basic example about listing the parameter descriptions and values of an xml file. If you would like to see a more complex example then please send your request to gdlcenter@graphisoft.com. We will check it before long and may release a new post about it.

    Csilla Mai
    Library Developer, Library Team
    GRAPHISOFT SE

    in reply to: Problem whith my program in interface page #1599
    Csilla Mai
    Keymaster

    Hi Tonio,

    Apologies for the previous attachment (for version 20).
    In this new attachment you can find two kinds of solutions in the Array_inCallerObject folder and Array_inMacro file. In the latter case you do not have to set the material list arrays in all of your objects, but the parameter would disappear if the user sets the Material parameter in the caller object to 1. Therefore the ‘All parameter’ list should not be hidden, because it could make the parameter invisible for the user, once its value is set to 1. The other solution would not hide the parameter from the user by setting its value to 1, but the materials have to be listed in the caller object.

    Csilla Mai
    Library Developer, Library Team
    GRAPHISOFT SE

    in reply to: Problem whith my program in interface page #1576
    Csilla Mai
    Keymaster

    Hi Tonio,

    You can display the parameters in the macro dynamically. I created three test objects with a macro based on your attached image, please check the zip file attached to this post.

    Csilla Mai
    Library Developer, Library Team
    GRAPHISOFT SE

    in reply to: Problem whith my program in interface page #1543
    Csilla Mai
    Keymaster

    Hi Tonio,

    If the Surface parameters are handled as strings in an array, it is not possible to check their values. Neither is possible to check whether they are hidden in the caller object.
    Instead I would recommend the following solution:
    Create the Param and Titre arrays as a dynamic array parameter in the macro. Also all the string and material parameters you would like to handle in your macro.
    When you call the macro from an object create the arrays in the User Interface script with the DIM command and fill them up with the surface parameters you would like to display. In the macro, loop through the array, until its dimension. The dimension should be given by the caller object.

    MACRO:
    ! Loop through the array until the actual array dimension given by the caller object

    for i = 1 to vardim1(Param)								
    	UI_OUTFIELD 	Titre[i],	15, i * 25,	120, 	20
    	UI_INFIELD{4} 	Param[i],	140,i * 25,	240,	20
    next i

    CALLER OBJECT:
    ! Arrays in the caller object for the macro, filled with the parameters used by the caller object
    ! The actual dimension of these arrays is given by the caller object (below)

    dim Param[4]									
    	Param[1] = "MaterialAttribute_1"
    	Param[2] = "MaterialAttribute_2"
    	Param[3] = "MaterialAttribute_4"
    	Param[4] = "MaterialAttribute_5"
    
    dim Titre[4]
    	Titre[1] = title1
    	Titre[2] = title2
    	Titre[3] = title4
    	Titre[4] = title5
    
    call "ui_surface_macro" parameters all Param = Param,
    					Titre = Titre

    Csilla Mai
    Library Developer, Library Team
    GRAPHISOFT SE

    in reply to: Problem whith my program in interface page #1535
    Csilla Mai
    Keymaster

    Hi Tonio,

    On what kind of condition would you like to display the infield-outfield pairs?
    Would you like to display the parameters on every condition, and instead lock the parameter which does not take effect? (As on the attached image)

    Attachments:

    Csilla Mai
    Library Developer, Library Team
    GRAPHISOFT SE

    in reply to: Less complex examples #1481
    Csilla Mai
    Keymaster

    Hi Frank,

    I have made some changes in the text handling examples, but we are not planning to reduce the complexity of the examples. The text handling examples in the Tips & Tricks category are based on the 15. Text handling learning tutorial, the How to display values with units set in Project Preferences? is based on the 16. Advanced Text Handling learning tutorial. I hope that reading these tutorials will make it easier to understand the Tips & Tricks sections.

    Csilla Mai
    Library Developer, Library Team
    GRAPHISOFT SE

    in reply to: Comprehensive section on globals and requests #1459
    Csilla Mai
    Keymaster

    Hi,

    At the moment all these sections are available from the Information from the environment tutorial.
    A separate chapter will be created soon in GDL Reference Guide for accessing global and system values.

    Csilla Mai
    Library Developer, Library Team
    GRAPHISOFT SE

Viewing 15 posts - 16 through 30 (of 30 total)