Jump to content

Dynamic Block - changing object color


dvjstyles

Recommended Posts

I have searched for a tutorial on this but cant find anything. It seems a basic function that Dynamic Blocks would be intended for but I can find any mention of it anywhere.

 

I have a restaurant modeled in 3D - I want the chair seats to be different colours but I want to be able to make any later changes to the legs (etc) globally. I have put all the chairs in as a standrd block (not xref). I thought that it would be easy to specify different colors but I cannot get it to work.

 

I have made a Visibilty Parameter called Chair Color - and I have tried using the Manage Visibilty States to create two options of Chair Light Green and Chair Dark Green but I dont see how I can go any further. All the options on the Actions Tab are physical manipulations - how can you edit things like color (or material)??

 

Help would be most appreciated. :?

Link to comment
Share on other sites

you can do what you are attempting by setting a permanent colour to your lines and hide/show them with a visiblility parameter.

 

I wouldn't use a dynamic block for this though. I would draw the block on Layer0 with the leg's colour set "ByLayer" and the seat's "ByBlock". This way the 2 items remain independant.

Link to comment
Share on other sites

Edit-Dave's layer advice was better than mine. see above.

 

The only other option I see is a very complex combination of lookups on your visibility state. However the number of visibility states you would need to manage would be huge, the formula would work out as X^n where X is the individual options per chair and n is the number of chairs with options. For example, if you have 4 chairs (1,2,3,4) and 4 color options (R,Y,B,G) Your visibility states would have to reflect every one of the 256 chair and color combinations (i.e. 1R-2R-3R-4R, 1R-2R-3R-4Y, 1R-2R-3R-4B...etc.).You would then need to create lookups to control these vis states, and have only the proper ones viewable in any state. It's definitely possible, but it's a LOT of work.

Link to comment
Share on other sites

Its a shame that the software doesnt offer a easy way of doing such a basic thing, even Dave's reponse isnt really offering the kind of global editible properties I need. Because I would need different seat blocks for different coloured chairs right? Unless I misunderstand?

 

Hoping to try a new CAD package for the new year that could make this kind of visual thing simpler.. maybe Rhino? What do you think?

 

Many Thanks, Daz

Link to comment
Share on other sites

Because I would need different seat blocks for different coloured chairs right? Unless I misunderstand?
One of us misunderstands. Have you tried it? Just set the block's colour to whatever you want it to be - just one block available in 255 different colours.
Link to comment
Share on other sites

Heh heh sorry for the frustration and rhino ad there. hmmm right, well this is working fine for for what I need to do here but I can forsee that in future having only the one 'By Block' colour variable would not be enough. I will look into how I can use Visibilty Paramaters for this, it just sounds a bit more complicated than what I'd be able to do in the time scales I'm working to. Know to any tutorials, or a snappy way of explaining, of how the following would work?

 

you can do what you are attempting by setting a permanent colour to your lines and hide/show them with a visiblility parameter.

 

Would you have different coloured objects on top of one another and make a set of the colours invisible to leave the object colour you want? I'm keen to try it. Cheers

Link to comment
Share on other sites

If you are comfortable with visibility states and lookup tables its not really difficult per se, but the exponential growth of the visibility states required can get complicated quickly. Once it is complete you won't be willing to edit it. This block I found over on the AUGI forum shows a fairly simple example of how its done.

 

There are a couble of other options too. You could insert chair blocks individually and make them ByColor, but you'd have to insert them individually (probably a good spot for a LISP to insert all the blocks at once). Or you could create a layer for each chair and control its color through the Layer Manager. Problem with that way is all blocks will change globally. So basically its time to weigh all the pros and cons depending on exactly how you want it to behave.

Link to comment
Share on other sites

just spotted this one again

 

yes, if you want to use visibility parameters to control colours you need to have a seperate instance of colour for each state.

 

However, if you define some items to have their colour ByBlock and others to have their colour ByLayer you can have 2 independant colours. Define your block on layer 0 and then insert it on a coloured layer. All the parts defined "ByLayer" will change to that layer's colour. Now you can give the block a colour and all the items with a colour of ByBlock will change to that colour.

 

You can also definine other items on a layer with its own colour and they will be fixed until you change that layer's colour.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...