Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problem converting IFC to SVG for Equipments #58

Closed
Fredh512 opened this issue Apr 14, 2016 · 4 comments
Closed

Problem converting IFC to SVG for Equipments #58

Fredh512 opened this issue Apr 14, 2016 · 4 comments

Comments

@Fredh512
Copy link

Hi everyone,

The converter is working perfectly for IfcSpace, IfcWalls, IfcWindows, IfcDoors, IfcSlab.
But, I've got a strange issue concerning the converting in some elements like IfcFurnishingElements, IfcFlowTerminal, etc.
Sometimes, it works fine and sometimes, it doesn't. I don't understand the differences in the elements that makes them converting fine or not.
For example, in this svg of a space within it 2 storages, 1 drawer, 1 tv, 2 armchairs and 1 desk, only for 2 storages a path is made. After checking carefully the others objects, I can't find why it isn't working for the others objects.

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g id="Level 1" guid="6e0278a4-7eb1-4ccf-b57a-080f9bf83b6c"> <g id="M008"> <path style="stroke:black; fill:none;" d="M737.683,243.222 L587.361,243.222 L587.361,106.732 L737.683,106.732 L737.683,243.222"/> </g> <g id="Cabinet - Storage:1200 x 550 x 2100mm:333694"> <path style="stroke:black; fill:none;" d="M601.587,240.748 L587.979,240.748 L587.979,211.06 L601.587,211.06 L601.587,212.317 L601.429,212.317 L601.429,225.826 L601.587,225.826 L601.587,225.983 L601.429,225.983 L601.429,239.492 L601.587,239.492 L601.587,240.748"/> </g> <g id="Cabinet - Storage:1200 x 550 x 2100mm:333726"> <path style="stroke:black; fill:none;" d="M601.587,206.112 L587.979,206.112 L587.979,176.423 L601.587,176.423 L601.587,177.68 L601.429,177.68 L601.429,191.189 L601.587,191.189 L601.587,191.346 L601.429,191.346 L601.429,204.855 L601.587,204.855 L601.587,206.112"/> </g> <g id="Cabinet File - Lateral 3 Drawer:760 x 500 x 915mm:334707"> </g> <g id="83_EF_lcd-tv:83_EF_lcd-tv:316708"> </g> <g id="Chair - Office:Office Chair:337118"> </g> <g id="Crescent Armchair:Crescent Armchair:341262"> </g> </g> </svg>

I'm hopping someone cant explain me why and how i can correct this. Thank you everyone.
Fred

@aothms
Copy link
Member

aothms commented Apr 16, 2016

Hi Fred,

The way this works indeed is a bit under-documented. Typically in architectural drawing, floor plans are 1 meter (or 4 ft) above the elevation of the building storey. However, in IFC the building storey elevation is an optional attribute so we do not rely upon it. In fact, what happens is that a horizontal section plane is created one meter above the bottom of every product. This works well for everything that has its bottom aligned to the floor plan (like spaces, walls). Furthermore, only the intersection with this floor plan is stored in the file as an intersection is infinitely easier to compute than a projection onto this plane with hidden lines removed. This also means that products that are less than 1 meter tall do not make it to the file at all, as is what is probably happening in your case.

Needless to say there are many things to improve, but keep in mind that the SVG serializer (at least in the way it currently works) is mostly intended for simple space layouts.

Kind regards,
Thomas

@Fredh512
Copy link
Author

Thank you Thomas,
It looks really more clear to me now!

Kind regards,
Fred

@aothms aothms closed this as completed Apr 18, 2016
@michsk
Copy link

michsk commented Jul 12, 2016

Hi Fred. Would you be able to share how you got the stairs and doors in there? I only seem to be able to generate the rooms.

When i try:
./IfcConvert 140018_bnr.ifc 140018.svg --include --names IfcSpace IfcWalls IfcWindows IfcDoors IfcSlab --bounds 1920x575 --center-model

I get a parse error:
[Error] Unable to parse input file '140018_bnr.ifc' or no geometrical entities found

@Stinkfist0
Copy link
Contributor

Stinkfist0 commented Jul 12, 2016

@Michal-sk use --entities instead of --names, that should do the trick, also use singulars (IfcWall) instead of plurals (IfcWalls): --include --names IfcWalls means "include entities whose name is 'IfcWalls'", whereas --include --entities IfcWall means "include entities whose type is IfcWall".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants