Some general thoughts regarding Material- and Construction Manager

Hi all,

since it has kept me busy I’d like to share and discuss some general thoughts about this part of Pollination.

Most bothers me the workflow, which isn’t making much sense to me at the moment.

Regarding the Construction Manager, what I miss most, is a column showing the thickness of a material applied. Best case, the thickness is editable right there?

For me the Construction Manager is also a representation of U-Factor calculation.
When I do it in an Excel Sheet the main parameters are conductivity and thickness.

The way thickness is handled in Pollination gives me a lot of extra work changing to grasshopper, define and save materials, closing and reopening Rhino, if want to perfectly maintain and work out of my own materials library.

How else is the workflow for me now?
For example, to define a wall I could pick my own wood 3" but need 6".
So I pick 3" user wood > duplicate > change thickness > done
But now the material is saved somewhere else.

Is it possible to do this in the user defined document instead of some place else?

Maybe I’m stressing this to much at the moment, but thinking about a final presentation it’s way better if a customer sees the insulation materials predefined {XPS Whatever 120mm thick} rather than something like {Typical Insulation-R16}.

Maybe I don’t see all aspects of this right now, since I’m not too experienced in energy simulation. If there is someone to share “a bigger picture” or contribute further aspects I would appreciate that.

1 Like

Hi all,

Several user materials appear twice since I defined some Constructions

I’m bit confused, because if I define further Constructions I’m being offered two choices although I wrote the material only once to the constructions folder.
Does it matter which one I choose?

Checking my model I realized a decimal place mistake in the conduction.
I updated my user material and now I have two different versions available.

Delete doesn’t help.
When I try to change the wrong one in my construction, it doesn’t help much either because the corrupt one is still taken by the Manager.

No way to change the construction when I keep the name…

Hi @martin6, Thank you for documenting all the issues with the materials/construction manager.

What do you think if we keep them all under this topic? Some general thoughts regarding Material- and Construction Manager

@mingbo is currently working on enhancing editing invalid rooms and adding several helper commands to streamline the process of making a model from 2D drawings. Once that’s finished we can do another round of debugging and fixing for the UI.

Yes that’s all right for me.

1 Like

OK I can see, I’ll work around for now.

There are more things to the interaction of UI and Pollination I realized. There is for sure a way to go 'till selections in Rhino are picked up right by Pollination…

@chriswmackey most of what I asked, think and found out about how Materials are handled in Pollination is written down here in this forum. I have to admit it’s a bit scattered and unanswered, but let’s have a look if I can condense it.

If I do that it looks like shown

This means to me the material is saved somewhere?
Only available in this particular file.
And in six months I need to know which file to start to have access to the saved materials?
(OK concrete maybe not the best example for a specific material…)

Right this works like you indicated.
I’ve created a grasshopper file to manage my Materials the way I like them to be sorted.
Leading to 11 .json to be managed.
But, if I have to follow this advice by @ayezioro

It’s either 11 Files with a relatively complex .gh structure, not very comfortable to handle and devellop.
Or someday 200 files with different names to be picked up by Pollination?
Yes, of course I can dump everything in one large file. => Handling?

Do you know of a way when two instances are running parallel?

Leads to this statement

This also occurs when I’m working on a new project and realize I forgot to define a material.
Is there a way to reload the user libraries in an open instance?

Out of my still limited perspective it looks like currently there is no overall picture on how to effectively handle user defined materials without much effort.
Like I said. In my opinion, for general use, concrete only needs to be defined once. Rest is about thickness?

Maybe it makes sense to question grown paths at the moment and take a look from scratch if there might be a more convenient and up to date way to handle Materials in Pollination (Grasshopper)?

While we’re at it, I’d like to add something about the Pollination Plugin itself.

Energy Materials better be accessible right out of the Energy Construction Workspace,
without the need to close it > start Energy Materials > change something > close again > reopen Energy Construction > search > apply


I suggest to look at the HB_LoadObjects component for both issues.
I believe also that most of this discussion can be maintained in the LBT discourse.


The core of the software and the ladybug_tools/resources/standards/honeybee_standards is all set up to support cross-plugin, cross-platform user-defined standards. Just use the HB Dump Objects component to write the objects you create in Grasshopper to the sub-folders in the honeybee_standards folder. Then, the objects will be auto-loaded into your library the next time you load up the Rhino and/or Grasshopper plugins. You can also dump a bunch of objects into the same JSON file (connect up lists of objects to the component) and the plugins will be able to handle the multiple objects in that JSON file.

Am I correct that the only part of your vision that isn’t fulfilled yet is some type of “Dump Objects” capability from the Rhino plugin? If so, this is coming eventually.

I guess you also wanted the ability to refresh the standards folder without closing Rhino/Grasshopper. We can add that capability fairly easily now if restarting is a lot of work.

That’s good news. Basically you are right that’s, besides the workflow within the component and the lack of ability to determine the place to save, the main one of my suggestions.

Don’t know of a single professional program, pulling me out of my work focus and wasting time in such a way. For me it’s a have to and thanks to you for implementing.
On the Grasshopper level this also would be a helpful time saving feature.

That’s the way I already adopted to, plus the given freedom in Grasshopper makes it easier to compensate currently missing library abilities.

One other helpful thing that comes to my mind you may consider an option for an incremental save function for the HB Dump Objects component?

Misunderstanding, therefore deleted!

Hi @martin6, I know that @mingbo has already made several improvements to the material and construction manager and I see that @chriswmackey and @ayezioro provided some insight here. Can you help me to understand if there is any remaining issues that needs our attention? Thanks!

Hi @mostapha brief and short
I’m using

User materials are not loaded / processed correctly

Essential functions
Save to user file
some type of “Dump Objects” capability from the Rhino plugin towards user folder
ability to refresh the standards folder without closing Rhino
there is currently no way of passing a material from one running Rhino instance to another?

Improve user orientation
To have an indication of the material source location in the Construction Manager

Time saving
The possibility to access Material editing right out of the Energy Construction Workspace

Still nice to have
Regarding the Construction Manager, what I miss most, is a column showing the thickness of a material applied. Best case, the thickness is editable right there?

Other remarks
Of course there are some more fancy ideas on how to improve this part of your project.
But since I don’t know of your goals, resources and limitations it’s hard to say for me how much can be realized.
Speaking from a part of my background, designing sideairbags in the automotive industry for many years, when you have 20 ms to save a live, you adopt to a way of thinking / creating your products which is highly fail save.
Out of this point of view there is still improvement regarding user friendliness and user weaknesses possible.

1 Like

Hi @martin6 ,

Sorry that some of my explanations are going to be a bit technical since I want to get @mingbo 's thoughts on what we need to implement them. Long story short is that we’ll work towards making most if not all of these a reality.

I think the user constructions/materials should be loaded correctly in the latest development version of the Rhino plugin now. I know we already have the command that is needed for this in the core libraries. @mingbo , can you confirm?

Essential functions
Save to user file
Technically, we can implement this now in the Rhino plugin by just having the plugin write the JSON file of the constructions right into the standards folder. The only possible issue with this implementation is that there will be no check for when one object in the library is overwriting another. We really don’t need to worry about this overwriting case if the Rhino plugin generates a unique identifier for each user-created construction. However, if there are cases where the construction identifier is preserved, then we should be concerned about this and, in this case, I can add commands that write the JSON files to the correct standards folder and perform this overwriting check before they do so. I think we would probably make it illegal to overwrite the constructions that ship with the plugin (in honeybee_energy_standards). However, it should be straightforward to overwrite existing user-defined constructions. The command can have an --overwrite option that allows you to replace the old user-defined object. @mingbo , can you confirm what you think is the right approach here?

Improve user orientation
We are just about to add a user_data property to all of the resource objects, which will allow you to attach source information to the constructions that you make (along with any other properties that you want to store like embodied carbon). FYI, all of the constructions that ship with the plugin come from the DoE Commercial Reference Buildings and were organized by the OpenStudio Standards software package.


Hi @martin6, are you able to load those user materials into Grasshopper with LBT plugin?
If yes, we might need your custom material file to debug. If not, that means there is something wrong with your custom material file.

Hi @chriswmackey , that sounds good to me. So we only allow overwriting user’s custom items, and all default and standard resources should not be touched via any UI (Rhino, LBT, or Revit plugin).

@mingbo I was referring to this post

maybe I should have put the link in the first place.
The file is loaded “correctly” somehow, but like I showed there it doesn’t make sense how it’s processed.
To make it even more clear, there is the question where does the 3rd material come from if not shown in the Materials Manager?

Support that one too.

Hi All. I just wanted to post some updates.

I added the planned behavior of the “add to library” commands to the GitHub issue about it:

You can check back there for progress on the commands needed to support that feature.

Also, the user_data key for Constructions, Schedules, Programs, and ConstructionSets is now an official part of the HBJSON model schema:

So hopefully, attaching source information to constructions is just a matter of exposing this on the UI at some point.

Few thoughts after testing out the interface…

Could ability to input construction/material properties in IP units be added?
I’ve toggled to imperial but all inputs are still in metric.

Without knowing the PO_EnergyMaterials/Constructions commands, how is one supposed to navigate to Constructions and Materials libraries through the plugin interface?

Could buttons be added to UI to make it easier to navigate between sets, constructions, and materials?

Under constructions, next to the construction layer, could a column be added with component performance? Also, please add inside and outside film coefficient layers and assumptions to interface.