Commit Graph

29 Commits

Author SHA1 Message Date
Björn Steinhagen 3b6623e51a feat(revit): rebar displayValue options on send (#821)
* feat: add send rebars as solid toggle

* feat: rebar `displayValue` default of centrelines

* feat: sending rebars as solid poc

- need to refactor to avoid duplicate code
- is this the best way? what if user view isn't fine?

* refactor: extract common code and code comments

* refactor: reduce code duplication in DisplayValueExtractor with record

* refactor: wording volumetric not solid
2025-05-12 20:16:23 +02:00
Dimitrie Stefanescu 09f9b1ee51 Revit linked models (#699)
* Bjorn/cnx 1359 have a setting in UI whether include or not (#646)

* feat(revit): linked model settings

* docs: cache invalidation note

* Feat(revit): linked models POC (#656)

* cleanup on RefreshElementsIdsOnSender

* POC for multiple and copied linked models

* fix render materials for copied linked models

* comment

* comment

* split linked models with collections

* style: ci potential null on key

* style: not null

---------

Co-authored-by: Björn <steinhagen.bjoern@gmail.com>

* feat(revit): sending linked model poc round two (#657)

* Added IFC app name (#648)

* test: add tests for threadcontext (#651)

* add tests for threadcontext

* add test for extensions

* remove needed usage

* fix for looking for model store (#654)

Co-authored-by: Oğuzhan Koral <45078678+oguzhankoral@users.noreply.github.com>

* test: Send Operation tests (#652)

* add tests for threadcontext

* add test for extensions

* remove needed usage

* move cancellation

* Only add send operation tests

---------

Co-authored-by: Oğuzhan Koral <45078678+oguzhankoral@users.noreply.github.com>

* chore (autocad/civil): add regen after receive (#650)

* regenerates doc

* moves regen to receive base binding

* Update AutocadReceiveBaseBinding.cs

* feat: linked model send responsive to ui

- current throw just a placeholder
- small variable name refactor

* fix: object reference not set to an instance of an object

* fix: display value extractor

* refactor: converterSettings as readonly field

* feat: warning in response to ui setting not enabled

* docs: todos etc.

* Revert "Merge branch 'dev' into bjorn/cnx-1360-get-linked-models-on-send-function-according-to-setting"

This reverts commit 7202058a98, reversing
changes made to 4bc9ec2352.

---------

Co-authored-by: Jedd Morgan <45512892+JR-Morgan@users.noreply.github.com>
Co-authored-by: Adam Hathcock <adamhathcock@users.noreply.github.com>
Co-authored-by: Oğuzhan Koral <45078678+oguzhankoral@users.noreply.github.com>
Co-authored-by: Claire Kuang <kuang.claire@gmail.com>

* fix: transform needed to be inversed (#659)

* feat(revit): linked models send by category (#666)

* docs: notes on collection filtering

* feature: RevitCategoriesFilter with linked models too

poc

* docs: notes

* feat(revit): commit structure (#675)

* feat: collection structure switch

- poc
- if linked models, send nested
- if not linked, send flat

* docs: comments on updates

* docs: comment on exception swallowing

* fix: nullability

* refactor: linked model helper class and refactor (#682)

* fix: premature processing of linked models

- add early check for linked models setting
- skips expensive element collection for linked models when disabled
- add empty document contexts for linked models when disabled to maintain warning generation (HACK)
- improve code readability with clearer variable names and comments

* refactor: category ids outside of linked model processing

- inefficient to repeat for every document

* fix: improve separation of concerns for linked model handling

- extract linked model processing to a dedicated method
- add IsLinkedDocument flag to DocumentToConvert class
- move linked model warning generation to RevitRootObjectBuilder
- make RevitSendBinding responsible only for element collection

* refactor: dedicated LinkedModelHandler class for linked model processing

- extract linked model element collection logic to a separate class
- improve separation of concerns between flow control and element collection
- add clear documentation explaining the responsibility boundaries

* fix: duplicate if check still floating around

* docs: over-explaining myself

* Fix(revit): do not use converter settings in element unpacker (#687)

* fix resetting the selected object ids after collecting the elements

* Pass document to element unpacker for the sake of linked models

* fix: send by categories mode

---------

Co-authored-by: Björn <steinhagen.bjoern@gmail.com>

* fix(revit): handle multiple linked model instances with transform hashing (#688)

* feat: linked model transform caching in RevitRootObjectBuilder

Add transform-specific hashing to properly handle multiple instances of the same linked model. Uses transform properties to create a unique suffix for the applicationId, preventing cached objects from being incorrectly reused across different transform contexts.

* more comments

---------

Co-authored-by: oguzhankoral <oguzhankoral@gmail.com>

* fix: handle null elements when unpacking linked model groups

- add null element check before GroupBy in ElementUnpacker to prevent NullReferenceException
- improve robustness when processing groups in linked models
- add documentation explaining linked model element handling throughout UnpackElements method
- edge case where group member elements might not resolve properly in linked contexts

* make linked model setting true by default

* Fix(revit): illegal attempt to modify document (#700)

* Run refresh object ids in revit task

* Proper not null

* await instead .result

* feat(revit): collection structure for multiple linked model instances  (#701)

* feat: suffix for instances of linked model

* Extract out GetIdFromDocumentToConvert

---------

Co-authored-by: oguzhankoral <oguzhankoral@gmail.com>

* Correct receive default setting for linked models even if irrevelant

* Fix post conflict

* Cleanup the code

* Add comment

---------

Co-authored-by: Björn Steinhagen <steinhagen.bjoern@gmail.com>
Co-authored-by: oguzhankoral <oguzhankoral@gmail.com>
Co-authored-by: Oğuzhan Koral <45078678+oguzhankoral@users.noreply.github.com>
Co-authored-by: Jedd Morgan <45512892+JR-Morgan@users.noreply.github.com>
Co-authored-by: Adam Hathcock <adamhathcock@users.noreply.github.com>
Co-authored-by: Claire Kuang <kuang.claire@gmail.com>
2025-03-25 11:02:29 +00:00
Claire Kuang b315cebf3a fix(revit): missing directshape geo and other geometry fixes (#611)
* Claire/revit areas curves fix (#610)

* fixes display values for get_geometry method, and changes modelcurves to be sent as revitobject

also removes `level` prop in objects and adds the units and elevation to the level collection instead

* Update Speckle.Converters.RevitShared.projitems

* removes top level pointcloud converter

* Update RevitElementTopLevelConverterToSpeckle.cs
2025-02-21 18:18:07 +03:00
Claire Kuang 370c5b2064 adds area boundary segments to display value of area (#592) 2025-02-18 15:06:54 +00:00
Claire Kuang d50b095683 refactor(revit): properties cleanup (#581)
* clean properties in revit

also adds properties to non-dataobjects and changes grids to have a curve display value after removing curve prop on grids

* removes number from room since this is included in params

* refactors supported categories and throws when all selected objects are unsupported categories

* stupid typos

---------

Co-authored-by: Dimitrie Stefanescu <didimitrie@gmail.com>
2025-02-14 09:49:51 +00:00
Oğuzhan Koral dbefb1b290 Null check before attempt to override view options (#474) 2025-01-08 21:26:34 +03:00
Dimitrie Stefanescu 8276cf6d60 chore: comment 2024-12-12 19:49:10 +00:00
Dimitrie Stefanescu 0d0331ca2f cleanup: extracts view options override logic into one place 2024-12-12 19:48:00 +00:00
Dimitrie Stefanescu e2423700ea formatting 2024-12-12 19:23:33 +00:00
Dimitrie Stefanescu 9b7f11d6dd Merge branch 'dev' into dimitrie/cnx-917-steel-proxy-elements-do-not-get-converted-out 2024-12-12 19:21:54 +00:00
Dimitrie Stefanescu 7f179fc2af feat: adds columns and framing to escaped elements
reason: joined up beams would export wrong geometry
2024-12-12 19:08:49 +00:00
Dimitrie Stefanescu 3e91040017 Dimitrie/cnx 917 steel proxy elements do not get converted out (#445)
* feat: fixes issue, WIP local dependencies

i will remove them

* feat: relies on built in categories rather than casting (possibly less reliable?)

and removes local dependency refs
2024-12-12 02:52:50 +03:00
Dimitrie Stefanescu b47dea38e5 feat: relies on built in categories rather than casting (possibly less reliable?)
and removes local dependency refs
2024-12-11 22:27:08 +00:00
Dimitrie Stefanescu 3defd285e9 feat: fixes issue, WIP local dependencies
i will remove them
2024-12-11 22:12:09 +00:00
Dimitrie Stefanescu 0a0a1358cb fix: forces detail level to fine for specific elements 2024-11-29 17:38:03 +00:00
Jedd Morgan 6ba70a76c2 Jrm/parameter extraction (#365)
* follow pattern from receive for async

* category can be null

* optimization for try get

* fmt

* Optimised Revit Parameter extraction

* returned the basic solid invalid check

---------

Co-authored-by: Adam Hathcock <adam@hathcock.uk>
Co-authored-by: Adam Hathcock <adamhathcock@users.noreply.github.com>
2024-11-07 12:03:50 +00:00
Claire Kuang ed569cde55 fix(revit): handles plane origin out of bounds and creating group with no elements exceptions (#346)
* handles plane origin out of bounds exception and does not create group when no objects have been successfully converted

also makes room display values transparent

* fixes transparent render material for rooms

* Update DisplayValueExtractor.cs
2024-11-05 16:22:11 +00:00
Adam Hathcock b98e564cd1 Add null check for revit API (#272) 2024-09-24 13:57:14 +03:00
Adam Hathcock 8d0d7a89f7 Change conversion stack to better usage for products. (#215)
* fix: Push to sync with Jedd

* Jedd's record suggestions

* cleanup stack

* Revit settings converted

* more settings changes

* fix unit of work and scope registration

* rename

* fix more settings

* Use a generic factory to create settings contexts

* fix ArcGIS

* generic sending

* fix ArcGIS

* remove extras

* fix crs scoping

* fix autocad

* fix units for arcgis

* civil3d conversions

* rhino mostly works

* Rhino and recieve changed

* fix revit tests

* fix rhino tests

* fix merge

* make settings a record again

* fixes from reversion

* merge fixes

* ArcGIS reverts

* more senders reverted

* remove added reference

* clean up locks and files

* update nunit

* make things proper records

* fix test

* Merge fixes

* merge fixes

* Initialize the settings instead of push empty

* scan things consistently

---------

Co-authored-by: Alan Rynne <alan@speckle.systems>
Co-authored-by: Jedd Morgan <45512892+JR-Morgan@users.noreply.github.com>
2024-09-17 14:42:00 +02:00
Oğuzhan Koral 953ffcc293 Feat(Settings): revit settings passes to converter (#195)
* Map and pass setting to converter

* Change return type to ICardSettings

* Invalidate cache if the setting of model card has changed

* Default to medium for geometry fidelity

* Rename GeometryFidelity to DetailLevel

* Default to medium

* Pass detail level to options in DB.Options
2024-08-23 17:56:59 +01:00
Dimitrie Stefanescu 944e7c4326 Dim/light geo fix 2 (#191)
* fix: corrects if check post refactor

* chore: do not ask

* wraps up fix
2024-08-22 19:00:00 +03:00
Dimitrie Stefanescu a89de6bcc4 fix: corrects if check post refactor (#190) 2024-08-22 15:35:41 +00:00
Dimitrie Stefanescu f2a6619013 fix(revit): fixes display value extraction problems (#188) 2024-08-22 13:58:39 +03:00
Dimitrie Stefanescu efaf8e3d0f Dimitrie/cnx 221 light as in lamps geometry is sent (#178)
* feat(revit): correctly unpacks multistory stairs

of course there was another one. here's to more :)

* fix: no longer sends lamp source geometry

* fix: nullability?

i think this is fake news, but...

* fix: nullability part 3

* fix: revit 2025 should be happy now 🤞
2024-08-20 14:55:57 +00:00
Dimitrie Stefanescu dbc359f0e4 Dim/revit materials (#149)
* chore: cleans up display value extractor

removes transform references and checks for groups, as objects are ungrouped by that point

* feat: generates render material proxy maps in revit send

* chore: removes unused code

* feat(revit): material proxies wip

* wip

* removes unused converted cache

* wip

* chore: cleanup part 1

* chore: finished cleanup (moved revit render material proxy cache out)

* fix(revit): invalid progress reporting on send

* feat(rhino): adds rhino support for revit proxy materials

* fix(acad): checks group names for invalid chars

* fix(acad): checks material name for invalid chars

* feat(acad): adds support for baking fallback objects properly

including materials!

* wip: arcgis support for multiple fallback values

* Fix build errors (#166)

* fix: arcgis

---------

Co-authored-by: Oğuzhan Koral <45078678+oguzhankoral@users.noreply.github.com>
2024-08-19 16:14:09 +01:00
Adam Hathcock 891a18819b React to sdk renaming (#113)
* react to renamespacing

* merge dev

* fmt

* initialize things with typeloader

* autocad initialization

* add arcgis

* add more projects to local

* instrument rhino more

* update nugets

* fmt
2024-08-08 10:32:01 +00:00
Adam Hathcock a1c0fbec3e Cleanup notnull (#72)
* alphabetize deps

* rerun locks

* use new nuget

* dump usage of one not null

* dump another usage of not null
2024-07-25 08:35:11 +01:00
Adam Hathcock 91a69a897a Add Revit 2023 and Rhino 7 Converter Tests with Fakes (#3)
* Moved code

* update fakes

* add code coverage

* try code coverage again

* fix test finding

* still file problem?

* try token a different way
2024-07-04 16:00:58 +01:00
Adam Hathcock 60499e3a34 Initial commit from alpha 2024-07-04 11:56:34 +01:00