Model Groups and Phasing

Hello everyone,

I noticed that phasing parameters react differently according to the model group instances. My goal is that all the changes inside the reference group need to be applied to all group instances.

Get and set values from phasing parameters go really smooth when Phase created or Phase demolished are set to one of the phases but when comes to set phasing to None then there is a problem. I am using custom node springs for that but still for me it’s a bit confusing. Does anyone knows how to resolve this one. In atachment is the picture of the script.

Thank you in advance for your reply :slight_smile:

As you can see from your working examples, Phase takes an Element argument. This is why “None” won’t work, even though it’s the user-readable value that Dynamo returns. You need to provide an Element rather than a string.

The tricky thing now is how do you assign an element for “none” or null? While Dynamo will accept an “element” input as the Element itself, the API is actually looking for an ElementId. The API also provides an object, InvalidElementId, that acts as a null or none value for element parameters. Normally you’d have to go through Python and the API to set an element parameter value to none, but Orchid has an Element.SetPhase node that defaults the Phase Demolished value to none. So just use that.

1 Like

Thank you very much @Nick_Boyts for your reply :)…Had problem installing Orchid and was trying to do so but smth doesn’t go so well. I took also set.value nodes from Orchid and they are working really good for the none values as well but now I have diferrent problem, when I select all elements and change the phases everything is good but when I cut the wall inside and select only couple of walls Dynamo doesn’t give me solution…In atachment is the screen shoot…

Try taking a screenshot with the Export as Image button in Dynamo. Your current image is zoomed out too far to read the node titles. You need to make sure those are visible when exporting.

Sorry @Nick_Boyts here are the screen shots…


There are a couple things that don’t look right here…

  • Your list structure and list levels for setting the values doesn’t seem right. When you separate the reference group and the other instances, both results are lists (even though you’re treating the reference group like a single object). It would seem like the list of reference walls @L2 (and therefore their phases) would then align with each sublist of walls @L2 from the other groups. It’s probably best to repeat the list of reference phases for each group to be modified. This would give you a phase for each wall.
  • The Parameter.SetValue nodes you’re using call for a parameterElement input while you’re providing the parameter name. I know that package use to have a node that used parameter name but you should double check that you’re providing the correct input.
  • Similarly, the Element.SetPhase node is asking for phase inputs for both the created and demolished phases but you’re providing a Wall element. This should be the same phase elements you’re using above. In fact, you’re duplicating efforts right now by setting the phases twice. You can just filter the walls to have a list of those with a demo phase and those without. Then you can use the SetPhase node to set the created phases for both and the demolished phase for those that have one.
1 Like

After long time I am coming back to this topic. @Nick_Boyts thank you very much for your reply. I still didn’t get it the problem. Can we just focus on your first part of reply to check if I am doing the things right. In atachment is my try to fix the first step getting and setting values from parameter “Phase Created”…Thank you for your reply :)…