Esempio n. 1
0
        internal static Column ToColumn(this IfcColumn column)
        {
            var elementTransform = column.ObjectPlacement.ToTransform();

            var solid = column.RepresentationsOfType <IfcExtrudedAreaSolid>().FirstOrDefault();

            foreach (var cis in column.ContainedInStructure)
            {
                cis.RelatingStructure.ObjectPlacement.ToTransform().Concatenate(elementTransform);
            }

            if (solid != null)
            {
                var solidTransform = solid.Position.ToTransform();
                var c      = solid.SweptArea.ToCurve();
                var result = new Column(solidTransform.Origin,
                                        (IfcLengthMeasure)solid.Depth,
                                        new Profile((Polygon)c),
                                        BuiltInMaterials.Steel,
                                        elementTransform,
                                        0.0,
                                        0.0,
                                        0.0,
                                        false,
                                        IfcGuid.FromIfcGUID(column.GlobalId),
                                        column.Name);
                return(result);
            }
            return(null);
        }
Esempio n. 2
0
        /// <summary>
        /// Convert an IfcColumn to a Column.
        /// </summary>
        /// <param name="column"></param>
        private static Column ToColumn(this IfcColumn column)
        {
            var elementTransform = column.ObjectPlacement.ToTransform();

            var solid = column.RepresentationsOfType <IfcExtrudedAreaSolid>().FirstOrDefault();

            foreach (var cis in column.ContainedInStructure)
            {
                cis.RelatingStructure.ObjectPlacement.ToTransform().Concatenate(elementTransform);
            }

            if (solid != null)
            {
                var solidTransform = solid.Position.ToTransform();
                var c           = solid.SweptArea.ToICurve();
                var framingType = new StructuralFramingType(Guid.NewGuid().ToString(), new Profile((Polygon)c), BuiltInMaterials.Steel);
                var result      = new Column(solidTransform.Origin, (IfcLengthMeasure)solid.Depth, framingType, elementTransform, 0.0, 0.0);
                result.Name = column.Name;
                return(result);
            }
            return(null);
        }