Familieplatzierung auf Raster

Dieses Script ermöglicht folgenden Workflow:

  • Punktbasierte Familien auf einem Raster platzieren
  • Dient für IFC-Import und -Export

  • Das Script sammelt alle Familieninstanzen einer angegebenen Kategorie und platzieren Sie sie in einem Raster.

  1. Öffnen Sie ein Revit-Projekt und laden Sie alle Familien einer Kategorie. Das Raster kann auch geändert werden.Es läuft auch mit Dynamo-Player

1.3.1

...

import System
import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *

clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager

cats = IN[0]
inputdoc = UnwrapElement(IN[2])
if inputdoc == None:
doc = DocumentManager.Instance.CurrentDBDocument
elif inputdoc.GetType().ToString() == "Autodesk.Revit.DB.RevitLinkInstance":
doc = inputdoc.GetLinkDocument()
elif inputdoc.GetType().ToString() == "Autodesk.Revit.DB.Document":
doc = inputdoc
else: doc = None

elementlist = list()
for item in cats:
collector = FilteredElementCollector(doc)
collector.OfClass(FamilySymbol)
bic = System.Enum.ToObject(BuiltInCategory, item.Id)
collector.OfCategory(bic)
elementlist.append(collector.ToElements())
OUT = elementlist