public void CreateProductIfc(ProductIfcRequest request,
                                     Stream outputStream)
        {
            IfcPerson person = IfcInit.CreatePerson(request.owner.person.givenName,
                                                    request.owner.person.familyName,
                                                    request.owner.person.identifier);
            IfcOrganization organization =
                IfcInit.CreateOrganization(request.owner.organization.name,
                                           request.owner.organization.description,
                                           request.owner.organization.identifier);
            IfcOrganization applicationOrganization =
                IfcInit.CreateOrganization(request.owner.application.organization.name,
                                           request.owner.application.organization.description,
                                           request.owner.application.organization.identifier);
            IfcApplication application =
                IfcInit.CreateApplication(applicationOrganization,
                                          request.owner.application.version,
                                          request.owner.application.name,
                                          request.owner.application.identifier);
            IfcOwnerHistory ownerHistory =
                IfcInit.CreateOwnerHistory(person, organization, application);

            IfcProject project = IfcInit.CreateProject(request.project.name,
                                                       request.project.description,
                                                       ownerHistory);
            IfcSite site = IfcInit.CreateSite(null, null, ownerHistory);

            project.Aggregate(site, ownerHistory);
            IfcBuilding building =
                IfcInit.CreateBuilding(null, null, ownerHistory, site.ObjectPlacement);

            site.Aggregate(building, ownerHistory);
            IfcBuildingStorey storey =
                IfcInit.CreateBuildingStorey(null, null, ownerHistory, building.ObjectPlacement);

            building.Aggregate(storey, ownerHistory);
            IfcProduct product;

            switch (request.product.type)
            {
            default:
                product = IfcInit.CreateProxy(request.product.name,
                                              request.product.description,
                                              ownerHistory,
                                              storey.ObjectPlacement,
                                              null);
                break;
            }
            List <IfcRepresentationContext> contextList =
                new List <IfcRepresentationContext> (project.RepresentationContexts);

            product.Representation =
                CreateProductRepresentation(contextList, request.product.representations);
            storey.Contains(product, ownerHistory);
            project.SerializeToStep(outputStream, request.schema.ToString(), null);
            return;
        }
Exemple #2
0
        public void CreateProjectInitTest()
        {
            //==== DEFAULT PROJECT ====
            IfcProject project_default = IfcInit.CreateProject(null, null, null);
            IfcSite    site_default    = IfcInit.CreateSite(null, null, null);

            project_default.Aggregate(site_default, null);
            IfcBuilding building_default = IfcInit.CreateBuilding(null, null, null, null);

            site_default.Aggregate(building_default, null);
            IfcBuildingStorey storey_default = IfcInit.CreateBuildingStorey(null, null, null, null);

            building_default.Aggregate(storey_default, null);
            using (FileStream fs = File.Create("./default_project.ifc"))
            {
                project_default.SerializeToStep(fs, "IFC2X3", null);
            }

            //==== MANUAL CONTENT PROJECT ====
            IfcPerson       person       = IfcInit.CreatePerson("Melange", "Cedric");
            IfcOrganization organization = IfcInit.CreateOrganization("test organization", "a dummy organization for testing", "MyOrg");
            IfcApplication  application  = IfcInit.CreateApplication(organization, "1.0", "test app", "TestApp");
            IfcOwnerHistory ownerHistory = IfcInit.CreateOwnerHistory(person,
                                                                      organization,
                                                                      application);
            IfcProject project_manual = IfcInit.CreateProject("manual",
                                                              "My manual test project",
                                                              ownerHistory);
            IfcSite site_manual = IfcInit.CreateSite("test site", "a dummy site for testing", ownerHistory);

            project_manual.Aggregate(site_manual, ownerHistory);
            IfcBuilding building_manual = IfcInit.CreateBuilding("test building", "a dummy building for testing", ownerHistory, site_manual.ObjectPlacement);

            site_manual.Aggregate(building_manual, ownerHistory);
            IfcBuildingStorey storey_manual = IfcInit.CreateBuildingStorey("first storey", "first storey for testing", ownerHistory, building_manual.ObjectPlacement);

            building_manual.Aggregate(storey_manual, null);
            using (FileStream fs = File.Create("./manual_project.ifc"))
            {
                project_manual.SerializeToStep(fs, "IFC2X3", "my company");
            }
        }