Hi @ktheorin1, thanks for reaching out us and welcome to the Forum.
To find all the assets in a given scene you can use the BaseDocument::GetAllAssetsNew() which returns you a list of dictionaries with all the assets contained in a document.
The example below retrieves all the textures in the active document and append the string "_replaced" at the end of it
def main():
textures = list()
# execute the GetAllAssetsNew for the current document
c4d.documents.GetAllAssetsNew(doc, False, "", c4d.ASSETDATA_FLAG_TEXTURESONLY, textures)
for t in textures:
textureOwner = t["owner"]
textureURL = maxon.Url(t["filename"])
# get the texture suffix
textureSuffix = textureURL.GetSuffix()
# remove the suffix from the URL
textureURL.ClearSuffix()
# replace the name by adding the word "_replaced"
textureURL.SetName(textureURL.GetName() + "_replaced")
# set again the suffix to the URL
textureURL.SetSuffix(textureSuffix)
#update the textureOwner parameter
textureOwner[c4d.BITMAPSHADER_FILENAME] = textureURL.GetSystemPath()
# notify Cinema about the changes
c4d.EventAdd()
It's also worthy having a look at the maxon::Url to handy manage the path of the retrieved textures.
Cheers, R