Copy/Paste Object Properties

5 votes
Version: 
1.02
Date Updated: 
01/21/2014
Author Name: 
Colin Senner

This script allows you to copy and paste properties from one object to another (or multiple at once).

This is useful for copying camera settings from one to another. Although it will do any type of object you copy from. You can easily include/exclude any properties you DONT want copied (like FOV, focal length, etc).

Run the script:
1. In Max goto "Customize -> Customize User Interface -> Toolbars tab -> Category: ColinScripts->Properties (Copy)" and "Properties (Paste)" and drag them to a toolbar.

You can also copy an object's properties from one open max file to another open max instance because the script just writes a txt file with the properties.

Version Requirement: 
Max 9+
AttachmentSize
1.jpg41.91 KB
2.jpg82.2 KB
propertiescopyandpaste.ms7.83 KB

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
colinsenner's picture

Updated

I know it doesn't look like it, but I updated the script considerably to be able to accommodate your request and reworked how things are parsed to be cleaner and allow me more flexibility (like adding friendly names to each of the parameters so you know what you're copying.

Check out the new script. It doesn't support custom renderer object properties yet, but it's ready to be able to at least.

After a bunch of work I realized that with V-Ray you can easily change the V-Ray custom properties for a bunch of objects at once by simply having multiple objects selected and right-clicking and going to "V-Ray Properties" and changing them easily there. I take it FinalRender doesn't have this ability?

Let me know.

igamaximus's picture

But these are not object properties from right click meny.

Is it helpful to show you the screenshots of finalRender right click object properties rollouts? I think there are 3 rollouts in total on finalRender properties tab.

Thanks!

igamaximus's picture

with pleasure Collin, please take a look

When i do exactly like you told me i don't get anything in mxs listener, i am really not sure why. fR is my current renderer and this approach does not provide some informations.
But, when i create small script like this:

fr = renderers.current
show fr

it gives me all the exposed properties of the fR renderer, and these are:

.useAntialiasing (Use_Antialiasing) : boolean
.aaQuality (AA_Quality) : percent
.showAdvancedSettings (Show_Advanced_AA_Settings) : boolean
.useScanline (Use_Scanliner) : boolean
.aaSampler (AA_Sampler) : integer
.aaSamplerName (AA_Sampler_Name) : string
.aaSamplerRef (AA_Sampler_Reference) : maxObject
.filterMaps (Filter_Maps) : boolean
.filterImage (Use_Image_Filter) : boolean
.aaFilter (AA_Filter) : integer
.aaFilterName (AA_Filter_Name) : string
.aaFilterRef (AA_Filter_Reference) : maxObject
.aaFilterSize (AA_Filter_Size) : float
.bucketSize (Bucket_Size) : integer
.bucketOrder (Bucket_Order) : integer
.bucketReverseOrder (Reverse_Bucket_Order) : boolean
.bucketColor (Bucket_Color) : RGB color
.trackMouseInVFB (Track_Mouse_in_VFB) : boolean
.enablefRVFB (Enable_finalRender_VFB) : boolean
.displayMessages (Display_Messages) : boolean
.saveLogToFile (Save_Log_To_File) : boolean
.logFilePath (Log_File_Path) : filename
.checkForMissingFiles (Check_for_Missing_Files) : boolean
.verboseLevel (Verbose_Level) : integer
.clearOptions (Clear_Options) : integer
.clearColor (Clear_Color) : RGB color
.channels : integer
.storage : integer
.useLowPriority (Use_Low_Priority_Threads) : boolean
.useMaterialOverwrite (Use_Material_Overwrite) : boolean
.overwriteMaterial (Overwrite_Material) : material
.useMappings (Use_Mappings) : boolean
.freeMapsAfterRender (Free_Maps_After_Render) : boolean
.useAutoRefl (Use_Auto_Reflect_Refract) : boolean
.useDefLights (Use_Default_Lights) : boolean
.renderHiddenLights (Render_Hidden_Lights) : boolean
.useShadows (Use_Shadows) : boolean
.enhanceBumpShadows (Enhance_Bump_Shadows) : boolean
.bumpShadowsFactor (Bump_Shadows_Amount) : percent
.useSSS (Use_Sub_Surface_Scattering) : boolean
.rollouts : integer
.lockGISky (Lock_GI___Skylight) : boolean
.irRecomputeGISamples (Reuse_and_Recompute_GI_Samples) : boolean
.rttPaddingWithAlpha (Padding_With_Alpha) : boolean
.useMultithreadedPreProcessing (Use_Multithreaded_Preprocessing) : boolean
.renderingCanceled (Rendering_Canceled) : boolean
.useReflections (Use_Reflections) : boolean
.useRefractions (Use_Refractions) : boolean
.useBlurry (Use_Blurry_Refl_Refr) : boolean
.reflectBounces (Reflection_Bounces) : integer
.refractBounces (Refraction_Bounces) : integer
.shadowBounces (Shadow_Bounces) : integer
.totalBounces (Total_Bounces) : integer
.useReflectColor (Use_Max__Reflection_Color) : boolean
.useRefractColor (Use_Max__Refraction_Color) : boolean
.reflectColor (Max__Reflection_Color) : RGB color
.refractColor (Max__Refraction_Color) : RGB color
.useReflectMap (Use_Max__Reflection_Map) : boolean
.useRefractMap (Use_Max__Refraction_Map) : boolean
.reflectMap (Max__Reflection_Map) : texturemap
.refractMap (Max__Refraction_Map) : texturemap
.rtDisableLocals (Disable_Raytrace_Locals) : boolean
.rayThreshold (Ray_Threshold) : percent
.shadeAtmospherics (Consider_Atmospherics) : boolean
.shadeScattering (Consider_Sub_Surface_Scattering) : boolean
.reflectEnvMode (Reflection_Environment_Mode) : integer
.reflectEnvColor (Reflection_Environment_Color) : RGB color
.reflectEnvMap (Reflection_Environment_Map) : texturemap
.refractEnvMode (Refraction_Environment_Mode) : integer
.refractEnvColor (Refraction_Environment_Color) : RGB color
.refractEnvMap (Refraction_Environment_Map) : texturemap
.totalIntReflections (Total_Internal_Reflections) : integer
.filterMapsFactor (RayTracing_Filter_Maps_Factor) : float
.atmosphereIOR (Atmosphere_IOR) : float
.optimizeAtmospherics (Optimize_Atmospherics) : boolean
.rayBias (Ray_Bias) : worldUnits
.clipTransFromGBuffer (Clip_Trans__From_GBuffer___RE) : boolean
.clipTransThreshold (Clip_Trans__Threshold) : percent
.geomSmpMode (Geometric_Sampling_Mode) : integer
.geomSmpMaxSamples (Geom_Smp__MaxSamples) : integer
.geomSmpRadius (Geom_Smp__Radius) : worldUnits
.geomSmpRepulsion (Geom_Smp__Repulsion) : percent
.geomSmpIterations (Geom_Smp__Iterations) : integer
.geomSmpShow (Show_Geometric_Samples) : boolean
.geomSmpReferenceFrame (Geometric_Samples_Reference_Frame) : time
.useSkyLight (Use_SkyLight) : boolean
.skyType (Sky_Type) : integer
.skyColorMultiplier (SkyLight_Multiplier) : float
.skyColor (SkyLight_Color) : RGB color
.useSkyMap (Use_SkyLight_Map) : boolean
.skyMap (SkyLight_Map) : texturemap
.skySamples (SkyLight_Samples) : integer
.useSkyTransparency (Use_Transparency) : boolean
.phySkyMultiplier (Physical_Sky_Multiplier) : float
.phySkyFilter (Physical_Sky_Filter) : RGB color
.phySkySaturation (Physical_Sky_Saturation) : float
.useSunlight (Sunlight_Enable) : boolean
.sunlightMultiplier (Sunlight_Multiplier) : float
.sunlightFilter (Physical_Sky_Sunlight_Filter) : RGB color
.sunlightSaturation (Physical_Sky_Sunlight_Saturation) : float
.phySkyShowInEnvironment (Show_Physical_Sky_in_Environment) : boolean
.phySkyEnvMultiplier (Physical_Sky_Env__Multiplier) : float
.phySkyEnvFilter (Physical_Sky_Env__Filter) : RGB color
.phySkyEnvSaturation (Physical_Sky_Env__Saturation) : float
.phySkyColorSpace (Phyical_Sky_Color_Space) : integer
.phySkyTurbidity (Turbidity) : float
.phySkyWater (Water) : float
.phySkyOzone (Ozone) : float
.phySkyHours (Hours) : integer
.phySkyMinutes (Minutes) : integer
.phySkySeconds (Seconds) : integer
.phySkyDay (Day) : integer
.phySkyMonth (Month) : integer
.phySkyYear (Year) : integer
.phySkyGMTOffset (GMT_Offset) : integer
.phySkyTimeOffset (Time_Offset) : float
.phySkyDaylightSavingTime (Daylight_Saving_Time) : boolean
.phySkyLongitude (Longitude) : float
.phySkyLatitude (Latitude) : float
.phySkyCompass (Compass) : node
.phySkySun (Sun_Node) : node
.phySkyGroundEnable (Use_Ground) : boolean
.phySkyGroundShift (Ground_Shift) : percent
.phySkyGroundBlur (Ground_Blur) : percent
.phySkyGroundColor (Ground_Color) : RGB color
.phySkyNightColor (Night_Color) : RGB color
.phySkyShadowAngle (Physical_Sky_Shadow_Angle) : angle
.phySkyShadowAngleOffset (Physical_Sky_Shadow_Angle_Offset) : angle
.phySkyShadowSamples (Physical_Sky_Shadow_Samples) : integer
.phySkyShadowBias (Physical_Sky_Shadow_Bias) : worldUnits
.phySkyenableVisibleSun (Enable_Visible_Sun) : boolean
.phySkyVisibleSunRadius (Visible_Sun_Radius) : worldUnits
.phySkyVisibleSunMultiplier (Visible_Sun_Multiplier) : float
.phySkyVisibleSunSharpness (Visible_Sun_Sharpness) : percent
.skyType (Sky_Type) : integer
.useSkyLight (Use_SkyLight) : boolean
.skyColorMultiplier (SkyLight_Multiplier) : float
.skyColor (SkyLight_Color) : RGB color
.useSkyMap (Use_SkyLight_Map) : boolean
.skyMap (SkyLight_Map) : texturemap
.skySamples (SkyLight_Samples) : integer
.useSkyTransparency (Use_Transparency) : boolean
.usePhysicalSky (Physical_Sky_Enable) : boolean
.useSunlight (Sunlight_Enable) : boolean
.showInEnvironment (Show_Physical_Sky_in_Environment) : boolean
.phySkyMultiplier (Physical_Sky_Multiplier) : float
.sunlightMultiplier (Sunlight_Multiplier) : float
.hours : integer
.minutes : integer
.seconds : integer
.day : integer
.month : integer
.year : integer
.GMTOffset (GMT_Offset) : integer
.timeOffset (Time_Offset) : float
.daylightSavingTime (Daylight_Saving_Time) : boolean
.longitude : float
.latitude : float
.turbidity : float
.water : float
.ozone : float
.compass : node
.giEnable (Enable_Global_Illumination) : boolean
.giBounces (Diffuse_Bounces) : integer
.giUseDiffuseColor (Use_Diffuse_Color) : boolean
.giDiffuseColor (Diffuse_Color) : RGB color
.giUseDiffuseMap (Use_Diffuse_Map) : boolean
.giDiffuseMap (Diffuse_Map) : texturemap
.giMultiplier (Multiplier) : float
.giSecMultiplier (Secondary_Multiplier) : float
.giEngine (Global_Illumination_Engine) : integer
.giEngineName (GI_Engine_Name) : string
.giEngineRef (GI_Engine_Reference) : maxObject
.giEngineSec (Secondary_Bounce_GI_Engine) : integer
.giEngineSecName (Secondary_Bounce_GI_Engine_Name) : string
.giEngineSecRef (Secondary_Bounce_GI_Engine_Reference) : maxObject
.giColorBleeding (Color_Bleeding) : percent
.giContrast (Contrast) : percent
.giContrastRange (Contrast_Range) : float
.giSaturation (Saturation) : percent
.giHdriAngle (HDRI_Cover_Angle) : angle
.giDowngradeThreshold (GI_Downgrade_Threshold) : percent
.giDowngradeColor (GI_Downgrade_Color) : RGB color
.giDisableLocals (Disable_Raytrace_Locals) : boolean
.giShadeBG (Consider_Background) : boolean
.giShadeAtmospheric (Consider_Atmospherics) : boolean
.giShade3S (Consider_Sub_Surface_Scattering) : boolean
.giRenderCaustics (Render_GI_Caustics) : boolean
.giShowDirectLight (Show_Direct_Lights_in_Prepass) : boolean
.aoEnable (Use_Global_Ambient_Occlusion) : boolean
.aoDiffuse (AO_Diffuse_Calculation) : boolean
.aoBlend (Global_Ambient_Occ__Blend) : percent
.aoSamples (Samples) : integer
.aoDistance (Max_Distance) : worldUnits
.aoLightShadowFalloffBlend (Light_Shadow_Falloff_Blend) : percent
.aoShadowDistance (Max__Distance__Shadow) : worldUnits
.aoLockDistances (Lock_Distances) : boolean
.aoSpace (Space) : integer
.aoScreenDistance (Screen_Distance) : percent
.aoScreenShadowDistance (Screen_Shadow_Distance) : percent
.aoDensity (Density) : integer
.aoShadowDensity (Shadow_Density) : integer
.giShowPrepass (Show_Prepass) : boolean
.giShowSamples (Show_Samples) : boolean
.giSampleColor1 (Samples_Color_1) : RGB color
.giSampleColor2 (Samples_Color_2) : RGB color
.giSolutionMode (Solution_Mode) : integer
.giSolutionReuse (Reuse_Solution) : boolean
.giSolutionLock (Lock_Solution) : boolean
.giPrepassOnly (Prepass_Only) : boolean
.giSolutionAnimationMode (Animation_Mode) : integer
.giUpdateSolution (Update_Solution) : boolean
.giSolutionInterpolationFrames (Animation_Interpolation_Frames) : integer
.giSolutionMultipleFiles (Solution_Mutiple_Files) : integer
.giSolutionAnimationPass (Animation_Pass__Prepass_Rendering) : integer
.giUseSolutionFile (Use_Solution_File) : boolean
.giSolutionFile (Solution_File) : filename
.useCaustics (Enable_Caustics) : boolean
.useVolumeCaustics (Enable_Volume_Caustics) : boolean
.useReflectCaustics (Enable_Reflection_Caustics) : boolean
.useRefractCaustics (Enable_Refraction_Caustics) : boolean
.csDisableLocals (Disable_Raytrace_Locals) : boolean
.causticMultiplier (Caustics_Multiplier) : float
.causticEngine (Caustics_Engine) : integer
.causticEngineName (Caustic_Engine_Name) : string
.csEngineRef (Caustics_Engine_Reference) : maxObject
.useDistributedRendering (Enable_Distributed_Rendering) : boolean
.distributeMaps (Distribute_Maps) : boolean
.isectEngine (Accelerator_Engine) : integer
.isectEngineName (Accelerator_Engine_Name) : string
.isectEngineRef (Accelerator_Engine_Reference) : maxObject
.isectVisualDebug (Visual_Debug) : boolean
.qmcAmount (Amount) : percent
.qmcMinSamples (Min__Samples) : integer
.qmcThreshold (Threshold) : percent
.qmcLockToScreen (Lock_To_Screen) : boolean
.qmcGlobalMultiplier (Global_Blurry_Multiplier) : float
.useMicroTriangleDisplacement (Enable) : boolean
.mtdMode (Mode) : integer
.mtdSubdivisionLevel (Subdivision_Level) : integer
.mtdHeight (Height) : worldUnits
.waterLevel (Water_Level) : float
.mtdViewDependend (View_Dependend) : boolean
.mtdEdgeLength (Edges_Length) : float
.mtdKeepEdges (Keep_Edges) : boolean
.mtdRoundGeometry (Round_Geometry) : boolean
.mtdViewClipping (View_Clipping) : boolean
.mtdMapGeometry (Map_Displaced_Geometry) : boolean
.mtdMaxCompatibleMesh (3dsmax_compatible_Mesh) : boolean
.mtdDisableLocals (Disable_Locals) : boolean
.mtdThreshold (Threshold) : percent
.mtdSmoothingMethod (Use_Smoothing_Angle) : integer
.mtdSmoothingAngle (Smoothing_Angle) : angle
.mtdCameraDistanceExponent (Camera_Distance_Exponent) : float
.useInformationStamp (Use_Information_Stamp) : boolean
.useHeader (Use_Header) : boolean
.header : string
.useFooter (Use_Footer) : boolean
.footer : string
.transparency : percent
.blurriness : percent
.useDOF (Use_DOF) : boolean
.shutterSize (Aperture) : worldUnits
.lensType (Lens_Type) : integer
.lensAngle (Lens_Angle) : angle
.dofSamples (DOF_Max_Samples) : integer
.useCameraDistance (Use_Camera_Target) : boolean
.dofTargetDistance (Target_Distance) : worldUnits
.dofUseTint (Use_Tint) : boolean
.dofTintFrontColor (Tint_Front_Color) : maxObject
.dofTintBackColor (Tint_Back_Color) : maxObject
.colorMapUse (Use_Color_Mapping) : boolean
.colorMapType (Color_Mapping_Type) : integer
.darkMultiplier (Dark_Multiplier) : float
.brightMultiplier (Bright_Multiplier) : float
.colorMapAffectBackground (Affect_Background) : boolean
.useMotionBlur (Use_Motion_Blur) : boolean
.useObjMotionBlur (Use_Object_MotionBlur) : boolean
.useCameraMotionBlur (Use_Camera_Motion_Blur) : boolean
.useOMblurTrails (Use_Obj_MotioBlur_Trails) : boolean
.mBlurDuration (Obj_MotionBlur_Duration) : float
.mBlurPhase (Obj_MotionBlur_Phase) : percent
.mBlurMeshSamples (Obj_MotionBlur_Mesh_Samples) : integer
.mBlurSamples (Obj_MotionBlur_Max_Samples) : integer
.mBlurTMSampling (TM_Sampling) : percent
.mBlurForceTweenMode (Force_Tween_Mode) : boolean
.mBlurApplyToMtls (Apply_to_Materials) : boolean
.mBlurCameryOnly (Motion_Blur_for_Camera_Only) : boolean
.mBlurForceAtmosphere (Force_Atmosphere_Motion_Blur) : boolean
.cameraNumber (Camera_Number) : integer
.cameraName (Camera_Name) : string
.cameraRef (Camera_Reference) : maxObject
.textureMode (Texture_Pager_Mode) : integer
.textureMemory (Texture_Memory) : integer
.textureBlockSize (Texture_Bucket_Size) : integer
.texturePath (Texture_Pagefile_Path) : string
.gbufferMode (Texture_Pager_Mode) : integer
.textureMemory (Texture_Memory) : integer
.textureBlockSize (Texture_Bucket_Size) : integer
.texturePath (Texture_Pagefile_Path) : string
.rePassesEnable (Enable_Render_Element_Passes) : boolean
.rePassesRenderIncludedOnly (Render_Included_Objects_Only) : boolean
.rePassesRenderMainBeauty (Render_Main_Beauty) : boolean
.rePassesForceAllForSmp (Use_All_Objects_For_Sampling) : boolean

Please let me know if i can do anything more.

Thank you!

colinsenner's picture

Do me a small favor. I want

Do me a small favor. I want to see how final render handles these properties as vray might do them slightly differently.

In max, open the vray listener (MAXScript-> MAXScript Listener).

Select an object and in the listener window type

getUserPropBuffer $

and hit Shift+Enter and post the output here please.

Thanks!

igamaximus's picture

Much appreciated Colin, thanks a lot.

Yes, that would be great, it's fully your choice.
For example, there could be 2 main checkboxes (3 in total), like "copy object parameters" and "copy object properties" (with subcheckbox named "include custom render props").
Or maybe, to reduce UI size, it could be toggle button with these 2 states (i am not sure if this is possible), and just to add 1 checkbox near it named "include custom render props"
It's really up to you, and i will test all functions as much as i can and report in details.

Thank you!

colinsenner's picture

I'll be more than happy to

I'll be more than happy to write this in once I can find some time. The render properties are the easier bit of this :). I can see if I can find the time.

I'm planning on adding another button for pasting properties like "Paste Custom Renderer Properties" so users can use the current script as they always have been. Will this be appropriate?

igamaximus's picture

Thank you so much Colin.

There is no other tool that allows copying and pasting object properties from one object to another, i was looking for tool like this for a long time. Especially the one that supports 3rd party render engine properties.
Please let me know if i can help you by any means by testing anything needed in finalRender.

Thank you!

colinsenner's picture

Thanks for the comments. I

Thanks for the comments. I looked into your suggestion about visible to camera etc. and it's doable, but I'll need a little bit of time to do it. Custom renderer object properties is pretty easy too. I can look into this. Is there no other solution for those two requests? I would have thought someone would have written that already, but I'll do it if it's needed.

-Colin

igamaximus's picture

Great tool!

Colin this is very good script thank you for your work.
What would be important addition in my opinion is if copying/pasting could include object propertis from right click meny (visible to reflection/refraction, visible to camera, send shadows, ...etc). Is there any way to make these properties work within this script?
Also, some 3rd party renderers like finalRender will add specific object properties to any object in additional tab. If these object properties could be included the script really would be perfect!

Thank you!

PS. In this phase, I think it would be more precise to rename the script to "copy and paste object parameters". Because real object properties are located in right click object properties meny.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.