How to change a managed image?

Wow @sovitek ! Like a lighting bolt out of the blue, almost famous, but short of a Bo Derek. I’m unsure where to find ImageTypeOptions.Create, Element Classes, ImagesTypes.Create and All Elements of Class.

1 Like

I use element classes as i are in newer version, you can just element types and all element of types…the custom nodes are from archilab he has a lot of nodes for images :wink:

I’m not quite sure I understand your argument/question here. All of those things are possible from my experience.

1 Like

This is my experience, you can not add a new Image field as an instance parameter in Family editing, you can only add as Type parameter. In the Project you can not change the image set as a type parameter, this has to be done at the family editing level. You can change the image which is labelled “Image” in the family, but in my case only manually, it seems as though @sovitek has a solution, but unfortunately I’m stuck in a time warp, where the project managers are confining the project to R19. Which it seems the Archi-Lab tools aren’t compatible with, therefore if the process which @sovitek describes can’t not work in R19, then it looks like I’m stuck in Back to the Future.

the “image” field I would like to change, perhaps using dynamo

Can’t create an instance “image” field in Family

Unfortunately Archi-labs not working for me.

Hello…dont think you had the right version archilab installed, it should work at 2019 as well… i remeber right you can have 2 dynamo version installed in revit 2019 make sure you had the right one…
Highest #DynamoBIM Version for #Revit Versions

@sovitek , thanks for your support, I really appreciate it, but on the surface I think I tick all the boxes




You’ve installed the wrong version of Archi-Lab. The last two digits need to align to the Revit version you’re using, which if you’re using Dynamo 2.0.4 means Revit 2020 should be something like XXXX.YY.ZZ20

1 Like

Thanks Jacob for your reply, I’m actually confined to R19 as mentioned above, my installation of Dynamo tells me it’s (Up-to-date). How do I select the “right” version of Archi-labs if I’m only presented with one ? As you have mentioned this version of Archi-labs is not compatible with Dynamo 2.0.4, do I change the version of Archi-labs or should I revert back to Dynamo 2.0.3 ?

I do not believe that any current build of Archilab is supported for 2019; Try a build from 2 or 3 years ago, or upgrade to a supported Revit build (2019 has been EOL’d for 3 or 4 months now)

Ah, I misunderstood your original statement. Yes, image parameters have limited functionality compared to other parameter types, but that doesn’t really change anything with your automation. As others have mentioned now, you just need to have the right package and version for accessing this data in 2019. I’ll also mention that you can add instance parameters for images via project parameters.

1 Like

Ah, it seems I’m stuck between a rock and a hard place, our project managers are sticking with 2019, it seems some people are still afraid of the dark, and software support that runs out in three years.

Let’s be truthful, I still would have thought there would be some relevant code to change the image parameter even in 2019. Dynamo is about using nodes. There are coders that like the control of line by line code, and there are coders that rely on these coders to use tools like dynamo, otherwise dynamo wouldn’t exist.

Nick suggests adding in an image instance parameter via project parameters, this is a nice thought, but it’s like a parent putting you on a carousel, you go round and round, but you still get off at the same spot, if you can’t change the existing image parameter, what’s the point of trying to change a new one.

I guess I have to wait until the project managers come to their senses.

Installing an older Archi-Lab should work; You will have to do some trial and error to find out which one though.

In case it helps, here is some boiler plate advice I’ve shared with people to help PMs get over the fear of upgrading.

Reasons to upgrade:

  1. 2019 hasn’t been supported for awhile now, and as a result is likely missing some security updates which are present in 2020+, and could impact the entire org from a infosec standpoint. Have a look here (note the PDF Tron in particular) for some of these issues: Security Advisories | Autodesk Trust Center
  2. As 2019 is unsupported, if a model gets corrupted my colleagues in support may not be able to help recover the data. They’ll always do what they can, but there are limits in what we can do with older file formats. Imagine coming in one morning and opening a model to a warning message like “This model contains too many missing elements and cannot be opened, contact support.” That could result in your team having to roll the entire model back a few months to clear out the corruption (assuming you have a viable backup to roll back to) and get back up and running. It’s rare, but I have personally had to deliver such a message in the past.
  3. 2020, 2021, 2022 and 2023 all have significant performance, reliability, and stability improvements, in addition to time saving features. This means staff will be more effective in some tasks with new tools, and more productive when simply performing the same routines they perform now.

Reasons to not upgrade a project:

  1. Ignorance of impact on production
  2. Lack of planning
  3. Lack of coordination among team
  4. Lack of defined internal process
  5. Unrealistic concern over contract(s)

Cost impact of upgrading: minimal to nil
Risk in not upgrading: significant

I’m still having a hard time understanding exactly what it is you’re trying to do and what exactly is keeping you from doing it. I’m pretty sure you could create a shared instance parameter as a project parameter, add a new image type (if it doesn’t already exist), and then assign the image to the parameter of any elements that meet your requirements. All of this is possible through Dynamo and the API.

The only issue (that I can see so far) is that the node for creating project parameters does not allow for a shared parameter. So you could either create a non-shared parameter or manually add the shared one. Or potentially learn some python to create the shared project parameter through the API.

Thanks Jacob, for your excellent reply, I’ll forward it on to our project managers, and hopefully they will be able to see their folly.

1 Like

To Nick, I must profusely apologise to you on hand and knee, it must have been very late at night that I kicked this post off, now I go back and see the code I originally posted, and I thought it was clean, but you might have thought, what medication is this guy on ! Here is what I thought I was posting. What I would like to achieve is to post images to the “image” container of a Mech Element or Elec Element, such as a QR code, and then have the ability at any stage update that QR code because the link may point to a different URL, I would have thought this was an “easy” task, but perhaps not, however it might be a good segue into lessons learnt from the old movie “The Gods Must be Crazy” where, if you ever travel into the bush or wilderness, always take a box of matches, because if a fire front is bearing down on you, you light a fire in front of you so you can step into a safe zone before the fire front hits. I managed to even trap myself, at first thinking I had to change the image element, then reverted back to trying to change the family element, but unfortunately neither strategy worked. That’s what I’m trying to solve in software I thought would knock it over in a breeze.

307_EQUIP_SCHEDULES.dyn (38.7 KB)

1 Like

Silly me, I’ll be speaking in Swahili soon, the match was broken, and the breeze blowing.

308_EQUIP_SCHEDULES.dyn (19.9 KB)

Are you trying to change the file path for an existing ImageType or just change the assigned ImageType to a different, already loaded one? The file path for the referenced image is read-only. Not sure if there’s a way to change it through the API, but I haven’t come across one yet. Changing the parameter from one ImageType to another can be done with the standard Element.SetParameterByName node.

Ah, like a good detective story, there are twists and turns at every roadblock.

To Nick, yes, I’m interested in assigning the already loaded images. I believe the graph from @Sovitek goes a long way to creating images, but I have not been able to test that just yet, now waiting on PM decisions.

However, when you collect the images from elements, at least one has to be assigned to an element, otherwise you get none, and then you can only (so far for me) only gain access to all images through that magical node from springs, “Collect AllTypesOf” which opens up all the loaded images, then you can apply them to your mechanical or whatever elements.

Part of this little journey was inspired by the Aussie Bim guru, Images Processing in Dynamo (Intelligent Facades 1/3) - YouTube

However, I was also interested in applying images to rooms such to produce a consistent room schedule, i.e. you can control a room schedule by applying colors to say, a “color” field to control the colors in a floorplan.

If you are using room names as a legend every time you introduce a new room name, you get a new color. With the ability to assign a colour to the “image” field in rooms, you can control the color output of a floorplan. There are pluses and minuses to this, but this is my result, if you create a color legend as such;

And then you create a room schedule with say room name, room number, “image” “color” where the image is just a solid block of color i.e. blue.jpg


Now on your sheet you can place your legend (actually a schedule) displaying the colors you have chosen or from a list to import color “swatches” through dynamo to control floor plan layouts.

Of course, you can achieve the same result by setting up “Departments” or even “Colors”.

The pluses of using a schedule, are, this way you get a multi-field legend.

The bottom legends are color field legends in the views.

The top legends are schedules placed on the sheet.

310_EQUIP_SCHEDULES.dyn (26.4 KB)

You can get all ImageTypes from the ElementTypes and All Elements of Type nodes. No need for custom packages. Then you can assign the specific ImageType to each element as you please. The color scheme and scheduling should be no issue. You can handle it exactly as you’ve mentioned.

1 Like

Excellent Nick, a true alchemist for the seasons, here is the 4711 version, needed for an after letour experience, that’s what I was looking for in the beginning, the yellow guernsey, signpost > Paris.

4711_EQUIP_SCHEDULES.dyn (29.7 KB)