Forum Replies Created
-
AuthorPosts
-
Dominika Bobály
KeymasterExample code in parameter script:
! ————————————————————
_formatStr = “”
rrr = REQUEST (“Window_door_dimension”, “”, _formatStr)stPanelSizesForList = STR{2}(_formatStr, A) + ” x ” + STR{2}(_formatStr, B)
parameters stPanelSizesForList = stPanelSizesForList
lock “stPanelSizesForList”
! ————————————————————This example formats the “A” and “B” length values according to Project Preferences/Dimensions/Door, Window and Skylight Dimensions settings in ARCHICAD.
“stPanelSizesForList” should be a new, string type parameter in your objects.Dominika Bobály
Product Manager
GRAPHISOFT SEDominika Bobály
KeymasterIf I understand correctly: you have several, similar panel items, with different A-B sizes, and you want to create a list, where all panels with the same A-B size are listed under the same category.
If yes, currently your best bet is to add a string type parameter to all such objects, and create a string value in paramscript using parameter values “A”, “B” and STR string formatting functions to convert strings from length types. Store the concatenated string value in the new parameter, lock it to avoid accidental changes, and then list this new parameter in the schedule.
Let us know if the case is different.Dominika Bobály
Product Manager
GRAPHISOFT SEDominika Bobály
KeymasterSome more tips:
* make sure there is no interference between the ui_page IDs of the object and the macro. Everyone should know exactly which pages they are responsible for. Either pass down the necessary data to the macro via parameters, or hardcode the page IDs in both places. In our door objects, we have a macro containing the hardcoded IDs, and we call that macro in each interface script where a new tabpage is inicialized. You don”t have to do this in case you have a handful of pages alltogether, just hardcode the IDs exactly the same way in all places belonging to the same UI tabpage set.
* the warning “FieldID ‘1’ previously defined at…” usually appears if you have more than one listfield in the tabpage set, and their listfield ID-s are conflicting. In case there is only one listfield/tabpage, it is best to use the tabpage ID as listfield ID (theoretically tabpage ID-s should be unique). In case you have more than one listfield on a tabpage, you should come up with a unique listfield ID a different way.
* listfields can have listitems defined in different places, see here. You do not have to duplicate the listfield in case some items are added in a macro.Good luck.
Dominika Bobály
Product Manager
GRAPHISOFT SEDominika Bobály
KeymasterTry this, please:
UI_INFIELD{3} shelf_fixing(3), 10, 70, 150, 19,
8, “”,
0, 0, 0, 0, 0, 0,
“”, “Fixed”, 0,
“”, “Adjustable”, 1 UI_TOOLTIP “Shelf fixing”UI infield types of old are not always prepared to handle array params on UI. You have to use infield version 3 instead of 2 for arrays. It both works for integer and string types as well.
In case “shelf_fixing” is a string type array, the UI works like this (both version 2 and 3 are okay):
UI_INFIELD{2} shelf_fixing(3), 10, 70, 150, 19
Or, to have the nicer text popup use:
UI_INFIELD{3} shelf_fixing(3), 10, 70, 150, 19,
8, “”,
0, 0, 0, 0, 0, 0,
“”, “Fixed”, “Fixed”,
“”, “Adjustable”, “Adjustable” UI_TOOLTIP “Shelf fixing”Of course in string type case the paramscript should be:
values “shelf_fixing” “Fixed”, “Adjustable”Good luck.
Dominika Bobály
Product Manager
GRAPHISOFT SEDominika Bobály
KeymasterThere is a detailed tutorial for similar cases here, with downloadable example objects (the one you need is Central editing example AC19.gsm in the lcf).
Dominika Bobály
Product Manager
GRAPHISOFT SEDominika Bobály
KeymasterIn retrospect, it would not have been a solution in this particular case, but in case 2 very similar objects are behaving differently, we usually start with a comparison of the stored parameters of the instances.
You can check the current parameter set of a placed object by using the “Dump Library Parts of selected Element” command, from the Library Developer menu.
This command writes all available parameter and global variable data of the selected object into the Report window. You can copy-paste it from there to any file comparison applications to look for differences in the 2 sets. Make sure to remove all previous notes from the Report window before using the command for easier difference-spotting. Works on one selected object at a time.
In case you already knew this, sorry for the long post. Hope it helps next time.
Next step in a case like this is the Compatibility options check. Bingo. Well done, Barry:)Dominika Bobály
Product Manager
GRAPHISOFT SEDominika Bobály
KeymasterJust a tip (you may already know anyway): try to use the option “Dump Library Parts of Selected Elem” of the “Library Developer Menu” to list the stored and active parameter values into the Report window – but these do not apply themselves onto the opened libpart in GDL editor, so maybe not so much of a help, but at least the parameter values of the instance can be checked more easily. By comparing the active parameter set of 2 different instances, sometimes the source of the problem becomes clear pretty fast.
Dominika Bobály
Product Manager
GRAPHISOFT SEDominika Bobály
KeymasterYour request was forwarded to the feature-design department. This does not guarantee it will happen, but at least it is a know issue from now on. Thanks for the input.
Dominika Bobály
Product Manager
GRAPHISOFT SEDominika Bobály
KeymasterThere is no dedicated option to disable the Point Cloud point snapping.
Dominika Bobály
Product Manager
GRAPHISOFT SEDominika Bobály
KeymasterMoreso, you can try to use the VALUES command to set a discrete value-list for you parameter.
For example: “B” only should be working at 500, 200, 350, then:
values "B" 500, 200, 350
If you add a hotspot for “B” editing, it will jump to the previously set values only.Dominika Bobály
Product Manager
GRAPHISOFT SEDominika Bobály
KeymasterBarry is right, you need the “editable” kind of hotspots for parametric positioning. See a tutorial here.
Dominika Bobály
Product Manager
GRAPHISOFT SEDominika Bobály
KeymasterJoseph,
please tell more: did you use PROJECT2 command for the 2D display, or you scripted an independent 2D symbol? Are you using binary 2D, or scripted? What does “add to a new pln file mean”? You load the object with library manager, or copy paste it from another file, etc. Best would be if you could send us the object in e-mail so we could take a look, or if you want more people looking into the matter here on the forum, upload the object to this forum thread.Dominika Bobály
Product Manager
GRAPHISOFT SEDominika Bobály
Keymaster…and here is the second episode:
Enjoy:)Dominika Bobály
Product Manager
GRAPHISOFT SEDominika Bobály
KeymasterThe complete solution to this requires developments on ARCHICAD’ side in custom component creation as well, not just in the library parts. Both AC and libpart issues are registered in our database, and will be corrected according to the normal bugfixing workflow.
Library update is not possible (compatibility would be compromised), so this bugfix is scheduled for an upcoming full version only.Dominika Bobály
Product Manager
GRAPHISOFT SEDominika Bobály
KeymasterNot really, if you insist on using one parameter only.
Either create more parameters for the listing, with similar type of content, and use those parameters in schedule in separate columns. Or you can use the “Info” script of the object (it is called “Comment” in the GDL editor) – this can not be listed, but if you hit the info icon next to the object preview in the settings window, the text is visible in a popup.
In AC20 properties were introduced, where you can create custom property parameters (with “unlimited” content as string), and link them to your objects. Property parameters can be listed.Dominika Bobály
Product Manager
GRAPHISOFT SE -
AuthorPosts