Ejemplo n.º 1
0
        private static IfcStyledItem ToIfcStyledItem(this Material material, IfcRepresentationItem shape, Document doc)
        {
            var color   = material.Color.ToIfcColourRgb(doc);
            var shading = new IfcSurfaceStyleShading(color);

            var styles = new List <IfcSurfaceStyleElementSelect> {
            };

            styles.Add(new IfcSurfaceStyleElementSelect(shading));
            var surfaceStyle = new IfcSurfaceStyle(material.Name, IfcSurfaceSide.POSITIVE, styles);
            var styleSelect  = new IfcPresentationStyleSelect(surfaceStyle);
            var assign       = new IfcPresentationStyleAssignment(new List <IfcPresentationStyleSelect> {
                styleSelect
            });
            var assignments = new List <IfcPresentationStyleAssignment>();

            assignments.Add(assign);
            var styledByItem = new IfcStyledItem(shape, assignments, material.Name);

            doc.AddEntity(color);
            doc.AddEntity(shading);
            doc.AddEntity(surfaceStyle);
            doc.AddEntity(styleSelect);
            doc.AddEntity(assign);

            return(styledByItem);
        }
Ejemplo n.º 2
0
        private static Boolean tryGetColorFromIfcRepresentationItem(IfcRepresentationItem reprItem, out Color color)
        {
            color = Color.Black;
            try
            {
                if (reprItem.mStyledByItem != null)
                {
                    IfcStyledItem ifcStyledItem = reprItem.mStyledByItem;

                    IfcPresentationStyleAssignment sas = (IfcPresentationStyleAssignment)ifcStyledItem.Styles[0];

                    IfcSurfaceStyle ss = (IfcSurfaceStyle)sas.Styles[0];

                    IfcSurfaceStyleRendering ssr = (IfcSurfaceStyleRendering)ss.Styles[0];

                    int alpha = Convert.ToInt32((1 - ssr.Transparency) * 255);

                    color = Color.FromArgb(alpha, ssr.SurfaceColour.Colour);

                    return(true);
                }
            }
            catch (Exception e)
            {
                //debug += e.Message + "\n";
            }
            return(false);
        }
 /// <summary>
 ///   returns the surfacestyle associated with this PresentationStyleAssignment, null if no sufacestyle is defined
 /// </summary>
 /// <param name = "style"></param>
 /// <returns></returns>
 public static IfcSurfaceStyle GetSurfaceStyle(this IfcPresentationStyleAssignment style)
 {
     return(style.Styles.OfType <IfcSurfaceStyle>().FirstOrDefault());
 }