- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hi Autodesk team,
Currently, the Revit API does not allow creation or modification of Floor sketch geometry or Slab Shape Editor points. As a result, tools built on the API (Dynamo, pyRevit, custom add-ins) cannot automate common workflows such as adding or adjusting floor boundary points or slab shape control points.
This limitation is a significant blocker for parametric and computational workflows, especially for structural and architectural use cases where floors are frequently regenerated or adjusted based on design logic.
A key real-world scenario:
To collaborate efficiently with the civil engineering team, who provide concrete slab designs with slopes by exporting from their software (e.g., 12D Model or Civil 3D), it should be possible to directly map their design points onto a Revit floor family. Currently, this is impossible without manual recreation, which is time-consuming and prone to errors.
To work around this limitation, we built a Dynamo/pyRevit script that reads CSV points exported from civil software and places Generic Model family instances at those points. Here’s a simplified summary of the script workflow:
User selects a CSV file containing X, Y, Z coordinates.
Script reads the points from CSV.
User selects a Generic Model family type.
Script places a family instance at each point.
As a workaround, we currently import XYZ points from civil software (Civil 3D / 12D) via CSV and place Generic Model families at those coordinates using the Revit API (example below). However, these points cannot be applied to Floor or Slab Shape geometry.
# Read XYZ points from CSV exported by civil software
def read_csv_points(file_path):
points = []
with open(file_path, 'r') as f:
reader = csv.reader(f)
next(reader, None) # skip header
for row in reader:
x, y, z = map(float, row[:3])
points.append(XYZ(x, y, z))
return points
# Place point families at civil design coordinates
t = Transaction(doc, "Place Civil Design Points")
t.Start()
for pt in read_csv_points(csv_file):
doc.Create.NewFamilyInstance(pt, family_symbol, 0)
t.Commit()
While this works for visualization and marking, it does not replace the ability to map points directly to floor geometry, nor does it allow native floor or slab shape editing in Revit. A native API that supports Floor sketch or Slab Shape Editor points would make this process far more robust, efficient, and interoperable.
My questions are:
Is there any plan to expose Floor sketch geometry or Slab Shape Editor point editing in the Revit API?
If not, is this a deliberate design decision due to model stability or analytical concerns?
Are newer systems (e.g., Toposolids) intended to replace this functionality for point-based workflows and civil/structural interoperability?
Understanding whether this is on the roadmap or explicitly out of scope would help teams plan long-term automation strategies and improve collaboration across disciplines.
Thanks for any clarification.
Solved! Go to Solution.