Material
Setting name for a Material
Section titled “Setting name for a Material”let model = await SketchUpApi.getActiveModel();await model.performOperation(async operation => { const materialRef = operation.createMaterial('Some Material'); let material = await operation.entityForRef(materialRef); console.log('Before name', material.name); operation.materialSetName(material, 'Some new Material'); material = await material.refresh(); console.log('After name', material.name);}, 'Setting name for a material');Setting color for a Material
Section titled “Setting color for a Material”let model = await SketchUpApi.getActiveModel();await model.performOperation(async operation => { const materialRef = operation.createMaterial('Some Material'); let material = await operation.entityForRef(materialRef); console.log('Before color', material.color); operation.materialSetColor(material, new SketchUpApi.Color(32, 16, 8, 4)); material = await material.refresh(); console.log('After color', material.color);}, 'Setting color for a material');Setting alpha for a Material
Section titled “Setting alpha for a Material”let model = await SketchUpApi.getActiveModel();await model.performOperation(async operation => { const materialRef = operation.createMaterial('Some Material'); let material = await operation.entityForRef(materialRef); console.log('Before alpha', material.alpha); operation.materialSetAlpha(material, 0.6); material = await material.refresh(); console.log('After alpha', material.alpha);}, 'Setting Alpha for a material');Setting a 32 image rep for a Material
Section titled “Setting a 32 image rep for a Material”let model = await SketchUpApi.getActiveModel();await model.performOperation(async operation => { const materialRef = operation.createMaterial('Some Material'); operation.materialSetTextureImageRep(materialRef, {width:1, height:1, bitsPerPixel:32, rowPadding:0, imageData:'\x01\x02\x03\x04'}); let material = await operation.entityForRef(materialRef); console.log(JSON.parse(JSON.stringify(material.color)));}, 'Setting a 32 image rep for a material');Setting a texture using base64 encoded jpeg for a Material
Section titled “Setting a texture using base64 encoded jpeg for a Material”let model = await SketchUpApi.getActiveModel();let jpeg = '/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAACAAIDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAj/xAAdEAABBAIDAAAAAAAAAAAAAAABAAIGBwQFISNj/8QAFAEBAAAAAAAAAAAAAAAAAAAACP/EABwRAAEDBQAAAAAAAAAAAAAAAAABAgQFMjVzsv/aAAwDAQACEQMRAD8AtmA0dSjoLHHOp+EknU4ZJMfxOelvmiIjk+5RRUPFxtbOUP/Z';await model.performOperation(async operation => { const materialRef = operation.createMaterial('Material with base64 encoded jpeg'); operation.materialSetTextureDataBase64(materialRef, jpeg); const material = await operation.entityForRef(materialRef); console.log(material.color);}, 'Setting a texture using base64 encoded jpeg');Setting a texture from an Image element for a Material
Section titled “Setting a texture from an Image element for a Material”let model = await SketchUpApi.getActiveModel();let image = new Image(1, 1);image.src = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAACAAIDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAj/xAAdEAABBAIDAAAAAAAAAAAAAAABAAIGBwQFISNj/8QAFAEBAAAAAAAAAAAAAAAAAAAACP/EABwRAAEDBQAAAAAAAAAAAAAAAAABAgQFMjVzsv/aAAwDAQACEQMRAD8AtmA0dSjoLHHOp+EknU4ZJMfxOelvmiIjk+5RRUPFxtbOUP/Z';await new Promise((resolve, reject) => { image.onload = resolve; image.onabort = reject;});await model.performOperation(async operation => { const materialRef = operation.createMaterial('Material with texture from an Image element'); operation.materialSetTextureFromHtmlImage(materialRef, image, 'image/jpeg'); const material = await operation.entityForRef(materialRef); console.log(material.color);}, 'Setting a texture using an Image element');Exporting Material
Section titled “Exporting Material”let model = await SketchUpApi.getActiveModel();let materials = await model.getMaterials();let material = materials.values.find((mat) => mat.texture !== undefined);if (material === undefined) { throw new Error('No material with texture in the model');}let skmDataUrl = await material.getSkm();console.log(skmDataUrl.length);Exporting Texture Data
Section titled “Exporting Texture Data”let model = await SketchUpApi.getActiveModel();let materials = await model.getMaterials();let material = materials.values.find((mat) => mat.texture !== undefined);if (material === undefined) { throw new Error('No material with texture in the model');}
let textureDataUrl = await material.texture.getImage('png', {colorize: true});window.open(textureDataUrl, '_blank', 'noopener');Exporting a Material Thumbnail
Section titled “Exporting a Material Thumbnail”let model = await SketchUpApi.getActiveModel();let material = (await model.getMaterials()).values[0];let thumbnailDataUrl = await material.exportThumbnail('png', {maxSize: 64});window.open(thumbnailDataUrl, '_blank', 'noopener');