Hi everyone. It’s been a while since I last posted. I’ve been caught up in other projects that I’m currently developing – can’t wait to share with the comunity! But, recently I’ve focused back on the UI tools of the Data-Shapes package. The community’s reception of Data Shapes UI tools has been overwhelmingly positive, and it has been a true delight to see people getting creative with them and coming up with uses that I never though of.
Due to several great suggestions made by some of the users in the community (I’m looking at you Daniel Hurtubise), and a little of my own inspiration, I have made some additions and adjustments to the tool. This post is their introduction.
A Major update of the Revit element(s) selection input
The Revit element selection has been modified quite heavily (sorry if it messes up workflows :D), now you can apply a category filter to the selection! This means that the user will only be able to select specified categories. This lessens selection errors and ensures that the workflow works as intended. If you don’t feed the CategoryFilter input any information, the selection will have no filter:
If you don’t specify a cutom ButtonText, the button will display categories that can be selected to the user by default :
Here’s what happens when you use the selection filter (Doors and Windows is this example):
The API only offers an interface to apply filters, which I used to create a category filter class. I think this is a very useful feature that is missing from OOTB nodes. I don’t think anyone has implemented this in a custom node so far, that’s why I also added a “Select Model Element(s) of category” node to the package, independently from the UI tools :
The other addition to the Revit element(s) selection input is the possibility to limit the selection to a single element. I added this because I received a lot of feedback saying that having to press the “Finish” button after selecting a single element was a waste of time and was very often forgotten. So you can now control that by setting the “SelectSingleElement” input to true (default value is false). It will then work like this:
Update of ListView
ListView inputs are still created and used in the exact same way. However, you’ll notice the presence of “Select All” and “Select None” buttons :
Link to Help
There is now an extra optional input to the UI.MultipleInputForm++ node. This was suggested by Andreas Dieckmann and I think it’s a great idea. You can feed it a url, a directory path or a file path. A little help hyperlink will then appear at the bottom of the form and clicking it will take you to the web page/directory or will open the file:
It can open all types of files. Here’s an example with a pdf.
New inputs types!
- RadioButton input :
RadioButtons are what you need if you want the user to select one of many choices. It will display the list in a box and only one selection will be permitted. The way to set the input up is similar to DropDown or ListView inputs : you must feed a list of keys and the matching list of values. The user will be shown the keys, and the form will return the associated value .
Those who have updated the package recently might have noticed the “UI.IntegerSlider Data”. It has been around for a little while, but it wasn’t quite complete yet. From now on the “UI.Slider Data” node can be used to create slider inputs on the form with more customization options. You can set the minimum and maximum values of your slider, the default value, and the step. It can be an integer or a double slider depending on the step you set, which I think is pretty cool 🙂
- Image input :You can now add an image to the form! The input creation is very straightforward. Just feed it a file path and an image title (optional) and add it to the inputlist you give to the form. This input doesn’t return any value to the output list, like with the TextNote input.
This input can be useful to give further indication/illustration of what the user is supposed to do. You can use all types of image formats, and even show animated gifs !
Hope you guys enjoy the update! Feel free to comment and share your thoughts, they’re how we improve 🙂
Great update,
Thanx a lot!
LikeLiked by 1 person
Outstanding as usual Mostafa! lots of fun for the weekends !
LikeLiked by 1 person
excellent work, thks
LikeLiked by 1 person
This is fantastic. Thank you for your work
LikeLiked by 1 person
Great to see the new update. I really like radio buttons.
What I did to do a select all is making a toggle with the text select all and than using an IF function. With the new function it will be probably much easier. Thanks a lot!
LikeLiked by 1 person
Hey,
I want to say thanks for your hard work again, and to ask you about an issue that I had.
I’ve been experiencing slowness and slow-search in Dynamo after running the UI nodes (previous versions too), and the only way for me to solve this is to reboot Revit and Dynamo. Have you experienced this on your end at all? And do you know what may be causing this?
LikeLiked by 1 person
Hi Richard,
thanks for your message!
I haven’t experienced slowness using the UI forms. Do you get the issue while working in manual mode? and does it get slow at the moment you place UI.MultipleInputForm++ on your graph ?
LikeLike
Hey Mostafa,
Yes I am running in manual mode, but seems to be getting the same in automatic as well. The problem occurs immediately after I run the UI.MultipleInputForm ++ node. 😦
LikeLike
Just want to post an update that the problem was in fact due to the vdi connection in my office. Your node is working perfectly fine on a local computer!
LikeLiked by 1 person
Do you have access to another machine with Revit/Dynamo to make sure the issue isn’t linked to your computer?
LikeLike
Why does UI.MultipleInputForm++ output @ “user inputs” “Function” … It used to be a list?
LikeLike
Hi 3Pinter,
Could you upload a picture ? I’d be happy to take a look at it.
LikeLike
(same as last topic 😉 )
But I think it had to do due the update to your latest version? I create a same form++ with the same inputs etc. … and voilà it works again .
Does that make sense?
LikeLiked by 1 person
Yes that actually makes sens. I didn’t change any of the input nodes to avoid that but I guess it wasn’t sufficient. Glad to know it’s working again!
LikeLike
Great work! I’m loving the updates. Now for the obligatory request…Can I select linked Model Elements? Thank you
LikeLiked by 1 person
It has just been added to version 2017.04.140 of the package 🙂
LikeLike
this is making my graphs so much more user friendly – really great work
one question/request – would it be possible for the UISelectModelElemements Data node to assume the Finish button has been clicked when selecting multiple elements at the time the Set Values button is pressed – if i’m forgetting to click Finish, I guarantee my teams will as well and having Revit crash when you forget is a bummer
as a workaround, I’m having Dynamo force a local save before the execution of the UIForm
again – great work
LikeLiked by 1 person
+1 for that request. I’ve been testing and forget 8 out of 10 times. I can only imagine my users doing this 10 out of 10 times.
LikeLiked by 1 person
Hi Greg,
thanks !
This issue has been raised multiple times and I decided to tackle it. During my research, I couldn’t find a way to “abort” the selection through the API. So what I did Is freez the form while the selection is being performed. That way, it will be very hard for the user to forget clicking the finish button! 🙂
Check out how it looks like on this gif (Data-Shapes versoin 2017.01.210):
https://drive.google.com/open?id=0B9v9Y2txZ3Ied05aYkluNTlvZnM
I hope this will prevent crashig Revit! Please let me know how it works for you.
LikeLike
That’ll work! Thanks!
LikeLiked by 1 person
Another thought… a default selection for drop down lists…. for everything for that matter.
You are killing it with this.
LikeLiked by 1 person
This will be available very soon 🙂
LikeLike
Check out version 2017.04.240 ! 🙂
LikeLiked by 1 person
Great work as always! 🙂
I have one idea for a new node 🙂
I wanted to use UI to check the warnings in my model. I find a way to isolate in 3D view elements displayed in warnings but what I really like to get is a node witch allow me to switch beetween warning so beetween group of element (like a Next and Previous button).
I’m not really sure if there is a way to put this kind of loop in dynamo. Because I want to modify elements then switch to other group etc…
Thanks for the return and have a nice day! 🙂
LikeLiked by 1 person
Salut Adrien !
Thanks for your message 🙂
That’s a very interesting idea. I have been working on something similar but haven’t been able to complete it yet. The asynchronous way dynamo works makes it a little tricky.. But i’m pretty sure something can be done. If I manage to get it to work I’ll share it here 🙂
Have a good one too !
LikeLike
Thanks for sharing
LikeLiked by 1 person
Hello! Great work here, i didn´t knew this website but it’s fantastic and helped me just now in my work. I’m a portuguese civil engineer student and i´m working on a BIM system that could give advantage information for quality control in situ. I need to export shared parameters information of doors and windows (for now) but it seems that i can only add one category to be analysed… is there any way or node that select all elements of multiple categories? by the way i’m a bit fresh about dynamo but i’m really enjoying discover new things, i’m learning by seeing tutorials and experimenting things that i see on websites or forums. Thank you for your time.
Best regards,
Pedro
LikeLike
Hi Pedro ,
Thanks for you message .
You mean select elements of all categories though the form ?
LikeLike
Hi!
Not all categories, just 2 or 3, but i saw yesterday in a reply that you gave, the node “List.Join” so that question was solved! very nice, but now i have another question : is there a node that works when i try to export the values of instance and type parameters from a family? i tried Element.GetMultipleParametersbyName node but it seems that only export the instance parameters…
LikeLiked by 1 person
I think you should open a thread on the dynamo forum. It will be easier to provide help there.
LikeLike
Hi! Great Work!
I would like to ask you if there is a way to arrange the forms on multiple columns to see more of them at once.
I need many forms at once and placing them in a single column makes reading uncomfortable…
Thank you!
LikeLiked by 1 person
Hi Raffaele,
thanks for your comment!
displaying many forms at the same time is not possible at the moment. But there are ways to open forms in a sequence or to make a form scrollable. You should start a thread on the dynamo forum where you describe your usage case more specifically. It’ll help me provide better help.
LikeLike
This is a great tool set. I’m curious if there is a way to eliminate the need to hit the button. This would be specifically helpful for use of the radio buttons where after one (or one of each group) has been selected, it can automatically complete. Please forgive me if you have already addressed this somewhere.
LikeLike
Hi Alexander ,
thanks for you comment and sorry for the late reply.
What you describe could be done but I believe that it would probably be dangerous to not have a validation button. Do you have a specific use case where the validation button is a nuisance?
LikeLike
Hi Mustafa,
th new UI.Multi++ can not handle ColorInput’s anymore.
Local variable “importcolorslection” referenced before assignment.
LikeLike
Hi Sebastian,
thanks for reporting this! I just fixed it in version 2017.06.19 of the package. Please let me know if it solves the issue for you .
I’d also like to point out the fact that this input only works with revit 2017 or more recent.
LikeLike
Hi,
it’s working again. Thanks a lot 🙂
LikeLiked by 1 person
Hi there.
It’s a very good work here. Thanks a lot for the nodes.
A small bug: when run UISelectModelElemements Data node, click on button to open the selector mode, then we should select and validate the selection. A very good think. But if we don’t select anything, only open the selection mode, and click Cancel the Revit give and error. I’m not sure if only on my configuration receive an error or is a general one. Some time is needed to cancel the selection mode to temporary isolate or hide elements in view to me more easy the selection making. I’m wandering if the cancel (from Revit, not from dialog windows) button have a connection with the script or not.
If you need the error details, let me know.
LikeLike
This is a great resource, and a very functional node package. Many thanks for your hard work.
LikeLiked by 1 person
Thanks a lot! This package is amazing!
LikeLiked by 1 person
I really like what this does for the user experience! Great work….
Question, can the UI.FilePathData node be used to point to an excel file that Dynamo uses to read data from? I can”t seem to figure out how to make this work
LikeLiked by 1 person
Hi Kallen!
Thanks for your comment 🙂
Yes this can absolutely be done. If you want more specific help with a workflow you should start a thread on the dynamo Forum !
LikeLike
Hi, great work first of all, I love your Package!
Just a comment about the UI.SelectModelElementsData node – it would be great if it could keep the order in which the elements were selected, instead of re-arranging it. It could be so useful when wanting to re-number things like rooms, doors, etc.
thanks!
LikeLike
Hey Monica, thanks for your message! You’re absolutely correct . So far the method used is PickObjects and it does not take the order into account. I’ll definitely think it could be useful to have another input that does. I’ll keep you posted
LikeLike
Okay you can update the package now 🙂 The new input type is names “UI.SelectModelELements data (ordered)” . Let me know how it goes!
LikeLike
Amazing – Worked perfectly, thanks so much!
LikeLike
Awesome! No problem 🙂
LikeLike
i’m lost and not sure if this is the correct location for this inquiry. i’m looking for a workflow to export electrical panel schedules from revit 2017 to a xls file. this is a workaround because autodesk has not overcome the limitation or allowing panel load data to transfer between linked electrical models on a campus site.
currently i’m using dynamo ExportPanelSchedulesToExcel.dyn but getting (3) “Custom node definition is not loaded!” errors.
LikeLike
i’m lost and not sure if this is the correct location for this inquiry. i’m looking for a workflow to export electrical panel schedules from revit 2017 to a xls file. this is a workaround because autodesk has not overcome the limitation or allowing panel load data to transfer between linked electrical models on a campus site.
currently i’m using dynamo ExportPanelSchedulesToExcel.dyn but getting (3) “Custom node definition is not loaded!” errors.
LikeLike
Hey everyone!
I installed the latest version of data-shapes package but there is no node called UI.MULTIPLEINPUTFORM ++ . I’m working with Revit 2019.
LikeLike