I am playing with this right now and whilst i’m sure there are some smarter options out there, i first tried using the FamilyType.ByGeometry.
Issues:
Material is not inhereted to the family without a serious workout involving editing the .rft inside the workflow.
The size of the object i was trying to turn into a family exceeded the maximum dimenional values a family could take.
I Compromised on a DirectShape Family instead which as a CON has far less paramaters in terms of identification you can play with but does take the material you want without any effort.
The data structure is something like this that i am using.
Equal lists into each of the inputs as a list chopped by 1
I guess your name is Chinese, so I’ll just speak Chinese. You made the same mistake as I did when I started using Dynamo. Unlike Grasshopper in Rhino, Revit is not a pure geometric modeling software, and it does not generate various geometric shapes. , points, lines, surfaces, etc., so Dynamo does not have bake in Grasshopper, that is, baking. I have also used direct shape or put it in the family as an imported symbol. It is meaningless. It can only be viewed and cannot be edited. Dynamo actually uses the three-dimensional coordinate space position to control the Revit family. For example, you can use adaptive families for complex curtain wall shapes. But if it is not complicated for you, and you don’t know whether it is a floor, a roof, or something else, you can use the outline in Dynamo as the profile in Revit. The outline of the floor is enough, and the corresponding nodes are there. There is no point in importing it directly, except to see
Amigo @harry_zhao buenas. when you use the node, FamilyType.ByGeometry you are only making the definition of family type, is like only load the family into the file, you are not creating any instance, you need create instances after, you should use Family instance by point or by point and level in order to create instances of this family type, i let you link to a similar post.