* updated converters after text class update
* fix after text class changes
* packege version bump after text calss update
---------
Co-authored-by: Claire Kuang <kuang.claire@gmail.com>
* WIP
* Menu handlers for projects and models
* Extract all handlers outside
* Remove account from handlers
* Reset version count
* Add workspaces
* Introduce SpeckleOperationWizard
* Move sync ops to dev section
* Fix sdk remainings
* Organize files and namespaces
* Remove context menu setters
* Bump sdk to 3.3.0
* Get the last selected account id from config
* Add workspaces to select model component
* Handle workspaces
* Add separator at ctor
* Get rid of from last fetched collections in wizard
* Reorder public privy functions
* Bump sdk 3.3.3 for project with permissions
* Remove expire solution on account change
* Move SolveInstanceWithUrlInput to wizard
* Better state handling on search
* handle account switch
* close menu explicitly when reset
* Have workspace logo
* Don't populate menu completely after search
* Logo as prop in workspaces
* Create a workspace flow
* Bump sdk back to 3.3.3
* Fixed DI
* Fix unplug URL state
* Set icon null when reset workspace
* personal projects as workspace
* Handle project permissions over pasted URL
* Clean up the main component
* handle all errors at the top level for wizard component
* Set last used account id to config
* Change the message level to warning for accounts
---------
Co-authored-by: Adam Hathcock <adam@hathcock.uk>
* feature: database table extractor
* feature: frame length extraction
* feat: shell area extraction
* feat: frame length extraction
* feat: shell area extraction
* docs: cleaned up object extractors
* refactor: extensible database table extraction
* flexible indexing (can be defined by user, defaults to typical use-case of "UniqueName")
* better variable naming and more descriptive (better than csi's api)
* some fail safes e.g. when forgetting to put indexingColumn in array of columns to fetch
* refactor: using DatabaseTableExtractor for material name lookup
* lookup for material name of a shell can use the database table extractor and simplifies EtabsShellPropertiesExtractor a lot
* fix: openings shouldn't look for material assignments
Frustrating way Etabs handles openings - they shouldn't be a SHELL. Anyways. Rant over
* refactor: database table extractor handles dictionary lookups
* rhino and arc fix usage
* fix registration
* fix the rest
* use interface
* don't use rhino layer if there is no name
* formatting
* add tests
* formatting
* add to local and move
* Update OTEL to remove grpc dependency
* Fix deprecated method
* really fixed with no incremental builds for tests
* Fix references and lock
* Update nuggets
* style: user facing names for frames
* style: user facing names for shells
* styling: user facing names for proxies
* style: dict utils as extension methods
* HostAppVersion
v21 and v22 following SDK updates
* Working POC for material and section proxies
* Refactoring section unpacking
Refactoring in accordance with PropertiesExtractor example
* Material unpackers
* Notes and documentation
* More explanations
* materialId
- Interim solution for viewer filtering is appending the materialId to assignments for each object
- For FRAME this was easy
- For SHELL not so easy. No GetMaterial method avaiable given a AreaObj sectionName. Implemented lightweight materialCache based on cDatabaseTable. Marked as temporary based on previous discussions
* Explicit dictionary entries
* Repeated property strings as consts
- Fair point for repeated strings in the CsiMaterialPropertyExtractor.cs
- Even more reason to include this across all repeated strings. Categories of properties screaming out for this. Added additionally
* PR review comments
- Dictionary lookups for material and section proxies
- Only create proxies for assigned sections and materials (not pretty)
* refactor(etabs): adds singleton converter cache for material and section relationships (#514)
* This is a workaround for Revit's order of operations when initializing (#511)
* This is a workaround for Revit's order of operations when initializing
* Fix event listening
* adds a singleton cache for material and section relationships to csishared
* updating extraction results and simplifying classes
* Only allow methods on classes as opposed to anonymous lambdas for Event Subscription (#512)
* This is a workaround for Revit's order of operations when initializing
* Fix event listening
* Only allow methods on classes as opposed to anonymous lambdas
* formatting
* fix tests
* weakreference found should remove subscription
* doument model store fix (#516)
* testing commit
---------
Co-authored-by: Adam Hathcock <adamhathcock@users.noreply.github.com>
Co-authored-by: Björn <steinhagen.bjoern@gmail.com>
* resolving conflicts, testing and small tweaks
- merged dev into branch
- added "type" parameter to group proxies for sections in order to distinguish between frame sections and shell sections
---------
Co-authored-by: Claire Kuang <kuang.claire@gmail.com>
Co-authored-by: Adam Hathcock <adamhathcock@users.noreply.github.com>
* trying a bold refactoring
ETABSShared and CSiShared is strictly correct, but just looks horrible EtabsShared and CsiShared looks better
* refactor: improve
* property extraction foundation
- better architectural approach for property extraction depending on csi product and wrapper type
- correctly configures return type depending on the product (e.g. EtabsObject)
* refactor(props): streamline property extraction across CSi and ETABS
Reorganizes property extraction to better handle base and product-specific properties:
- Introduces PropertyExtractionResult for cleaner property management
- Separates shared CSi properties from product-specific ones
- Implements dedicated extractors for Frame, Joint, and Shell
- Standardizes property extraction patterns between CSi and ETABS
- Removes property redundancy and improves null safety
* frame data extraction 1/2
* remaining data extraction
- finished data extraction for frames
- added data extraction for joints and shells
- re-instated collections
* documentation
- added some updates to the documentation
* SpeckleApplicationIdExtensions
- Extension methods for speckle applicationIds
* IApplicationPropertiesExtractorConcretization
- Renamed GeneralPropertiesExtractor to SharedPropertiesExtractor
- Renamed EtabsClassPropertiesExtractor to ApplicationPropertiesExtractor
- Removed PropertiesExtractor file
- Enforced injection of shared properties extractor to application specific extractor
- Output of Extract() of type PropertyExtractorResult
- Application property extractor mutates dictionary
* applicationId simplification
* review comments
- directly assigning applicationId to base
- rename ApplicationPropertiesExtractor to EtabsPropertiesExtractor
---------
Co-authored-by: Claire Kuang <kuang.claire@gmail.com>
* ETABSShared
- Implemented ETABSShared projects for Connectors and Converters to account for ETABS specific things that SAP 2000 doesn't account for such as levels or frames being further classified as Column, Beam or Brace or shells as wall or floor
* collection poc
- POC for ETABS collection structure
- Logic for getting further classificiations of Frames as either Column, Beam or Brace
- Same for Shells: either Wall or Floor etc.
- Placeholders for object properties
* documentation
- Putting thoughts to "paper"
- A lot of the TODOs will be part of next milestone
* adding new projects to local.sln
* csharpier
got deactivated and wasn't formatting on save anymore :(
* unnecessary registration
* using directives
---------
Co-authored-by: Claire Kuang <kuang.claire@gmail.com>
* Initial commit
- Project setup and basic definitions
- Waiting for SDK update
* CSiObjectToSpeckleConverter
- Abstract TopLevel converter
- Requiring a lot of wrappers and addtional steps to get to converted CSiObject
* ICSiWrapper with factory
* raw conversion placeholders
* service registration
* root to speckle
* type registration and resolution
CSiWrapperBase instead of ICSiWrapper correctly resolves all types
* Setting up object level converters
* some basic conversions
* units framework
* raw conversion placeholders
these are gross (just a poc for first send)
* CollectionManager
Simple organization
* Comments
* back to BASE-ics
* local
* csharpier
Missing blank line
* newline
* AddObjectCollectionToRoot
PR comments:
- Updated GetAndCreateObjectHostCollection to more descriptive name of AddObjectCollectionToRoot
- Removing unnecessary rootObject = childCollection line
* cleaning locks
---------
Co-authored-by: Claire Kuang <kuang.claire@gmail.com>