ScriptSpot

Script

Copy/Paste Object Properties

By colinsenner · Credited author: Colin Senner · 2014-01-21

Version
1.02
Version requirement
Max 9+
Date updated
2014-01-21
Votes
5
Description

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.

Attachments
Comments (22)

Error

dmitrybelonosov · 2021-02-23

Hello! Works well once. Next, the script returns an error. Says that the file is tempProperties.txt could not be created. Is there a solution?

https://recordit.co/WH75Uc8O2B

Attachments

MyGalaxy · 2021-01-11

It is a pity that the script does not support animated properties

include/exclude doesn't pop up

appius · 2020-10-23

I can't get it work fine.
include/exclude doesn't pop up, i can only paste all. (between 2 vray phys cam)

Amazing

borzacch · 2017-07-01

Thank you, bro!

mrkevinht · 2014-08-05

nice script, thanks

Curves

kirillall · 2014-04-12

Hi Colin. Very useful script. thank you. I`m trying to copy paste easy curve from one alembic controller to another in other file. It gave me error. Is script working with curves?

colinsenner · 2014-04-12

I have never tried it. Can you tell me how to reproduce the error and I'll fix it? Thanks

Situation:

kirillall · 2014-04-14

One max 2014 scene: on AlembicTimeControl object in curve editor i assign easy curve to "current" - make some changes in curve, Copy props via script - then 2 ways i try:
In other parralel max 2014 scene at same AlembicTimeControl object,
- try to paste via script - popup error.
- on same object in curve editor i create easy curve with out any modification, then close it and paste via script - pop up error.

Great script!

harumscarum · 2014-01-23

I'll check it but is it allows to copy camera settings with camera and its target positions? would be very helpful to add new frame to animated camera from camera in scene

colinsenner · 2014-01-23

It does not change any position information just all of the camera parameters (or any object's parameters, lights, etc).

Great tool!

igamaximus · 2014-01-22

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.

colinsenner · 2014-01-22

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

Thank you so much Colin.

igamaximus · 2014-01-22

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 · 2014-01-22

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?

Much appreciated Colin, thanks a lot.

igamaximus · 2014-01-22

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 · 2014-01-22

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!

with pleasure Collin, please take a look

igamaximus · 2014-01-22

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!

But these are not object properties from right click meny.

igamaximus · 2014-01-22

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!

Updated

colinsenner · 2014-01-23

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.

Colin, thank you very much!

igamaximus · 2014-01-23

You are right, it is the same in finalRender as you have described the process in Vray. So, selecting 1 or more objects...right click...object properties...finalRender properties tab...checking/unchecking checkboxes. :)
In that sense if there is general method for you to do that, i believe what will work with Vray will work for fR too, i will test it deeply and let you know.

Many thanks!

Great work on adding object properties!

igamaximus · 2014-01-23

All checkboxes apart form motion blur section are working perfectly, great job Colin. Motion blur enable checkbox, multiplier and radio buttons are not working but i think this is not important at all. If renderer properties could work in future that would be so so useful and great.

Thanks a lot!

colinsenner · 2014-01-23

yeah I noticed that too. I couldn't figure out why they don't work at all. I'll just remove the motion blur stuff for the moment.