コード例 #1
0
        private static Material GetWpfMaterial(Xbim.Common.IModel model, int styleId)
        {
            var sStyle      = model.Instances[styleId] as IIfcSurfaceStyle;
            var wpfMaterial = new WpfMaterial();

            if (sStyle != null)
            {
                XbimTexture texture = XbimTexture.Create(sStyle);
                texture.DefinedObjectId = styleId;
                wpfMaterial.CreateMaterial(texture);

                return(wpfMaterial);
            }
            MaterialDictionary defaultMaterial = ModelDataProvider.DefaultMaterials;

            Material material;

            if (defaultMaterial.TryGetValue(model.GetType().Name, out material))
            {
                return(material);
            }
            var color = new XbimColour("black", 1, 1, 1);

            wpfMaterial.CreateMaterial(color);
            return(wpfMaterial);
        }
コード例 #2
0
        public static XbimMaterialProvider GetDefaultMaterial(string typeName)
        {
            Material mat;
            IfcType  elemType = IfcMetaData.IfcType(typeName.ToUpperInvariant());

            while (elemType != null)
            {
                if (_defaultMaterials.TryGetValue(elemType.Type.Name, out mat))
                {
                    return(new XbimMaterialProvider(mat));
                }
                elemType = elemType.IfcSuperType;
            }
            return(null);
        }
コード例 #3
0
        public static XbimMaterialProvider GetDefaultMaterial(IModel model, string typeName)
        {
            Material mat;
            var      elemType = model.Metadata.ExpressType(typeName);

            while (elemType != null)
            {
                if (_defaultMaterials.TryGetValue(elemType.Type.Name, out mat))
                {
                    return(new XbimMaterialProvider(mat));
                }
                elemType = elemType.SuperType;
            }
            return(null);
        }