Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CNX-619 Revit Analytical Panel #3645

Open
wants to merge 6 commits into
base: dev
Choose a base branch
from

Conversation

bjoernsteinhagen
Copy link
Contributor

@bjoernsteinhagen bjoernsteinhagen commented Oct 21, 2024

Description & Motivation

  • Element2D (from Objects.Structural.Geometry.Element2D) was not being received in a meaningful way in ETABS
    • The objects were created in ETABS, but all properties were set to Slab1 (the first property in the list of predefined properties in a new model)
    • Element2D is part of the Structural kit, therefore, in a structural analysis software, at least some of the attributes (e.g. thickness and material) should be recievable
    • In a large building with many different properties and materials, defaulting everything to a single property leaves the User with lots of post-receiving editing to do -> not cool.

image

image

  • In order to use the Element2D, an issue with the property and material attributes of an Element2D coming from Revit was also noted. All of these values remained in the Revit internal units presenting a dissociation from the ModelUnits.

image

  • Finally, consider Grasshopper: a Property2D component can serve as input to the CSIElement2D component. However, upon receiving in ETABS this will be handled as a generic Slab1 element.
Screenshot 2024-10-21 213331

Changes:

  • Numeric values associated with Element2D, Property2D and StructuralMaterial implemented ScaleToSpeckle() when sending from Revit. Previously Revit internal units were provided. Scalings for stress and mass density parameters was also included for consistency.
  • The physical association (displayValue) for Revit version < 2023 was fixed, previously the 2D planar surface was displayed and not the 3D mesh of the associated physical element (done for Revit versions >= 2023 and for the Element1D of versions < 2023)
  • CSIConverter was updated to handle AreaToNative() not just for properties of type CSIProperty2D but also for Property2D

Validation of changes:

Checklist:

  • My pull request follows the guidelines in the Contributing guide?
  • My pull request does not duplicate any other open Pull Requests for the same update/change?
  • My commits are related to the pull request and do not amend unrelated code or documentation.
  • My code follows a similar style to existing code.
  • I have added appropriate tests.
  • I have updated or added relevant documentation.

Separated methods pertaining to StructuralMaterial outside of the ConvertAnalyticalStick.cs file. Didn't make sense that these functions were in the ConvertAnalyticalStick.cs when the ConvertAnalyticalSurface.cs referenced them
Material properties were sent as revit internal units. Inconsistent with the Revit model / project units. These can't be used for connection applications (e.g. receiving analytical elements in ETABS)
ETABS currently only created properties for Element2Ds with a CSIProperty2D, but what about Property2D? These should also be received without us defaulting to the "Slab1" ETABS section.
Walls were previously assigned with slab sections which is incorrect. The WallPropertyToNative() was implemented (previously raised a ConversionNotSupportedException for some reason)
Testing on Revit 2022 - ETABS connection
@bjoernsteinhagen bjoernsteinhagen added bug Something isn't working revit issues related to the revit connector. CSI labels Oct 21, 2024
@bjoernsteinhagen bjoernsteinhagen self-assigned this Oct 21, 2024
Copy link

linear bot commented Oct 21, 2024

var propName = CreateOrGetProp(area.property, out bool isExactMatch);
if (!isExactMatch)
var propName = CreateOrGetProp(area.property, out bool isPropertyHandled);
if (!isPropertyHandled)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

isPropertyHandled is a more appropriate name than isExactMatch

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ConvertAnalyticalSurface was using a method of GetStructuralMaterial which is inside ConvertAnalyticalStick (?). ConvertStructuralMaterial includes material related functions and these were moved out of ConvertAnalyticalStick.cs

Assign at least something to Element2D
@bjoernsteinhagen
Copy link
Contributor Author

Now, the method will only return Slab1 (from propNames.First() if:

  • The property does not already exist in the model (propNames.Contains(property?.name) is false)
  • It's not a CSI property that can be converted successfully
  • It's not a Property2D with a non-empty name that can be converted successfully
  • There are property names in the propNames array

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working CSI revit issues related to the revit connector.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant