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; }
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"); } }