Beispiel #1
0
        public JsonSiteIfcElement(IfcSite site, JsonProjectIfcElement parent, JsonConversionContext context) : base(site)
        {
            userData.projectId = parent?.id;

            if (site.RefLatitude != null && !userData.pset.ContainsKey("RefLatitude"))
            {
                userData.pset.Add("RefLatitude", site.RefLatitude.ToSTEP().ToString());
            }

            if (site.RefLongitude != null && !userData.pset.ContainsKey("RefLongitude"))
            {
                userData.pset.Add("RefLongitude", site.RefLongitude.ToSTEP().ToString());
            }

            if (site.RefElevation != 0 && !userData.pset.ContainsKey("RefElevation"))
            {
                userData.pset.Add("RefElevation", Convert.ToString(site.RefElevation));
            }

            // Extract Pset
            try
            {
                site.ExtractPset(this);
            }
            catch (Exception ex)
            {
                Console.WriteLine("4. Site pset error : " + ex.Message);
            }

            // Add Matrix
            var sObjectPlacements = site.ObjectPlacement.Extract <IfcObjectPlacement>();
            var sLocalPlacements  = sObjectPlacements[0].Extract <IfcLocalPlacement>();
            var sPos = sLocalPlacements[0].RelativePlacement as IfcAxis2Placement3D;

            if (sPos.Location != null)
            {
                userData.location = sPos.Location.Coordinates[0] / context.SCALE + "," + sPos.Location.Coordinates[1] / context.SCALE + "," + sPos.Location.Coordinates[2] / context.SCALE;
            }
            if (sPos.RefDirection != null)
            {
                userData.refDirection = sPos.RefDirection.DirectionRatios[0] + "," + sPos.RefDirection.DirectionRatios[1] + "," + sPos.RefDirection.DirectionRatios[2];
            }
            if (sPos.Axis != null)
            {
                userData.axis = sPos.Axis.DirectionRatios[0] + "," + sPos.Axis.DirectionRatios[1] + "," + sPos.Axis.DirectionRatios[2];
            }
        }
        public JsonBuildingElementProxyIfcElement(IfcBuildingElementProxy buildingElementProxy, JsonStoreyIfcElement parent, JsonConversionContext context) : base(buildingElementProxy)
        {
            userData.buildingStorey = new string[] { };
            userData.siteId         = parent.userData?.siteId;
            userData.projectId      = parent.userData?.projectId;
            userData.buildingId     = parent.userData?.buildingId;

            // Environnement element
            userData.buildingStorey = new[] { parent.id };

            if (buildingElementProxy.Tag != null)
            {
                userData.tag = buildingElementProxy.Tag;
            }

            // Extract pset
            buildingElementProxy.ExtractPset(this);
        }
Beispiel #3
0
        public JsonBuildingIfcElement(IfcBuilding building, JsonSiteIfcElement parent, JsonConversionContext context) : base(building)
        {
            userData.siteId    = parent.userData?.siteId;
            userData.projectId = parent.userData?.projectId;

            // Add Matrix
            var bObjectPlacements = building.ObjectPlacement.Extract <IfcObjectPlacement>();
            var bLocalPlacements  = bObjectPlacements[0].Extract <IfcLocalPlacement>();
            var bPos = bLocalPlacements[0].RelativePlacement as IfcAxis2Placement3D;

            if (bPos.Location != null)
            {
                userData.location = bPos.Location.Coordinates[0] / context.SCALE + "," + bPos.Location.Coordinates[1] / context.SCALE + "," + bPos.Location.Coordinates[2] / context.SCALE;
            }
            if (bPos.RefDirection != null)
            {
                userData.refDirection = bPos.RefDirection.DirectionRatios[0] + "," + bPos.RefDirection.DirectionRatios[1] + "," + bPos.RefDirection.DirectionRatios[2];
            }
            if (bPos.Axis != null)
            {
                userData.axis = bPos.Axis.DirectionRatios[0] + "," + bPos.Axis.DirectionRatios[1] + "," + bPos.Axis.DirectionRatios[2];
            }

            // Extract Pset
            building.ExtractPset(this);

            // building Address
            try
            {
                if (building.BuildingAddress != null)
                {
                    if (building.BuildingAddress.AddressLines.Count > 0)
                    {
                        for (var i = 0; i < building.BuildingAddress.AddressLines.Count; i++)
                        {
                            var index = i + 1;
                            userData.pset.Add($"AddressLine {index}", building.BuildingAddress.AddressLines[i]);
                        }
                    }
                    if (building.BuildingAddress.PostalBox != "")
                    {
                        userData.pset.Add("PostalBox", building.BuildingAddress.PostalBox);
                    }
                    if (building.BuildingAddress.PostalCode != "")
                    {
                        userData.pset.Add("PostalCode", building.BuildingAddress.PostalCode);
                    }
                    if (building.BuildingAddress.Town != "")
                    {
                        userData.pset.Add("Town", building.BuildingAddress.Town);
                    }
                    if (building.BuildingAddress.Region != "")
                    {
                        userData.pset.Add("Region", building.BuildingAddress.Region);
                    }
                    if (building.BuildingAddress.Country != "")
                    {
                        userData.pset.Add("Country", building.BuildingAddress.Country);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"5. Buildind Adresse (id: {id}) : { ex.Message}");
            }
        }
Beispiel #4
0
        public JsonStoreyIfcElement(IfcBuildingStorey storey, JsonBuildingIfcElement parent, JsonConversionContext context) : base(storey)
        {
            userData.siteId     = parent.userData?.siteId;
            userData.projectId  = parent.userData?.projectId;
            userData.buildingId = parent.userData?.buildingId;

            // userData.objectType = storey.objectType; // comment is from original code
            userData.type = "IfcBuildingStorey";
            userData.name = storey.LongName;

            // Extract Pset
            // extractPset(ref storeyElement, buildingStorey);

            if (!userData.pset.ContainsKey("Elevation"))
            {
                userData.pset.Add("Elevation", (storey.Elevation / context.SCALE).ToString());
            }

            // Add Matrix
            var bsObjectPlacements = storey.ObjectPlacement.Extract <IfcObjectPlacement>();
            var bsLocalPlacements  = bsObjectPlacements[0].Extract <IfcLocalPlacement>();
            var bsPos = bsLocalPlacements[0].RelativePlacement as IfcAxis2Placement3D;

            if (bsPos.Location != null)
            {
                userData.location = bsPos.Location.Coordinates[0] / context.SCALE + "," + bsPos.Location.Coordinates[1] / context.SCALE + "," + bsPos.Location.Coordinates[2] / context.SCALE;
            }
            if (bsPos.RefDirection != null)
            {
                userData.refDirection = bsPos.RefDirection.DirectionRatios[0] + "," + bsPos.RefDirection.DirectionRatios[1] + "," + bsPos.RefDirection.DirectionRatios[2];
            }
            if (bsPos.Axis != null)
            {
                userData.axis = bsPos.Axis.DirectionRatios[0] + "," + bsPos.Axis.DirectionRatios[1] + "," + bsPos.Axis.DirectionRatios[2];
            }
        }
Beispiel #5
0
        public JsonProductIfcElement(IfcProduct product, JsonStoreyIfcElement parent, JsonConversionContext context) : base(product)
        {
            userData.buildingStorey = new string[] { };
            userData.siteId         = parent.userData?.siteId;
            userData.projectId      = parent.userData?.projectId;
            userData.buildingId     = parent.userData?.buildingId;

            // Environnement element
            userData.buildingStorey = new[] { parent.id };

            // Extract pset
            product.ExtractPset(this);
        }