create a wall:Wall.Create(doc, line, baseLevel.Id, False)

create a wall:

import clr
#Import module for Revit 
clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)
#import module for the Document and transactions
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
#import Revit API 
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
#get the document 
doc = DocumentManager.Instance.CurrentDBDocument
#Dynamo input 
baseLevel = UnwrapElement(IN[0])
topLevel = UnwrapElement(IN[1])
wallType = UnwrapElement(IN[2])
#create point for line 
pt1 = XYZ(0, 0, 0)
pt2 = XYZ(10, 0, 0)
#use safe transaction with Revit 
TransactionManager.Instance.EnsureInTransaction(doc)
#create line
line = Line.CreateBound(pt1, pt2)
#create wall using Revit API
wall = Wall.Create(doc, line, baseLevel.Id, False)
#Set the wall type to Dynamo input
wall.WallType = wallType
#Get the top constarint parameter using built in parameter
#Revit Document shows it as WALL_HEIGHT_TYPE
topConstraint = wall.get_Parameter(BuiltInParameter.WALL_HEIGHT_TYPE)
#Set the top constraint 
topConstraint.Set(topLevel.Id)
#Finish Transaction with task done
TransactionManager.Instance.TransactionTaskDone()

OUT = wall

 

posted @ 2017-12-11 14:41  Shirley席  阅读(621)  评论(0)    收藏  举报