# src/IFCObjectDefaults/ViewerIFCObjectColors.js

    /**
     * @desc Default initial properties for {@link Entity}s loaded from models accompanied by metadata.
     *
     * When loading a model, a loader plugins such as {@link GLTFLoaderPlugin} and {@link BIMServerLoaderPlugin} create
     * a tree of {@link Entity}s that represent the model. These loaders can optionally load metadata, to create
     * a {@link MetaModel} corresponding to the root {@link Entity}, with a {@link MetaObject} corresponding to each
     * object {@link Entity} within the tree.
     *
     * @private
     * @type {{String:Object}}
     */
    const ViewerIFCObjectColors = {

        // Priority 0

        IfcRoof: {
            colorize: [0.837255, 0.203922, 0.270588],
            priority: 0
        },
        IfcSlab: {
            colorize: [0.637255, 0.603922, 0.670588],
            priority: 0
        },
        IfcWall: {
            colorize: [0.537255, 0.337255, 0.237255],
            priority: 0
        },
        IfcWallStandardCase: {
            colorize: [0.537255, 0.337255, 0.237255],
            priority: 0
        },
        IfcCovering: {
            colorize: [0.8470588235, 0.427450980392, 0],
            priority: 0
        },

        // Priority 1

        IfcDoor: {
            colorize: [0.637255, 0.603922, 0.670588],
            priority: 1
        },

        // Priority 2

        IfcStair: {
            colorize: [0.637255, 0.603922, 0.670588],
            priority: 2
        },
        IfcStairFlight: {
            colorize: [0.637255, 0.603922, 0.670588],
            priority: 2
        },
        IfcProxy: {
            colorize: [0.137255, 0.403922, 0.870588],
            priority: 2
        },
        IfcRamp: {
            colorize: [0.8470588235, 0.427450980392, 0],
            priority: 2
        },

        // Priority 3

        IfcColumn: {
            colorize: [0.137255, 0.403922, 0.870588],
            priority: 3
        },
        IfcBeam: {
            colorize: [0.137255, 0.403922, 0.870588],
            priority: 3
        },
        IfcCurtainWall: {
            colorize: [0.137255, 0.403922, 0.870588],
            priority: 3
        },
        IfcPlate: {
            colorize: [0.8470588235, 0.427450980392, 0, 0.5],
            opacity: 0.5,
            priority: 3
        },
        IfcTransportElement: {
            colorize: [0.8470588235, 0.427450980392, 0],
            priority: 3
        },
        IfcFooting: {
            colorize: [0.8470588235, 0.427450980392, 0],
            priority: 3
        },

        // Priority 4

        IfcRailing: {
            colorize: [0.137255, 0.403922, 0.870588],
            priority: 4
        },
        IfcFurnishingElement: {
            colorize: [0.137255, 0.403922, 0.870588],
            priority: 4
        },
        IfcFurniture: {
            colorize: [0.8470588235, 0.427450980392, 0],
            priority: 4
        },
        IfcSystemFurnitureElement: {
            colorize: [0.8470588235, 0.427450980392, 0],
            priority: 4
        },

        // Priority 5

        IfcFlowSegment: {
            colorize: [0.137255, 0.403922, 0.870588],
            priority: 5
        },
        IfcFlowitting: {
            colorize: [0.137255, 0.403922, 0.870588],
            priority: 5
        },
        IfcFlowTerminal: {
            colorize: [0.137255, 0.403922, 0.870588],
            priority: 5
        },
        IfcFlowController: {
            colorize: [0.8470588235, 0.427450980392, 0],
            priority: 5
        },
        IfcFlowFitting: {
            colorize: [0.8470588235, 0.427450980392, 0],
            priority: 5
        },
        IfcDuctSegment: {
            colorize: [0.8470588235, 0.427450980392, 0],
            priority: 5
        },
        IfcDistributionFlowElement: {
            colorize: [0.8470588235, 0.427450980392, 0],
            priority: 5
        },
        IfcDuctFitting: {
            colorize: [0.8470588235, 0.427450980392, 0],
            priority: 5
        },
        IfcLightFixture: {
            colorize: [0.8470588235, 0.8470588235, 0.870588],
            priority: 5
        },

        // Priority 6

        IfcAirTerminal: {
            colorize: [0.8470588235, 0.427450980392, 0],
            priority: 6
        },

        IfcOpeningElement: {
            colorize: [0.137255, 0.403922, 0.870588],
            opacity: 0.3,
            priority: 6
        },
        IfcSpace: {
            opacity: 0.5
        },

        IfcWindow: {
            colorize: [0.137255, 0.403922, 0.870588],
            opacity: 0.4,
            priority: 6 // FIXME: transparent objects need to be last in order to avoid strange wireframe effect
        },

        //

        IfcBuildingElementProxy: {
            colorize: [0.5, 0.5, 0.5]
        },

        IfcSite: {
            colorize: [0.137255, 0.403922, 0.870588]
        },

        IfcMember: {
            colorize: [0.8470588235, 0.427450980392, 0]
        },

        DEFAULT: {
            colorize: [0.5, 0.5, 0.5],
            priority: 10
        }
    };

    export {ViewerIFCObjectColors}