ladybug-tools / spider

:spider_web: 3D interactive analysis in your browser mostly written around the Three.js JavaScript library
http://www.ladybug.tools/spider
44 stars 15 forks source link

R14 - display only visible elements to allow multiple changes #134

Open mdengusiak opened 6 years ago

mdengusiak commented 6 years ago

@theo-armour As we discussed idea is that we display elements on screen and this will allow us to do group, multiple modification to Surface type or CADObjectID . We need multiple modification so we can assing air, or underground elements which are wrongly set up now in Revit.

image

theo-armour commented 6 years ago

@mdengusiak

I have added this capability to the context menu wish list.

https://www.ladybug.tools/spider/index.html#gbxml-viewer/r14/gv-ctx-context-menu/README.md

BTW, If this need-to-modify-many situation occurs repeatedly under known conditions, then would it not be better as a 'fix it' items in the Issues menu?

mdengusiak commented 6 years ago

@theo-armour as we discussed can we do name recognition from:

image

example: Basic Wall: Name_EXT_GRD --external wall ground

_INT internal - InteriorWall, InteriorFloor _EXT external -ExternalWall, Roof _GRD touching ground _AIR air -Air _SHD shade - Shade

theo-armour commented 6 years ago

In order to proceed, the best thing would be to have one or more untouched Revit-generated gbXML files.

The goal would be to get these files ready for TAS/Open Studio with a single click.

The rules would be embedded in a user-editable JSON file so that differences from organization to organization are accommodated.

@mdengusiak

Can you supply any test cases like this? And anybody else as well?

mdengusiak commented 6 years ago

@theo-armour ok great here is un-touched model from Revit is perfect example where we have _AIR, _GRD, shade etc...

image

Berlin_Office_SAM2017.zip

Lets use it and see it will work for these both tools.

theo-armour commented 6 years ago

@mdengusiak

I an looking at the Berlin office file.

A typical CAD ID is

line 172142: Floor: SIM_EXT_GRD_FLR FB01 570 [1055205]

Its surface type is:

Line 172095:

What surface type should it be?

mdengusiak commented 6 years ago

this model becuase is flat we can not capture special case so this is correct:

image

however if we have building on slope or this type of buildings when ground plan is not simple as one plane... recognition from revit will be wrong..

image image

I exported this case... when I set up floor at the bottom so this would be case when ground is not correctly recognized... to show real problem we could come across So please see here better representation of problem

Berlin_Office_SAM2017a.zip

theo-armour commented 6 years ago

@mdengusiak

Thinking out loud:

Is there anything in the gbXML file that we can use to cause a logical fix? Could we user 'Exposed to Sun' for example? Example: If not 'Exposed to Sun' === true then make a change.

In other words is there anything a user could do in Revit to send us signals about what needs fixing?

mdengusiak commented 6 years ago

@theo-armour we would need to use some radiance engine to see what surface is outside but not below grade. At them moment we could use _EXT as all External surfaces but not use _GRD these are touching ground. So we should have all external surfaces exposed to sun except below grade. Revit does not provide engine, check.

theo-armour commented 6 years ago

@mdengusiak

I was not clear in my question.

We are discussing gbXML files created by Revit. I am wondering if there is anyway in Revit that a user could add or edit some parameter that would show up in the gbXML file.

For example, if a user can change the 'Exposed to Sun' flag then we could use that to capture exterio walls that are actually underground.

Of if a user could assign a slightly different CAD ID then this could trigger a script to assign the surface type to 'air'.

We could even use some of the other sections we do not usually use such as construction materials or document history. Or all elements allow for a description attribute.

I do not not know Revit, so I do not know if any 'hacks' or 'workarounds' like this are possible. But if there are any we should really be exploring these.

We want to be able to establish a slightly extra or secondary way of adding information to the gbXML file that could used uses as triggers for special scripts in the viewer.

mdengusiak commented 6 years ago

@theo-armour

I do understand question. Revit does not provide engine, check, any control. You can only specify one plane. Anything above will be exposed to sun. Anything below will be below grade - touching ground so 'Exposed to Sun' = False. So in attached example we can not set it up correct at all. Only via Aragog.

So that is why at the moment I suggest we use Family naming that represent different types We could use _EXT as all External surfaces and _GRD these are touching ground. So we should have all external surfaces exposed to sun except below grade.

image

theo-armour commented 6 years ago

@mdengusiak

It's a good discussion.

So that is why at the moment I suggest we use Family naming that represent different types

I think this is what you started to describe in your July 11 message with the 'Cad Objects by Type' screen capture.

Since I have no Revit experience, you will really have to walk me thought what you are suggesting - both for the ground and air surface type issues.

Revit does not provide engine, check, any control.

Is there not a 'description' parameter or some other lightly-used parameter that we could stuff values into in a pinch? I heart hacking apps. ;-)

michaldengusiak commented 6 years ago

@theo-armour

Yes this is my reason I am using this naming strategy

In fact I used both family naming and building element type... so Family naming as already mentioned above: ie. Basic Wall: Name_EXT_GRD --external wall ground

_INT internal - InteriorWall, InteriorFloor _EXT external -ExternalWall, Roof _GRD touching ground _AIR air -Air _SHD shade - Shade

bonus _GLZ glazed - Wall with Glazing size of wall

I am also using type parameter: SAM_BuildingElementType [string] for all walls, floor and roofs. Here I define ASHRAE type of building element these are only assign to walls, floor and roofs. Windows and Doors are separate group. So if you see glazing, door this means if we draw wall we can transform into door or window just changing type. Here is full list:

I will set up session with you once back to go through in details.