Forum Replies Created
-
AuthorPosts
-
Dominika BobályKeymaster
Break the texts into shorter pieces and store them in a text array. The limit of 255 characters/variable is hardcoded in the program, but you can workaround it this way. If you have a variable “_stText” for example, which has exceeded the limit, break it to 2 variables (or an array):
_stText1 = "asldgdjsasdgjsardjg..." !fill it up to 255 characters _stText2 = "puoizpiweuztrjlasfkjrgsjhlktfspriwrute" text2 0, 0, _stText1 + _stText2
The program can handle concatenated strings in display longer than 255 characters, but you have to take care of the slicing.
Dominika Bobály
Product Manager
GRAPHISOFT SEDominika BobályKeymasterThe surface of the custom door leaf is fixed by default, saved with the surfaces of the element it is created from. That’s why the leaf surfaces are greyed out for custom door leaf in previous versions (it is not locked in AC20, though).
If you set the surfaces of the base element to GENERIC before saving the custom part, the surface of the custom leaf becomes editable theoretically from within the placed door instances: the last material command before the custom component macro call takes effect. Unfortunately, this last material command refers to a frame surface in our current code structure (it is a known issue), but you can work around it inside the DoorLeafPanels macro by adding an extra line to the custom component script parts (around line 11195 in 3D script, material gs_leaf_mat fixes it). Note, this is a workaround with limitations, and works only with one surface (no inner-outer leaf surface option).
In case you have a locked surface parameter still, set the door panel to a style which unlocks the parameter, choose the surface, then change to custom door leaf.Dominika Bobály
Product Manager
GRAPHISOFT SEDominika BobályKeymasterJames, the article is ready. Hope it gives you some answers.
Dominika Bobály
Product Manager
GRAPHISOFT SEDominika BobályKeymasterJames, could you upload a small example package of the problem?
I tried to reproduce it:
– created object with 2 dynamic array variables
– created macro1 with 2 array parameters
– created macro2 with same array parameters
Inicialized array variables in the placeable object, called the macro the same way you did, the macro calls the second macro straight away, same script.
As long as there was a completely uninicialized array variable, I got the same warning you mentioned (the line number refers to the caller object script, not the macro, so the warning is a bit off in this respect, you are right).
But the moment all arrays got at least 1 element value, the warning disappeared.
Not sure if I got your workflow correctly.
Uploaded my version, to make sure. Please, check.Attachments:
Dominika Bobály
Product Manager
GRAPHISOFT SEDominika BobályKeymasterPavel,
first part of the MVO series is ready: https://gdl.graphisoft.com/tips-and-tricks/model-view-options-in-general/
The next “episode” will be about custom MVO object creation.Dominika Bobály
Product Manager
GRAPHISOFT SEDominika BobályKeymasterBarry,
the bug has been fixed, it will be included in one of the upcoming regular updates (probably the next). Thanks again for the report.
Dominika Bobály
Product Manager
GRAPHISOFT SEDominika BobályKeymasterPavel,
what you request needs a longer post, not a forum answer, to cover the topic in general. I’m currently working on it, stay tuned.
In the meantime, you can try this thread:
The gentlemen there are discussing MVO related tips.Dominika Bobály
Product Manager
GRAPHISOFT SEOctober 4, 2016 at 10:47 in reply to: Components for walls from Wall_Zone_Border_Parameters #2748Dominika BobályKeymasterYour script should work: you have to enable “Interrupt with error messages” function in “Options/Work Environment/Model rebuild options” menu to let Print work.
Your script worked for me in a new label object (the print popup was visible in the settings dialog, and it printed to the report window as well). However, it’s better to inicialize your return variables to avoid GDL warnings (even the dummy ones, I did not do that now):
p_values= "" n = REQUEST ("ASSOCLP_PARVALUE", "gs_list_manufacturer", _dummy1, _dummy2, _dummy3, _dummy4, _dummy5, p_values) text2 0, 0, p_values
Use text2 command to output values instead of print, even if only debugging, to make sure.
Dominika Bobály
Product Manager
GRAPHISOFT SEDominika BobályKeymasterAll 3D wallhole cut commands have similar status codes for each node as PRISM. Have you tried modifying those?
Dominika Bobály
Product Manager
GRAPHISOFT SEDominika BobályKeymasterJames,
we are currently working on an article which explains the method for such value lists (would be too long for a forum post). Hang in there, please.
Here are some hints, so you can work it out for yourself if it’s urgent:
our labels use the ui_custom_popup_infield GDL command. It can create a “value list” using the returned array values of requests in the User Interface script alone. The selected value can be displayed in 2D.Dominika Bobály
Product Manager
GRAPHISOFT SEDominika BobályKeymasterThat kind of control does not exist in GDL. Your current solution is the best you can do: making the infield as long as possible, and adding a display outfield.
The only infield with multiline capabilities is the checkbox-boolean type, but it’s not eligible for text input, only description output.Dominika Bobály
Product Manager
GRAPHISOFT SEDominika BobályKeymasterThank you for the report, our in-house investigation confirmed the bug as well. We will take care of it in the normal process.
Dominika Bobály
Product Manager
GRAPHISOFT SEDominika BobályKeymasterYou can try to draw back the covered wall parts using WALLINE2 command. To get the attributes, the globals containing the necessary information are different in case of a simple wall (WALL_SECT_PEN, WALL_LINETYPE) or a composite wall (WALL_SKINS_PARAMS).
Dominika Bobály
Product Manager
GRAPHISOFT SEDominika BobályKeymasterExample in object:
!inicialize variable _bOplinesTemp = 0 ! request MVO parameter value _bSuccess = LIBRARYGLOBAL ("LibraryGlobals13", "D_showBOpLine3D", _bOplinesTemp) ! possible values of "D_showBOpLine3D" : 0-1 if _bSuccess & _bOplinesTemp = 1 then ! do something if oplines are ON from MVO and request is successful endif
Dominika Bobály
Product Manager
GRAPHISOFT SEDominika BobályKeymasterThe MVO objects which are accessible via the LIBRARYGLOBALS “request” are simple libparts under the Library Global Settings subtype (you can create your own if you like, with your own custom parameters). To be able to access the options of any of them, you need to know the name of the libpart. Currently we have 2 of them in the library: “LG_DWSymbSettings” for Door and Window symbol settings panel, and “LibraryGlobals13” for Miscellaneous panel. The request needs the name of the libglobal object, and the name of the parameter the settings belongs to. You can open these objects (type the names into the report window, and hit “Open object…”), and look up the parameter you need to rely on, and in the parameter script, search for the values you can use in your own objects as conditional variables. The “Show opening lines in 3D” – doors parameter name is “D_showBOpLine3D”. Hope this helps.
Since these are not built-in library parts, but custom ones, currently this is the only method you can look up the MVO parameters.Dominika Bobály
Product Manager
GRAPHISOFT SE -
AuthorPosts