DynamoDS / Dynamo

Open Source Graphical Programming for Design
https://dynamobim.org
Other
1.71k stars 632 forks source link

Bake Solid as REVIT Element Fails #1111

Closed mostaphaRoudsari closed 10 years ago

mostaphaRoudsari commented 10 years ago

I'm using the latest build version and tried both in Vasari Beta 3 and Revit2014.

bakesolid

mjkkirschner commented 10 years ago

https://github.com/DynamoDS/Dynamo/issues/1048 see this error

mostaphaRoudsari commented 10 years ago

Thanks! I agree that the error can be more explanatory.

mostaphaRoudsari commented 10 years ago

I know this is not a bug but I thought you may know the answer. How do you manipulate a solid in project then? I want to add the floors to it as a mass. similar to what create mass floors does in Vasari. Thanks

LevL commented 10 years ago

For manual placement the process seems same in Revit and Vasari.( http://www.onlinerevit.com/home/training-course-for-beginners/massing-studies/184-creating-building-elements-from-mass lists the steps). In Dynamo there is "Floor By Outline" node, so if graph has curves at floor outline, you could use this node.

mostaphaRoudsari commented 10 years ago

Hi @LevL! Thanks. Yes and no. I can do it from the interface but I want to do it inside the Dynamo.I have created the levels and I have the solid. Now I need to do what Create Mass Floors button does. createfloors

LevL commented 10 years ago

Here is the node: image

But the node will remake Floor elements on each run, so do not work with those elements in Revit and re-run the graph.

mostaphaRoudsari commented 10 years ago

Thanks. You guys are so fast. I tested this before asking. It says that it only works in Revit!

LevL commented 10 years ago

If you just want 3d shapes to represent the floors in Vasari, nest them as "baked solids" into Mass family. If you need Floor as BIM element, you indeed need Revit.

mostaphaRoudsari commented 10 years ago

I need floors as BIM elements. I think for now I just move to REVIT. I'm not sure if I understand what you mean by "nest them as "baked solids" into Mass family". Thanks.

LevL commented 10 years ago

I meant: use the original graph while mass family doc is open.

mostaphaRoudsari commented 10 years ago

I got the floors as "BIM elements", and now I understand that's not really what I wanted. What I want based on REVIT menu is a mass floor. I will try what you suggested. Just to make sure we both know what I'm looking after. I captured these images. My understanding is that I have the solid (mass) and the levels in Dynamo, and I should be able to do what Create Mass Floor does in REVIT/Vasari.

I think I am missing something. It should be such a simple thing to do.

massfloors

LevL commented 10 years ago

I see: you want node to add levels to Mass Instance to generate Mass Floors. There is MassInstanceUtils.AddMassLevelDataToMassInstance method in Revit API which adds level to Mass Instance to generate floors. You could wrap it in python node and submit via Package Manager.

mostaphaRoudsari commented 10 years ago

That's what I should have done at the first step. ;) I was hoping I can leave all this to the users but it seems that I should take care of it inside the nodes. I will give it a try. My gut feeling is that finding the mass instance for Solid object will be tricky. Just thinking of the original post.

mostaphaRoudsari commented 10 years ago

I couldn't get the solid to work but it works with Mass Families. Thanks. http://www.youtube.com/watch?v=uKwiRF-o9mU

LevL commented 10 years ago

One more idea (if you need it): "Element Geometry Objects" node will give solid of the mass, exploding the solid will give list of faces. Each face could be intersected with plane of the level and resulting curves could be used to make floor element in the graph.

kronz commented 10 years ago

The subtleties of where and when solids can be created is a little strange in Revit, and it impacts the downstream process with Mass Zones and Conceptual Energy Model creation. Basically, when you get into creation of “mass floors” (as a very distinct entity from “floors”) you are really manipulating parameters rather than geometry. Levels (which you can create and manipulate in Dynamo) are just applied to a mass, and the rest of the Mass Zone geometry results from this interaction.

mostaphaRoudsari commented 10 years ago

@kronz! Thank you for the explanation. I spent some time yesterday and checked the Solid Class in REVIT. As @LevL mentioned you can get the faces and edges of the solid but that doesn't help. I needed a mass family to create the "mass floors". I think one solution is to create a family from the Solid on the fly and insert it into the project. I have done something similar for adaptive components which worked pretty well.

kronz commented 10 years ago

I think you are pointing at something that is a fundamental issue in the Mass workflow. If I understand correctly, you want to make any old kind of Mass shape via Dynamo, and then run it directly into a Dynamo driven energy analysis process. Unfortunately there are 2 roadblocks: 1. You cannot create naked blobs of stuff in Revit, only placed components, in-place families, and specific system families like floors and walls. 2. the In-Place family functionality does not allow for API access, so you also can't make an In-Place Mass on the fly. For your workflow you can do a couple things.
a. You can manually make an in-place mass and add parameters to it, then use Dynamo to manipulate the parameters. b. you can manually make a loaded family, place instances of it and manipulate the parameters with Dynamo c. you can use Dynamo to make forms in the family environment, load these families into the project, and then use another Dynamo definition to run analysis workflows.

All of these workflows require a hybrid workflow, some work done directly in Revit, and some driven by Dynamo. If you have a relatively stable building typology you are working with ("L" shape, donut, cylinder, what have you) a. or b. with parameters to manipulate hte geometry should work nicely. A quick way to get into this is to use Vasari and try this out with the pre-loaded Mass families that have various forms with parameters already set up.

mostaphaRoudsari commented 10 years ago

That's exactly what I wanted to do. I think issue 1 is solvable by asking the user for the information that you mentioned. A node with 3 inputs can do it. SolidGeometry, BasePoint, InsertionPoint. Number 2 is tricky though.

Your suggestion for the quick try is what I did in the Video. Just used the Vasari pre-loaded mass families and manipulated them. I think for the next step I will give families with inbuilt parameters a try. Thanks again.