コード例 #1
0
ファイル: IfcProject.cs プロジェクト: 15831944/CADTo3D-1
        public void InitProject(linearUnitsType units)
        {
            var model = Model;

            if (units == ProjectUnits.SIUnitsUK)
            {
                var ua = model.Instances.New <IfcUnitAssignment>();
                ua.Units.Add(model.Instances.New <IfcSIUnit>(s =>
                {
                    s.UnitType = IfcUnitEnum.LENGTHUNIT;
                    s.Name     = IfcSIUnitName.METRE;
                    s.Prefix   = IfcSIPrefix.MILLI;
                }));
                ua.Units.Add(model.Instances.New <IfcSIUnit>(s =>
                {
                    s.UnitType = IfcUnitEnum.AREAUNIT;
                    s.Name     = IfcSIUnitName.SQUARE_METRE;
                }));
                ua.Units.Add(model.Instances.New <IfcSIUnit>(s =>
                {
                    s.UnitType = IfcUnitEnum.VOLUMEUNIT;
                    s.Name     = IfcSIUnitName.CUBIC_METRE;
                }));
                ua.Units.Add(model.Instances.New <IfcSIUnit>(s =>
                {
                    s.UnitType = IfcUnitEnum.SOLIDANGLEUNIT;
                    s.Name     = IfcSIUnitName.STERADIAN;
                }));
                ua.Units.Add(model.Instances.New <IfcSIUnit>(s =>
                {
                    s.UnitType = IfcUnitEnum.PLANEANGLEUNIT;
                    s.Name     = IfcSIUnitName.RADIAN;
                }));
                ua.Units.Add(model.Instances.New <IfcSIUnit>(s =>
                {
                    s.UnitType = IfcUnitEnum.MASSUNIT;
                    s.Name     = IfcSIUnitName.GRAM;
                }));
                ua.Units.Add(model.Instances.New <IfcSIUnit>(s =>
                {
                    s.UnitType = IfcUnitEnum.TIMEUNIT;
                    s.Name     = IfcSIUnitName.SECOND;
                }));
                ua.Units.Add(model.Instances.New <IfcSIUnit>(s =>
                {
                    s.UnitType =
                        IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT;
                    s.Name = IfcSIUnitName.DEGREE_CELSIUS;
                }));
                ua.Units.Add(model.Instances.New <IfcSIUnit>(s =>
                {
                    s.UnitType = IfcUnitEnum.LUMINOUSINTENSITYUNIT;
                    s.Name     = IfcSIUnitName.LUMEN;
                }));
                UnitsInContext = ua;
            }
        }
コード例 #2
0
        /// <summary>
        /// Create a new sheet with some default views according to the format type.
        /// </summary>
        /// <param name="name">The name for the sheet.</param>
        /// <param name="units">The measurement system type for the sheet.</param>
        /// <param name="formatType">The <see cref="formatType"/>.</param>
        /// <remarks>
        /// It builds the format block and it adds the created BlockReference to the Sheet and the block to the Drawings Blocks collection.
        /// </remarks>
        public void AddSheet(string name, linearUnitsType units, formatType formatType, bool addDefaultView = true)
        {
            Tuple <double, double> size = DrawingsPanel.GetFormatSize(units, formatType);
            Sheet sheet = new Sheet(units, size.Item1, size.Item2, name);

            Block          block;
            BlockReference br = drawingsPanel1.CreateFormatBlock(formatType, sheet, out block);

            drawings1.Blocks.Add(block);

            sheet.Entities.Add(br);  // not possible adding the entity to Drawings because the control handle is not created yet. it will be added when this sheet will be set as the active one.
            drawings1.Sheets.Add(sheet);

            // adds a set of default views.
            if (addDefaultView)
            {
                AddDefaultViews(sheet);
            }
        }
コード例 #3
0
ファイル: IFCExtensions.cs プロジェクト: 15831944/CADTo3D-1
        public static void InitProject(this IfcProject project, linearUnitsType units)
        {
            var model = project.Model;

            var ua = model.Instances.New <IfcUnitAssignment>();

            ua.Units.Add(model.Instances.New <IfcSIUnit>(s =>
            {
                s.UnitType = IfcUnitEnum.LENGTHUNIT;
                s.Name     = IfcSIUnitName.METRE;
                if (units == linearUnitsType.Millimeters)
                {
                    s.Prefix = IfcSIPrefix.MILLI;
                }
            }));
            ua.Units.Add(model.Instances.New <IfcSIUnit>(s =>
            {
                s.UnitType = IfcUnitEnum.AREAUNIT;
                s.Name     = IfcSIUnitName.SQUARE_METRE;
            }));
            ua.Units.Add(model.Instances.New <IfcSIUnit>(s =>
            {
                s.UnitType = IfcUnitEnum.VOLUMEUNIT;
                s.Name     = IfcSIUnitName.CUBIC_METRE;
            }));
            ua.Units.Add(model.Instances.New <IfcSIUnit>(s =>
            {
                s.UnitType = IfcUnitEnum.SOLIDANGLEUNIT;
                s.Name     = IfcSIUnitName.STERADIAN;
            }));
            ua.Units.Add(model.Instances.New <IfcSIUnit>(s =>
            {
                s.UnitType = IfcUnitEnum.PLANEANGLEUNIT;
                s.Name     = IfcSIUnitName.RADIAN;
            }));
            ua.Units.Add(model.Instances.New <IfcSIUnit>(s =>
            {
                s.UnitType = IfcUnitEnum.MASSUNIT;
                s.Name     = IfcSIUnitName.GRAM;
            }));
            ua.Units.Add(model.Instances.New <IfcSIUnit>(s =>
            {
                s.UnitType = IfcUnitEnum.TIMEUNIT;
                s.Name     = IfcSIUnitName.SECOND;
            }));
            ua.Units.Add(model.Instances.New <IfcSIUnit>(s =>
            {
                s.UnitType =
                    IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT;
                s.Name = IfcSIUnitName.DEGREE_CELSIUS;
            }));
            ua.Units.Add(model.Instances.New <IfcSIUnit>(s =>
            {
                s.UnitType = IfcUnitEnum.LUMINOUSINTENSITYUNIT;
                s.Name     = IfcSIUnitName.LUMEN;
            }));
            project.UnitsInContext = ua;


            if (project.ModelContext == null)
            {
                var origin = model.Instances.New <IfcCartesianPoint>(p => p.SetXYZ(0, 0, 0));
                var axis3D = model.Instances.New <IfcAxis2Placement3D>(a => a.Location = origin);
                var gc     = model.Instances.New <IfcGeometricRepresentationContext>(c =>
                {
                    c.
                    ContextType
                        =
                            "Model";
                    c.
                    ContextIdentifier
                        =
                            "Building Model";
                    c.
                    CoordinateSpaceDimension
                        = 3;
                    c.Precision
                        =
                            0.00001;
                    c.
                    WorldCoordinateSystem
                        = axis3D;
                }
                                                                                     );
                project.RepresentationContexts.Add(gc);

                var origin2D = model.Instances.New <IfcCartesianPoint>(p => p.SetXY(0, 0));
                var axis2D   = model.Instances.New <IfcAxis2Placement2D>(a => a.Location = origin2D);
                var pc       = model.Instances.New <IfcGeometricRepresentationContext>(c =>
                {
                    c.
                    ContextType
                        =
                            "Plan";
                    c.
                    ContextIdentifier
                        =
                            "Building Plan View";
                    c.
                    CoordinateSpaceDimension
                        = 2;
                    c.Precision
                        =
                            0.00001;
                    c.
                    WorldCoordinateSystem
                        = axis2D;
                }
                                                                                       );
                project.RepresentationContexts.Add(pc);
            }
        }