Would someone mind taking a look at this file for me?
I do not understand what the issue is with getting this to work. I have a Parent Component called “H”. One of its child components is called WLEP. WLEP is made up of two child components of its own, one is called WLEP Interior and the other is called WLEP Exterior. “H” has a custom attribute called CarcaseColor which the user can select from a list. I’ve verified that the values in the list match exactly the materials in the model. WLEP has a custom attribute called PanelColor whose formula is =Parent!CarcaseColor. WLEP Interior Material attribute is set to =IF(OR(Parent!PanelColor=“240 Moonlight Grey”, Parent!PanelColor=“241 Sandbeige”),“239 White”,Parent!PanelColor). WLEP material attribute is set to =Parent!PanelColor.
Here is how I need this to work. The WLEP Interior should always match the carcase color of the parent EXCEPT if carcase Moonlight Grey or Sandbeige is selected, then WLEP Interior should be white. WLEP Exterior should always be the CarcaseColor.
What’s happening is that the entire component WLEP is always carcasecolor, even with the formulas inserted. What gives?
I feel like this is likely something simple, but I cannot for the life of me untangle it. Even working with ChatGPT and spending several days on it.
I don’t need reports, this is for visualization for clients rather than for any sort of cutting or producing the product. The plan is to generate the designs with these and then render and use as part of the sales process.
Maybe I should back up a bit. I have spent an inordinate amount of time trying to get this to work. I understand the concept in theory, but application is an issue. In fact, even @pcmoor file it does something weird where is shows the correct text in attributes but the interior face seems to remain a static finish that does not change with material change.
The four panels that make up the cabinet box are DCs that contain two child components. Exterior is essentially a box without the lid (5/6 faces). Interior is just the 6th face.
So it looks like H > WLEP > WLEP Interior, WLEP Exterior
In the instance that I select white, greige, carbon or quartz grey then both interior and exterior should be that color; however, if I select Moonlight Grey or Sandbeige, then Exterior would match the selection and Interior would be White. I would be applying this to all components that have an interior face. I’m essentially modeling the difference between available two-side materials (where all faces are the same material) vs one side material (where 5/6 faces are material, but the 6th is white. These are how we get these panels to produce the cabinet boxes.
The mind numbing thing here is that it seems like it should be a simple, basic concept to execute. I cannot tell if I have linking incorrect or somewhere my attribute selections are overriding the option before it gets to the child/grandchild component and overriding it.
In my original file that I uploaded, I went back and made some changes.
H > custom attribute list: Carcase with the colors listed
WLEP > Material=Parent!Carcase
WLEP Exterior > Material=Parent!Material
WLEP Interior> Material=IF(OR(Parent!Material=240 Moonlight Grey, Parent!Material=241 Sandbeige),239 White,Parent!Material)
Logically that seems that if the Parent!Material is 240 or 241 then the material would be White, otherwise it will match the Parent!Material.
I just have a nagging feeling that somehow my attributes are such that something is interfering and overriding the interior formula output.
So right off the bat that took forever to load, I agree w Philip on the texture size. OK so it would seem there is an issue with the logical argument. Did a test with just a 0/1 logic value and it works… Maybe consider passing the option as a simple 0/1 value…
EDIT: On further investigation it seems the DC Extension is reading the formula value and not it’s result. So I would pass a value down from the parent where the selection is made.
Working on it gimme a couple. Also have found out that the spaces in the material names is messing with the DC Extension.
EDIT: OK so I removed most of the materials so I can upload it here. Help us help you, in the future isolating the problem in a simple example often helps me figure it out before I post, and defiantly makes it easier for others to help. I do think your issue lies in materials naming, if you were to remove all the spaces or replace them with underscores it would probably fix the problem. Or as an alternative use this method. Many ways to fry a fish… or something along those lines.
Glad it works for you. Check @gsharp’s list of DC gotcha’s out. Also if you click on the functions tab in the DC attributes dialog, and then the drop down, you can see all the DC functions.
you might find the Goldilocks extension useful for checking the appropriateness of your texture images and models for the level of detail you intend to use them…
They will flag textures and objects that are too detailed
e.g the washing machine texture is ok for the first screen capture (green)
but not high enough resolution for the second image (brown)